Embedding Model – Cách chuyển dữ liệu thành vector bằng Sentence-Transformers

Đỗ Minh Đức Đỗ Minh Đức
Chia sẻ bài viết

Trong lĩnh vực AI Agent và Machine Learning, Embedding Model được xem là bước cầu nối giúp máy tính hiểu được ngôn ngữ tự nhiên của con người. Bằng cách chuyển đổi dữ liệu thành các vector số học, mô hình Embedding giúp hệ thống xử lý thông tin hiệu quả hơn trong các bài toán như tìm kiếm ngữ nghĩa, gợi ý nội dung hay chatbot thông minh.

Embedding là gì? 

Vấn đề thực tế

Máy tính không thể hiểu ngữ nghĩa “Tôi thích học AI” giống như con người. Nó chỉ thấy các ký tự ["T", "ô", "i", " ", "t", "h", "í", "c", "h", ...]. Nếu bạn muốn máy hiểu hai câu giống nhau về ý nghĩa, bạn cần biểu diễn chúng bằng con số, sao cho các con số của hai câu “gần nhau” nếu nghĩa tương tự.

Giải pháp

Embedding Model chuyển mỗi câu, mỗi đoạn văn thành một vector (mảng số thực). Ví dụ:

Câu Vector (rút gọn)
“Tôi thích học AI” [0.21, 0.45, -0.32, ...]
“Tôi yêu trí tuệ nhân tạo” [0.22, 0.47, -0.31, ...]
“Tôi thích ăn phở” [-0.88, 0.13, 0.75, ...]
  • Hai câu đầu nằm gần nhau trong không gian vector, vì ý nghĩa tương tự. 
  • Câu “ăn phở” nằm xa, vì không liên quan ngữ nghĩa.
Embedding là kỹ thuật biểu diễn các đối tượng (như từ ngữ, hình ảnh)

Embedding Model hoạt động như thế nào?

Embedding Model thường dựa trên Deep Learning, đặc biệt là các mô hình ngôn ngữ như BERT, RoBERTa, T5, GPT,… Cách hoạt động cơ bản:

  • Nhận đầu vào: Văn bản, câu, đoạn, hình ảnh...
  • Tokenization: Cắt nhỏ văn bản thành token (từ, ký tự).
  • Embedding Layer: Mỗi token được gán một vector học được.
  • Tính toán không gian vector: Mô hình học cách sắp xếp các vector sao cho ngữ nghĩa gần nhau → nằm gần nhau.

Từ đó, bạn có thể tính độ tương đồng giữa hai đoạn văn, tìm nội dung giống nhau, hay xây dựng hệ thống hỏi đáp hiểu ngữ cảnh.

Tạo Embedding bằng thư viện Sentence-Transformers

Nếu bạn là DEV, đây là phần thực tế nhất:
Chúng ta sẽ dùng Sentence-Transformers như một thư viện Python phổ biến giúp chuyển câu thành vector một cách cực kỳ đơn giản.

1.Cài đặt

pip install sentence-transformers

2. Khởi tạo mô hình

from sentence_transformers import SentenceTransformer

# Khởi tạo mô hình nhẹ, nhanh
model = SentenceTransformer('all-MiniLM-L6-v2')

  • all-MiniLM-L6-v2 là model phổ biến, kích thước vector 384 chiều, tốc độ nhanh, phù hợp cho thử nghiệm hoặc sản phẩm thực tế có traffic cao.
  • Bạn có thể thay bằng model khác (T5, MPNet, multilingual,...) nếu muốn đa ngôn ngữ.

3. Chuyển văn bản thành vector

sentences = [
    "Bizfly Chatbot giúp doanh nghiệp tự động hóa CSKH",
    "BizCRM quản lý khách hàng và dữ liệu bán hàng hiệu quả"
]

embeddings = model.encode(sentences)
print(embeddings.shape)

Output: (2, 384)

Tức là: Có 2 câu, mỗi câu được chuyển thành vector 384 chiều

4. Xem giá trị vector

print(embeddings[0][:10])  # In 10 phần tử đầu tiên

Ví dụ: [0.043, -0.121, 0.366, -0.081, 0.092, 0.151, -0.084, 0.255, ...]

Đây chính là “vector ngữ nghĩa” biểu diễn cho câu đầu tiên.

5. So sánh độ tương đồng ngữ nghĩa giữa hai câu

Dùng Cosine Similarity để đo mức độ “gần nhau”:

from sklearn.metrics.pairwise import cosine_similarity

score = cosine_similarity([embeddings[0]], [embeddings[1]])[0][0]
print("Độ tương đồng:", round(score, 3))

