TROISINH
Context EngineeringRetrieval & Knowledge

Embedding và Vector Search: Cách AI tìm thông tin liên quan

Khám phá cách AI chuyển văn bản thành số để hiểu ngữ nghĩa và tìm kiếm thông tin chính xác bằng Vector Search — nền tảng cốt lõi của hệ thống RAG hiện đại.

Định nghĩa

Embedding là quá trình chuyển đổi văn bản (hoặc hình ảnh, âm thanh) thành dãy số học có chiều cao — vector — để máy tính có thể đo lường mối quan hệ ngữ nghĩa bằng toán học. Vector Search là kỹ thuật tìm kiếm thông tin dựa trên sự gần nhau trong không gian vector này, cho phép AI tìm được nội dung liên quan ngay cả khi không chứa từ khóa khớp chính xác.

Giải thích chi tiết

Từ ngôn ngữ tự nhiên đến không gian toán học

Khi bạn đọc câu "tôi đang đói" và "tôi muốn ăn cơm", bạn hiểu hai câu này liên quan nhau. Nhưng máy tính chỉ thấy chuỗi ký tự khác nhau. Embedding model (như text-embedding-ada-002 của OpenAI hoặc các model open-source như BGE) sẽ chuyển cả hai câu này thành hai vector số học trong không gian nhiều chiều (thường 768, 1024, hoặc 1536 chiều).

Điểm kỳ diệu là: những câu có ý nghĩa gần nhau sẽ nằm gần nhau trong không gian vector đó. Khoảng cách giữa vector "tôi đang đói" và "tôi muốn ăn cơm" sẽ nhỏ hơn rất nhiều so với khoảng cách đến vector "Hôm nay thời tiết đẹp".

Đây không phải là "hiểu" theo kiểu con người — đơn thuần là hình học đa chiều. Nhưng hiệu quả thì thật: chúng ta có thể tìm kiếm theo ý định thay vì chỉ tìm theo từ khóa.

Vector Search: Tìm láng giềng gần nhất

Giả sử bạn có 100.000 tài liệu đã được chuyển thành vector và lưu trong Vector Database (Pinecone, Weaviate, Chroma, Qdrant). Khi người dùng hỏi: "Cách giảm cân an toàn là gì?", hệ thống sẽ:

  1. Chuyển câu hỏi thành vector (query embedding)
  2. Tìm trong database những vector có khoảng cách gần nhất với query vector
  3. Trả về top k tài liệu tương ứng

Thuật toán tìm kiếm thường dùng là ANN (Approximate Nearest Neighbor) — xấp xỉ láng giềng gần nhất. Thay vì tính khoảng cách với tất cả 100.000 vector (quá chậm), ANN dùng cấu trúc dữ liệu như HNSW (Hierarchical Navigable Small World) hoặc IVF (Inverted File Index) để tìm nhanh trong thời gian dưới 100ms.

Khoảng cách thường được đo bằng Cosine Similarity (góc giữa hai vector) hoặc Euclidean Distance. Cosine phổ biến hơn vì nó quan tâm hướng của vector (ý nghĩa) hơn là độ lớn (độ dài văn bản).

Hai giai đoạn trong pipeline RAG

Hệ thống RAG thực tế có hai giai đoạn riêng biệt liên quan đến embedding:

Indexing (Offline): Tài liệu gốc được chia nhỏ (chunking) → Mỗi chunk đi qua embedding model → Lưu vector và text gốc vào Vector DB. Giai đoạn này chuẩn bị "kho kiến thức".

Retrieval (Online): Khi có câu hỏi mới, hệ thống chỉ embed câu hỏi đó một lần → Tìm top k chunk gần nhất → Lấy text gốc của những chunk này → Đưa vào context window của LLM để sinh câu trả lời.

Điểm mấu chốt: embedding model phải nhất quán giữa hai giai đoạn. Dùng model A để index nhưng model B để search sẽ cho kết quả tệ, vì "bản đồ" không gian vector của hai model khác nhau.

Ví dụ thực tế

Chatbot tìm kiếm tài liệu nội bộ công ty

Giả sử công ty bạn có 5.000 file PDF hướng dẫn nhân sự, quy trình kỹ thuật, và FAQ. Thay vì nhồi toàn bộ vào context (không vừa), bạn xây dựng hệ thống RAG đơn giản:

  1. Chuẩn bị: Dùng script chia PDF thành đoạn nhỏ 500 token, embed bằng model BGE-M3 (tốt cho tiếng Việt), lưu vào Chroma DB local
  2. Tìm kiếm: Nhân viên hỏi "Thủ tục xin nghỉ phép có lương thế nào?" → Hệ thống embed câu hỏi → Tìm 3 đoạn văn bản gần nhất trong DB → Inject vào prompt: "Dựa vào tài liệu sau: (3 đoạn trên), trả lời câu hỏi..."
  3. Kết quả: AI trả lời chính xác dựa trên quy định thực tế, không bịa đặt

