MiddleAI

Embedding là gì, và tìm kiếm bằng embedding khác tìm theo từ khóa ở điểm nào?

Người phỏng vấn muốn biết bạn hiểu embedding như một công cụ cụ thể, có ưu và nhược, chứ không phải một từ khóa nghe cho oai. Họ cũng muốn xem bạn có biết cách kiểm tra xem nó có thật sự tốt hơn hay không.

Embedding là cách biến một đoạn chữ thành một vector, tức một dãy số, bằng một mô hình đã được huấn luyện để hai đoạn gần nghĩa thì vector gần nhau. Để tìm kiếm, bạn nhúng sẵn các đoạn tài liệu và lưu vector lại. Khi có câu hỏi, bạn nhúng câu hỏi bằng cùng mô hình rồi lấy những đoạn có vector gần nhất, thường đo bằng cosine similarity.

Khác biệt chính so với tìm theo từ khóa:

  1. Từ khóa so chữ, embedding so nghĩa. Khách viết "đền tiền", tài liệu viết "hoàn tiền": đếm từ thấy chữ quan trọng (đền với hoàn) khác nhau, còn embedding vẫn xếp đoạn đó cao.
  2. Điểm của embedding chỉ có ý nghĩa tương đối. Nhiều mô hình cho điểm dồn trong khoảng hẹp, nên bạn so thứ hạng chứ không đọc điểm như phần trăm.
  3. Từ khóa mạnh với mã, tên riêng, chuỗi chính xác. Tìm một mã sản phẩm hay một tên hàm thì khớp chữ chính xác lại đáng tin hơn so nghĩa.

Ý quan trọng để nêu: đừng tin là embedding luôn tốt hơn. Cách làm đúng là có một bộ câu hỏi mẫu kèm đoạn tài liệu đúng cho từng câu, chạy cả hai cách và đếm câu nào được tìm đủ thông tin. Bộ câu hỏi cũng giúp bạn phát hiện những giả định sai, ví dụ nhúng thêm tiêu đề mục tưởng là có lợi nhưng đo ra lại kém hơn.

Điểm cộng: nhắc rằng mô hình embedding có giới hạn độ dài đầu vào (nhiều mô hình cắt ở khoảng 512 token), nên đoạn tài liệu cần tách vừa đủ nhỏ, và nhắc rằng dùng đúng tiền tố mô hình yêu cầu (như query: và passage: ở họ e5) cũng ảnh hưởng chất lượng.