Kết quả: Độ tương đồng: 0.89. Điểm càng gần 1.0 → hai câu càng có nghĩa tương tự.

6. Tùy chọn model đa ngôn ngữ (nếu xử lý tiếng Việt)

model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')

Model này hỗ trợ hơn 50 ngôn ngữ, bao gồm tiếng Việt, nên phù hợp khi bạn xử lý dữ liệu nội dung trong nước (ví dụ chatbot tư vấn, phân tích phản hồi khách hàng...).

Ứng dụng thực tế của Embedding Model

Embedding được ứng dụng rất rộng trong thế giới AI – và nhiều thứ bạn đang dùng hằng ngày đều dựa vào nó:

Ứng dụng Cách dùng Embedding
Tìm kiếm ngữ nghĩa (Semantic Search) So sánh vector câu hỏi và tài liệu để tìm nội dung phù hợp nhất
Chatbot AI (RAG) Biến câu hỏi & tài liệu thành vector → tìm đoạn liên quan → gửi cho LLM
Gợi ý sản phẩm / bài viết Tìm sản phẩm có vector gần với vector của người dùng
Phân nhóm dữ liệu Dùng clustering (KMeans) trên các vector embedding
Phân tích cảm xúc Vector hóa câu → phân loại “tích cực / tiêu cực”


Ví dụ:
Bizfly ứng dụng Embedding trong:

  • BizChatAI: Chatbot hiểu ngữ cảnh, tìm câu trả lời từ tài liệu nội bộ.
  • Bizfly CDP: Phân tích hành vi khách hàng dựa trên vector đặc trưng.
  • BizCRM: Gợi ý sản phẩm phù hợp cho từng nhóm khách hàng.

Triển khai Embedding vào hệ thống thực tế (RAG Pipeline)

Nếu bạn đang xây chatbot AI hoặc Q&A system, Embedding là bước nền tảng trong RAG (Retrieval-Augmented Generation). Pipeline cơ bản:

  1. Chuẩn bị dữ liệu → Tách nội dung thành các đoạn nhỏ (chunk).
  2. Tạo embedding cho mỗi đoạn → lưu vào DB (FAISS, Pinecone, ChromaDB).
  3. Khi người dùng đặt câu hỏi:
  • Chuyển câu hỏi thành embedding.
  • Tìm các đoạn có vector gần nhất.
  • Gửi đoạn đó kèm câu hỏi vào LLM (ChatGPT, Gemini, Claude...) để tạo câu trả lời chính xác.

Sơ đồ pipeline:
User Question → Embedding → Semantic Search → Retrieve Top-k → LLM → Response

Nếu bạn dùng LangChain hoặc LlamaIndex, Sentence-Transformers có thể tích hợp trực tiếp:

from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")

Một số mô hình Embedding phổ biến cho developer

Tên mô hình Kích thước vector Đặc điểm
all-MiniLM-L6-v2 384 Nhẹ, tốc độ nhanh, chính xác tốt
multi-qa-MiniLM-L6-cos-v1 384 Tối ưu cho câu hỏi–trả lời
paraphrase-multilingual-MiniLM-L12-v2 384 Hỗ trợ tiếng Việt, đa ngôn ngữ
sentence-t5-base 768 Chất lượng cao, dùng cho NLP chuyên sâu
e5-large-v2 1024 Chuẩn cho Semantic Search ở quy mô lớn


Kết luận

Embedding Model không chỉ là “một thuật ngữ AI” mà là nền móng của hầu hết hệ thống thông minh ngày nay. Nó giúp máy tính hiểu dữ liệu bằng ngữ nghĩa, mở đường cho hàng loạt ứng dụng như chatbot, RAG, semantic search, recommendation engine,…

Đỗ Minh Đức
Tác giả
Đỗ Minh Đức

Với gần 20 năm kinh nghiệm trong ngành công nghệ, Đỗ Minh Đức hiện là Giám đốc Sản phẩm Bizfly Martech tại VCCorp. Anh được biết đến là một trong bốn người đặt nền móng cho BizChatAI, giải pháp ứng dụng trí tuệ nhân tạo để chăm sóc khách hàng tự động đa kênh.

Anh tập trung phát triển BizChatAI như một "trợ lý ảo" cho doanh nghiệp, giúp tự động hóa việc tương tác và CSKH. Công nghệ này đang thay đổi mạnh mẽ cách doanh nghiệp tiếp cận khách hàng, từ việc gửi tin nhắn, quà tri ân tự động đến ứng dụng hiệu quả cho các chuỗi bán lẻ và nhà hàng... Qua các bài viết của mình, anh chia sẻ sâu hơn về những lợi ích và cách thức hoạt động của chatbot trong kinh doanh.