Tìm kiếm sản phẩm ngữ nghĩa trong e-commerce

Shop thời trang có 10.000 sản phẩm. Khách hàng tìm "đồ mặc đi biển mùa hè". Tìm kiếm từ khóa truyền thống sẽ bỏ lỡ sản phẩm mô tả là "váy maxi thoáng mát, phù hợp cho kỳ nghỉ ven biển" vì không chứa từ "biển" hay "mùa hè".

Với Vector Search: embed cả mô tả sản phẩm lẫn câu tìm kiếm. Vector của "đồ mặc đi biển" sẽ gần với vector "váy maxi ven biển" hơn là "áo khoác lông cừu". Kết quả trả về đúng ý người dùng muốn, tăng tỷ lệ chuyển đổi.

So sánh với tìm kiếm cũ: Tìm luật văn phòng

Luật sư cần tìm điều luật về "trách nhiệm hình sự của công ty con khi công ty mẹ phạm tội". Tìm kiếm từ khóa có thể bỏ lỡ văn bản dùng thuật ngữ "trách nhiệm pháp lý của pháp nhân thành viên dependent".

Vector Search hiểu rằng hai khái niệm này liên quan ngữ nghĩa (cùng nói về liability, parent-subsidiary relationship), vì vậy vẫn tìm ra văn bản đúng dù từ ngữ khác biệt.

Ứng dụng

Sinh viên và nghiên cứu: Tìm kiếm tài liệu học thuật theo ý tưởng. Bạn không nhớ tên bài báo cụ thể, chỉ nhớ nội dung là "cái gì đó về transformer và hiệu quả năng lượng". Vector Search sẽ tìm được bài báo "Efficient Transformer Architectures for Mobile Devices" dù bạn không nhớ từ khóa chính xác.

Người đi làm trong doanh nghiệp: Xây dựng trợ lý ảo cho phòng Kỹ thuật. Kỹ sư hỏi "lỗi timeout hôm qua trên server staging", hệ thống tìm được log lỗi và runbook xử lý từ tháng trước có mô tả tương tự, ngay cả khi log đó không chứa từ "hôm qua" hay "staging".

Startup và sản phẩm AI: Xây dựng recommendation content. Ứng dụng đọc báo dùng Vector Search để gợi ý bài viết "liên quan" không chỉ dựa trên chủ đề (tag) mà dựa trên ngữ cảnh chi tiết của bài viết đang đọc — ví dụ bài về "tác động của biến đổi khí hậu đến nông nghiệp" sẽ gợi ý bài về "kỹ thuật tưới tiêu tiết kiệm nước" thay vì bài chung chung về "môi trường".

So sánh

Tiêu chíTìm kiếm từ khóa truyền thốngVector Search (Semantic Search)
Cơ chếInverted index (từ → tài liệu)Vector index (khoảng cách toán học)
Khớp từChính xác hoặc prefix/suffixNgữ nghĩa tương đồng
Ưu điểmNhanh, chính xác cho từ chuyên ngànhHiểu ý định, bắt synonym, paraphrase
Nhược điểmBỏ lỡ nội dung diễn đạt khácCó thể trả về kết quả "dính" ý nhưng sai context
HybridKết hợp cả hai: dùng keyword lọc trước, vector search tinh chỉnh

Kết luận: Vector Search không thay thế hoàn toàn tìm kiếm từ khóa — nó bổ sung cho những trường hợp người dùng không biết chính xác thuật ngữ chuyên môn. Trong thực tế, hệ thống RAG tốt thường kết hợp cả hai: lọc trước bằng metadata (keyword filter), rồi dùng Vector Search để sắp xếp độ liên quan.

Bài viết liên quan

Cùng cụm

RAG là gì? Retrieval-Augmented Generation giải thích đơn giản

Hiểu tổng thể pipeline RAG — tại sao cần retrieval trước khi generation

Chunking Strategies: Chia tài liệu thế nào cho AI đọc tốt?

Tài liệu phải được chia nhỏ trước khi embed — chiến lược chia ảnh hưởng lớn đến chất lượng tìm kiếm

Reranking & Filtering: Lọc và xếp hạng context trước khi đưa vào

Sau Vector Search, cần bước tinh chỉnh để chọn đúng context nhất đưa vào LLM

Knowledge Graph: Tổ chức kiến thức có cấu trúc cho AI

Khi Vector Search không đủ — kết hợp với KG để hiểu quan hệ thực thể phức tạp

Đọc tiếp

Quản lý Context hiệu quả

Đã có dữ liệu từ Vector Search, làm sao đưa vừa vặn vào context window — kỹ thuật quản lý không gian ngữ cảnh

Memory & Conversation: AI nhớ thông tin xuyên suốt chat

Từ tìm kiếm tĩnh sang lưu trữ động — cách AI ghi nhớ thông tin từ nhiều lượt hội thoại

On this page