Embedding model: nền tảng của tìm kiếm ngữ nghĩa trong doanh nghiệp
Đội ngũ IT của một công ty xây dựng hệ thống tra cứu nội bộ cho phép nhân viên gõ câu hỏi bằng tiếng Việt tự nhiên để tìm tài liệu quy trình, nhưng sau khi ra mắt, nhân viên gõ "cách xin nghỉ phép dài ngày" thì hệ thống lại trả về quy định về nghỉ việc, còn gõ đúng từ khoá "nghỉ phép" thì lại tìm ra kết quả, và nguyên nhân gốc rễ hoá ra không nằm ở dữ liệu tài liệu mà nằm ở việc chọn sai embedding model ngay từ bước đầu tiên khi xây hệ thống.
Embedding model là gì, và vì sao nó quyết định chất lượng tìm kiếm
Embedding model là loại model AI chuyên biến một đoạn văn bản (câu, đoạn, hay cả một tài liệu) thành một dãy số gọi là vector, sao cho hai đoạn văn bản có nghĩa gần nhau thì hai vector tương ứng cũng nằm gần nhau trong không gian toán học, dù chúng dùng từ ngữ hoàn toàn khác nhau. Đây chính là lý do "cách xin nghỉ phép dài ngày" và "thủ tục nghỉ phép" nên trả về cùng một tài liệu, dù không chung từ khoá nào, vì embedding model tốt hiểu được cả hai câu đang hỏi về cùng một ý.
Cơ chế tìm kiếm dựa trên embedding này chính là nền tảng của RAG (Retrieval-Augmented Generation) — kỹ thuật giúp AI trả lời dựa trên đúng tài liệu nội bộ của doanh nghiệp thay vì chỉ dựa vào kiến thức đã học sẵn. Nếu bạn chưa quen với khái niệm RAG, có thể xem lại RAG là gì: cách cho AI đọc đúng tài liệu nội bộ của công ty trước khi đọc tiếp phần chọn embedding model dưới đây, vì embedding model chính là thành phần cốt lõi bên trong mọi hệ thống RAG.
Điều quan trọng cần hiểu ngay từ đầu là embedding model khác hoàn toàn với model tạo sinh (như các model dùng để trả lời câu hỏi hay viết nội dung): embedding model không "trả lời", nó chỉ làm đúng một việc là chuyển văn bản thành vector để so sánh độ giống nhau, và việc chọn sai model này ngay từ đầu sẽ khiến toàn bộ hệ thống tìm kiếm phía sau "tìm sai" một cách âm thầm, khó phát hiện cho tới khi người dùng thật phàn nàn. Đây cũng là lý do embedding model xứng đáng được nhìn nhận là một loại model AI riêng biệt, không nên gộp chung khi bàn chuyện chọn model cho doanh nghiệp — bức tranh tổng thể các loại model có thể xem lại ở AI Model là gì và doanh nghiệp nên chọn model nào cho công việc.
Số chiều vector là gì và ảnh hưởng ra sao tới chi phí lưu trữ
Mỗi embedding model tạo ra vector có một "số chiều" cố định, ví dụ 1024 chiều nghĩa là mỗi đoạn văn bản được biến thành một dãy 1024 con số. Số chiều càng lớn, vector càng mang được nhiều sắc thái ý nghĩa tinh tế, nhưng đổi lại càng chiếm nhiều dung lượng lưu trữ trong cơ sở dữ liệu vector, và việc so sánh hàng triệu vector với nhau khi tìm kiếm cũng chậm hơn.
Đây không phải sự đánh đổi trừu tượng, mà ảnh hưởng trực tiếp tới hoá đơn hạ tầng hàng tháng khi doanh nghiệp có kho tài liệu lớn: một kho vài triệu đoạn văn bản dùng vector 3072 chiều sẽ tốn dung lượng lưu trữ gấp đôi so với dùng vector 1536 chiều, cùng với chi phí tính toán tìm kiếm cũng tăng theo. Chính vì vậy, phần lớn embedding model hiện đại đều cho phép tuỳ chỉnh số chiều đầu ra (kỹ thuật thường gọi là Matryoshka Representation Learning), để doanh nghiệp có thể chọn số chiều nhỏ hơn nhằm tiết kiệm chi phí, đổi lại chấp nhận độ chính xác tìm kiếm giảm đi một chút.
Mẹo nhỏ
Tính đến tháng 9/2026, các model embedding mới của OpenAI (dòng text-embedding-3) và Google (dòng Gemini Embedding) đều hỗ trợ tham số cho phép rút gọn số chiều vector đầu ra ngay trong một lần gọi API, thay vì phải tạo vector đầy đủ rồi tự cắt bớt. Với hệ thống tra cứu nội bộ quy mô vừa và nhỏ, mức 512-1024 chiều thường đã đủ chính xác mà tiết kiệm đáng kể chi phí lưu trữ so với dùng thẳng mức chiều tối đa của model.
Vì sao nhiều embedding model xử lý tiếng Việt chưa tốt
Phần lớn embedding model phổ biến được huấn luyện chủ yếu trên dữ liệu tiếng Anh, phần dữ liệu tiếng Việt trong tập huấn luyện thường chiếm tỷ trọng rất nhỏ so với các ngôn ngữ lớn khác. Hệ quả là những model này vẫn "chạy được" với tiếng Việt về mặt kỹ thuật, nhưng khả năng phân biệt sắc thái nghĩa gần giống nhau trong tiếng Việt (đặc biệt là các từ đồng âm khác nghĩa hoặc thuật ngữ chuyên ngành) thường kém chính xác hơn hẳn so với khi xử lý tiếng Anh.
Đây chính là lý do khiến hệ thống tra cứu nội bộ ở đầu bài trả kết quả sai: model embedding được chọn tuy hỗ trợ đa ngôn ngữ trên giấy tờ, nhưng chưa được kiểm chứng riêng cho mức độ chính xác với câu hỏi tiếng Việt thực tế của doanh nghiệp trước khi đưa vào sản xuất. Cách khắc phục không phải lúc nào cũng là đổi sang model khác đắt tiền hơn, mà thường là dùng đúng model đã được tinh chỉnh (fine-tune) riêng cho tiếng Việt, hoặc ít nhất kiểm thử kỹ trên chính bộ câu hỏi thật của người dùng trước khi triển khai diện rộng. Cách kiểm chứng một model AI có thực sự hiểu tiếng Việt tốt hay không được trình bày chi tiết hơn ở Chọn model AI hiểu tiếng Việt tốt: cách kiểm chứng bằng dữ liệu.
So sánh các embedding model phổ biến hiện nay
Tính đến tháng 9/2026, theo tài liệu chính thức của từng nhà cung cấp, các embedding model đang được dùng phổ biến có thông số như sau.
| Model | Số chiều | Giới hạn đầu vào | Giá tham khảo |
|---|---|---|---|
| OpenAI text-embedding-3-small | 1536 (tuỳ chỉnh được) | 8.192 token | 0,02 USD / 1 triệu token |
| OpenAI text-embedding-3-large | 3072 (tuỳ chỉnh được) | 8.192 token | 0,13 USD / 1 triệu token |
| Google Gemini Embedding | 128-3072 (tuỳ chỉnh, khuyến nghị 768/1536/3072) | 2.048-8.192 token tuỳ phiên bản | Tính theo token, xem giá cập nhật tại trang chính thức |
| Cohere Embed v4 | 256/512/1024/1536 | Khoảng 128.000 token | Tính theo token, có bản đa ngôn ngữ hỗ trợ hơn 100 ngôn ngữ gồm tiếng Việt |
| BAAI/bge-m3 (mã nguồn mở) | 1024 | 8.192 token | Miễn phí (giấy phép MIT), tự chủ hạ tầng chạy |
Đáng chú ý, trên Hugging Face hiện đã có một số model embedding được huấn luyện/tinh chỉnh riêng cho tiếng Việt (fine-tune từ nền tảng BGE-M3 trên dữ liệu tiếng Việt), số chiều vector cũng ở mức 1024 nhưng giới hạn đầu vào thường ngắn hơn model gốc, nên phù hợp hơn cho tìm kiếm theo đoạn ngắn (câu hỏi, đoạn văn bản vài trăm từ) hơn là nhúng cả tài liệu dài.
Cách chọn và đánh giá embedding model trước khi triển khai
-
1
Chuẩn bị một bộ câu hỏi thật của người dùng
Lấy khoảng 30-50 câu hỏi tiếng Việt thật mà người dùng dự kiến sẽ gõ (không phải câu hỏi mẫu do đội kỹ thuật tự nghĩ ra), kèm theo tài liệu đúng phải được tìm ra cho mỗi câu hỏi.
-
2
Chạy thử 2-3 embedding model ứng viên trên cùng bộ dữ liệu
Nhúng toàn bộ tài liệu và bộ câu hỏi bằng từng model, rồi đo xem với mỗi câu hỏi, tài liệu đúng có nằm trong top kết quả gần nhất hay không.
-
3
So sánh tỷ lệ tìm đúng giữa các model
Model nào có tỷ lệ câu hỏi tìm ra đúng tài liệu cao hơn trên chính bộ dữ liệu tiếng Việt của doanh nghiệp mới là model phù hợp, không phải model có điểm benchmark quốc tế cao nhất trên giấy tờ.
-
4
Cân đối số chiều theo ngân sách hạ tầng
Nếu hai model cho kết quả tìm kiếm gần tương đương nhưng khác số chiều, ưu tiên số chiều nhỏ hơn để giảm chi phí lưu trữ và tốc độ tìm kiếm, trừ khi chênh lệch độ chính xác đủ lớn để đáng trả thêm chi phí.
Checklist trước khi đưa vào sản xuất
- Đã kiểm thử model trên bộ câu hỏi tiếng Việt thật, không chỉ dựa vào điểm benchmark tiếng Anh công bố sẵn.
- Đã ước tính chi phí lưu trữ vector theo đúng số chiều đã chọn và quy mô tài liệu thực tế, không chỉ theo mẫu demo nhỏ.
- Đã kiểm tra giới hạn độ dài đầu vào của model có đủ cho đoạn văn bản dài nhất trong kho tài liệu hay chưa.
- Đã có kế hoạch nhúng lại (re-embed) toàn bộ kho dữ liệu nếu sau này cần đổi sang embedding model khác, vì vector từ hai model khác nhau không thể so sánh trực tiếp với nhau.
Đã đổi embedding model rồi có cần nhúng lại toàn bộ dữ liệu cũ không?
Có, bắt buộc. Vector do hai embedding model khác nhau tạo ra nằm trong hai không gian toán học khác nhau, không thể đem so sánh trực tiếp, nên khi đổi model, toàn bộ tài liệu trong kho phải được nhúng lại từ đầu bằng model mới, sau đó mới tìm kiếm chính xác được.
Doanh nghiệp có dữ liệu nhạy cảm có nên dùng model mã nguồn mở tự host thay vì gọi API không?
Đây là một lựa chọn hợp lý cho dữ liệu nhạy cảm, vì model mã nguồn mở như BGE-M3 có thể chạy hoàn toàn trên hạ tầng riêng của doanh nghiệp, dữ liệu không cần gửi ra ngoài qua API bên thứ ba. Đánh đổi là doanh nghiệp phải tự quản lý hạ tầng chạy model và tự chịu trách nhiệm về hiệu năng, thay vì có nhà cung cấp lo phần đó.
Số chiều vector cao hơn có luôn cho kết quả tìm kiếm chính xác hơn không?
Không hẳn. Số chiều cao hơn thường giúp model biểu diễn được nhiều sắc thái nghĩa hơn, nhưng mức độ cải thiện thực tế phụ thuộc vào chất lượng huấn luyện của từng model, không phải cứ tăng số chiều là tăng độ chính xác theo cùng tỷ lệ. Đây cũng là lý do bước kiểm thử trên dữ liệu thật quan trọng hơn việc chỉ nhìn vào thông số kỹ thuật.
Nếu đội ngũ của bạn đang xây hệ thống tra cứu nội bộ hoặc chatbot đọc tài liệu công ty mà chưa chắc đã chọn đúng embedding model cho tiếng Việt, BeelyWeb có thể cùng bạn kiểm thử nhanh trên chính bộ câu hỏi thật trước khi đổ công sức xây cả hệ thống. Bạn có thể đăng ký tư vấn miễn phí để được hỗ trợ đánh giá đúng nhu cầu tìm kiếm ngữ nghĩa của doanh nghiệp mình nhé.