Embedding Là Gì?
Embedding là quá trình biến đổi text thành vector số học trong không gian nhiều chiều, sao cho các text có ngữ nghĩa tương tự sẽ có vectors gần nhau.
Tại Sao Cần Hiểu Sâu Về Embeddings?
1. Retrieval Quality: Embedding model quyết định top-k results. Model kém = retrieve sai documents = LLM trả lời sai.
2. Latency vs Quality Trade-off: Models lớn hơn cho embeddings tốt hơn nhưng chậm hơn và tốn tiền hơn.
3. Multilingual Support: Không phải model nào cũng support tiếng Việt tốt.
So Sánh Các Models Phổ Biến
| Model | Dimensions | Tiếng Việt | Use Case |
|---|---|---|---|
| text-embedding-3-small | 1536 | Tốt | General purpose, rẻ |
| text-embedding-3-large | 3072 | Rất tốt | High accuracy |
| Cohere embed-v3 | 1024 | Tốt | Multilingual |
| BGE-M3 | 1024 | Xuất sắc | Multilingual, hybrid |
| Voyage-3 | 1024 | Tốt | Long context |
Kỹ Thuật Nâng Cao
1. Matryoshka Embeddings
OpenAI text-embedding-3 support truncation: Dùng 256 dims thay vì 3072 để tiết kiệm storage mà vẫn giữ 90% accuracy.
2. Late Interaction (ColBERT style)
Thay vì single vector per document, dùng nhiều vectors cho fine-grained matching.
3. Instruction-Tuned Embeddings
Thêm instruction prefix để guide embedding: "Represent this document for retrieval: ..."
Pro Tips
- Normalize vectors: Cosine similarity yêu cầu normalized vectors
- Batch processing: Embed nhiều texts một lần để tối ưu throughput
- Cache embeddings: Documents không đổi = embeddings không đổi
💡 Recommendation: Bắt đầu với text-embedding-3-small. Upgrade lên large khi cần accuracy cao hơn.
