Xem xét Embeddings
Như bạn có thể nhớ, một embedding không là gì ngoài một trình bày số trong dạng một vector cho bất cứ dạng dữ liệu
nào. Giống với bất cứ vector nào, nó có thể được sử dụng cho các tính toán số, bao gồm tính toán sự khác nhau hay
tương tự giữa chúng.
#Example of a 5 dimension Vector.
[0.002803807845339179, -0.027320953086018562, -0.026936013251543045, 0.06164265424013138, -0.0035601721610873938]
Biện pháp đo lường được sử dụng phổ biến để tính toán sự tương tự giữa các embeddings là sự tương tự cosine, mặc
dù các metrics khác như khoảng cách Euclidean, Dot Product, hay Manhattan cũng có thể được sử dụng. Trong Chroma,
và hầu hết các CSDL vector, tương tự cosine là metric khoảng cách mặc định.
Giá trị tương tự luôn trải từ -1 và 1, với 1 chỉ mức độ cao nhất của tương tự và -1 là thấp nhất. Khi so sánh
các vectors, những cái với tương tự gần với 1 là rất tương tự, trong khi những cái tiếp cận -1 là các miền rất
khác nhau. Các giá trị cực thường ít khi gặp, đặc biệt trong các tính toán sự không tương tự.
Tôi tin nó là tốt nhất để xem một ví dụ sử dụng các câu chuyển đổi thành các vectors để làm rõ nó làm việc như
thế nào.
Để bắt đầu, LangChain và sentence_transformers được cài đặt.
!pip install -q langchain==0.0.354
!pip install -q sentence_transformers==2.2.2
Mặc dù tôi sẽ sử dụng LangChain để tạo các embeddings, nó gọi thư viện Transformers, nên nó là cần thiết cũng để cài
đặt sentence_transformers. Mặt khác, một lỗi sẽ xảy ra khi thử tạo hàm cái chuyển dạng text thành các embeddings.
