Lý do mô hình embedding trở lại thành "chiến trường chênh lệch hiệu suất"
Vào giai đoạn đầu bùng nổ RAG năm 2023, mô hình embedding thường bị coi nhẹ như yếu tố khác biệt vì "text-embedding-ada-002 là đủ". Tình hình năm 2026 hoàn toàn khác. Trong khi hiệu suất tạo sinh của LLM đang tiệm cận bão hòa với một số tác vụ, việc mất thông tin ở phía Retrieval quyết định giới hạn trên của toàn bộ RAG đã trở thành hiểu biết chung, và lựa chọn và tinh chỉnh mô hình embedding đã hồi sinh như lĩnh vực đầu tư có ROI cao nhất.
Bảng xếp hạng MTEB (Massive Text Embedding Benchmark) của Hugging Face tính đến tháng 4 năm 2026 có hơn 200 mô hình, nhưng đối với sản phẩm tiếng Nhật, lựa chọn thực tế được thu hẹp còn khoảng 10 mô hình. Bài viết này so sánh OpenAI, Voyage, Cohere, BAAI, Jina — điểm số MTEB/BEIR/JMTEB và tính dễ xử lý trong triển khai.
Bảng điểm tháng 4 năm 2026 (tóm tắt)
- OpenAI text-embedding-3-large: MTEB 64,6, JMTEB 75,2, 3072 chiều, 8192 token, $0,13/M token
- OpenAI Embed-4 (phát hành 02/2026): MTEB 68,9, JMTEB 79,8, 4096 chiều, 32k token, $0,18/M token
- Voyage-3-large: MTEB 67,8, BEIR 58,3, 1024/2048/4096 chiều, 32k token, $0,18/M token
- Voyage-3: MTEB 64,2, 1024 chiều, 32k token, $0,06/M token (tỷ lệ chi phí-hiệu năng hàng đầu)
- Cohere Embed v4: MTEB 68,1, JMTEB 77,5, 1536 chiều, hỗ trợ 128k token, $0,12/M token, multimodal
- BGE-M3 (BAAI): MTEB 59,4, JMTEB 73,1, 1024 chiều, 8192 token, OSS (MIT)
- Jina Embeddings v3: MTEB 65,5, JMTEB 74,8, 1024 chiều (Matryoshka), 8192 token, OSS + API
Nếu chỉ nhìn điểm số, Embed-4 và Voyage-3-large dẫn đầu, nhưng "dùng gì trong production" được quyết định theo 4 trục: (1) khả năng fine-tune trong domain, (2) latency và số chiều, (3) hiệu suất đa ngôn ngữ/tiếng Nhật, (4) tuân thủ vượt biên dữ liệu.
Hiệu suất tiếng Nhật: JMTEB là yếu tố then chốt
JMTEB là tiếng Nhật MTEB được xây dựng bởi phòng nghiên cứu Okazaki của Đại học Tokyo và các đơn vị khác, đánh giá tổng hợp Retrieval, STS, Classification, Clustering và Reranking. Dù đứng đầu trong MTEB tiếng Anh, xếp hạng thay đổi đáng kể ở tiếng Nhật.
Xu hướng JMTEB tháng 4 năm 2026:
- Trong tập con Retrieval tiếng Nhật: Embed-4 > Voyage-3-large > Cohere Embed v4 > BGE-M3 > text-embedding-3-large
- Trong STS (độ tương đồng câu), Cohere Embed v4 đứng đầu. Đặc biệt mạnh với kính ngữ và các biến thể diễn đạt tiếng Nhật
- Trong tìm kiếm ngữ nghĩa đa ngôn ngữ (Anh-Nhật), BGE-M3 hoạt động tốt hơn dự kiến và cách Voyage-3-large không xa
Với các dự án nội địa tài chính, công cộng bị cấm vượt biên dữ liệu, không thể dùng OpenAI/Voyage/Cohere, không có con đường nào khác ngoài self-host BGE-M3. Năm 2026, BGE-M3 đã được lượng tử hóa GGUF/AWQ bằng Llama.cpp và vLLM, xử lý được 2000 req/s trên 1 GPU H100, và đã định hình thành embedding mặc định cho on-premise RAG.
Matryoshka Representation: Phân cấp chiều
Công nghệ quan trọng năm 2026 chung cho Voyage-3, Jina v3 và OpenAI text-embedding-3-* là Matryoshka Representation Learning (MRL). Đây là phương pháp phân cấp hàm mất mát khi huấn luyện để chỉ cần dùng k chiều đầu tiên của vector từ một mô hình vẫn đủ bảo toàn ý nghĩa.
Trước đây "3072 chiều có độ chính xác cao nhưng nặng, giảm xuống 256 chiều thì độ chính xác sụp đổ" — nhưng với mô hình hỗ trợ MRL, có thể áp dụng phương pháp hai bước: "lập index ở 3072 chiều, tìm kiếm giai đoạn đầu nhanh ở 256 chiều, giai đoạn hai dùng toàn bộ 3072 chiều để re-rank".
```python from openai import OpenAI import numpy as np
client = OpenAI() resp = client.embeddings.create( model="text-embedding-3-large", input=texts, dimensions=256, # MRL chỉ trả về 256 chiều đầu ) short_vecs = np.array([d.embedding for d in resp.data])
# Phiên bản 3072 chiều đầy đủ được lấy riêng để full re-rank resp_full = client.embeddings.create( model="text-embedding-3-large", input=texts, ) full_vecs = np.array([d.embedding for d in resp_full.data]) ```
Giữ 100M vector ở 3072 chiều chỉ riêng dữ liệu thô đã là 1,2TB. Trim xuống 256 chiều bằng MRL còn 100GB, và cả việc xây dựng HNSW lẫn giữ trong bộ nhớ đều trở nên thực tế hơn. Điều này còn mạnh hơn khi kết hợp với tính năng multi-vector của Qdrant/Weaviate.
ColBERT và Late Interaction
Năm 2026, RAG production ngày càng nhiều triển khai Late Interaction (dòng ColBERT) thay vì chỉ dùng dense vector. ColBERT không nén document thành 1 vector mà giữ như nhóm vector theo đơn vị token, và lấy độ tương đồng bằng phép tính MaxSim với vector token phía query.
- Khả năng bảo toàn sắc thái trong document dài vượt trội hơn nhiều so với dense đơn thuần
- Chi phí storage gấp 10-50 lần dense (phụ thuộc vào số lượng token)
- Qdrant 1.12, Vespa, Weaviate 1.28 hỗ trợ native multi-vector
Jina-ColBERT-v2 và ColBERTv2 (Stanford) đạt hiệu suất Retrieval tiệm cận với dense top model trong đánh giá bất đối xứng, đồng thời ít bị sụp đổ hơn với domain lệch so với dữ liệu huấn luyện. Đặc biệt hiệu quả với domain như hợp đồng dài, bài báo khoa học, source code mà "không thể nhồi vào một vector duy nhất".
```python from ragatouille import RAGPretrainedModel
rag = RAGPretrainedModel.from_pretrained("jinaai/jina-colbert-v2") rag.index( collection=documents, index_name="contracts", max_document_length=512, split_documents=True, ) hits = rag.search("液晶パネルの保証期間に関する条項", k=20) ```
Fine-tune chuyên ngành
Mô hình embedding đa năng rộng nhưng đều thua khi gặp lĩnh vực chuyên sâu (y tế, pháp lý, thuật ngữ nội bộ). Năm 2026, toolchain để fine-tune dựa trên contrastive learning trong vài giờ đã được chuẩn bị đầy đủ.
- sentence-transformers 3.x: Fine-tune kèm LoRA bằng `SentenceTransformerTrainer`
- Voyage Fine-tuning API: Tạo mô hình chuyên dụng trong 2 giờ từ các cặp query/document domain riêng
- Cohere Custom Models: Có thể học theo domain cho cả Rerank và Embed
Trong dự án y tế của KGA, đã fine-tune BGE-M3 với 50.000 cặp Q&A nội bộ, đạt cải thiện 8 điểm trong tập con Retrieval y tế JMTEB và 14 điểm trong test set nội bộ theo nDCG@10. Ý nghĩa của việc có thể thoát khỏi sự phụ thuộc vào mô hình đa năng mạnh nhất là rất lớn.
Quy tắc lựa chọn
- Domain rộng, tập trung tiếng Anh, API chấp nhận được → Voyage-3-large
- Tập trung tiếng Nhật, cần context dài 128k → Cohere Embed v4
- Bắt buộc on-premise, giấy phép MIT → BGE-M3
- Ưu tiên chi phí-hiệu năng → Voyage-3 hoặc text-embedding-3-small
- Tìm kiếm tích hợp ảnh + văn bản → Cohere Embed v4 (multimodal)
- Ưu tiên tối đa sắc thái văn bản dài → Jina-ColBERT-v2 (Late Interaction)
Embedding không phải là "chọn một mô hình rồi xong" mà là thiết kế phân tầng first-stage dense + second-stage Late Interaction + domain reranker — đây là dạng production chuẩn năm 2026.