Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Mô hình ngôn ngữ lớn biết nhiều nhưng không biết tài liệu nội bộ của bạn, và đôi khi trả lời rất tự tin nhưng sai. RAG là kỹ thuật phổ biến để khắc phục: tìm tài liệu liên quan trước, rồi đưa cho mô hình đọc khi trả lời. Hãy xem nó hoạt động ra sao.
RAG là viết tắt của Retrieval-Augmented Generation, tạm dịch "sinh văn bản có hỗ trợ truy xuất". Ý tưởng đơn giản như thi mở sách: thay vì bắt mô hình nhớ mọi thứ, bạn cho phép nó tra tài liệu trước khi trả lời.
Đoạn Python dưới đây mô phỏng ý tưởng cốt lõi: tính độ tương đồng cosine giữa vector câu hỏi và các đoạn tài liệu. Trên thực tế, vector đến từ một mô hình embedding, ở đây ta dùng số giả định cho đơn giản:
import math
def cosine(a, b):
dot = sum(x * y for x, y in zip(a, b))
na = math.sqrt(sum(x * x for x in a))
nb = math.sqrt(sum(y * y for y in b))
return dot / (na * nb)
docs = {
"Chính sách hoàn tiền": [0.9, 0.1, 0.0],
"Cách đổi mật khẩu": [0.1, 0.8, 0.2],
}
query = [0.85, 0.15, 0.05] # câu hỏi về hoàn tiền
best = max(docs, key=lambda k: cosine(query, docs[k]))
print(best) # Chính sách hoàn tiền
RAG giảm chứ không loại bỏ hoàn toàn việc mô hình trả lời sai. Nếu bước truy xuất lấy nhầm đoạn, câu trả lời vẫn lệch. Vì vậy cần đo chất lượng bằng bộ câu hỏi mẫu, ghi log các câu trả lời kém và cho người dùng thấy nguồn tham chiếu.
Không bắt buộc. Với kho tài liệu nhỏ, tìm kiếm từ khóa hoặc lưu vector trong bộ nhớ vẫn đủ dùng. Cơ sở dữ liệu vector hữu ích khi dữ liệu lớn.
Hãy soạn một bộ câu hỏi mẫu kèm đáp án mong đợi, chạy hệ thống và kiểm tra xem đoạn tài liệu truy xuất có đúng không, câu trả lời có bám theo nguồn không.
RAG là cách thực dụng để biến một mô hình ngôn ngữ chung thành trợ lý am hiểu dữ liệu riêng của bạn. Nắm được quy trình cắt, nhúng, tìm và sinh là bạn đã hiểu nền móng của hầu hết chatbot tài liệu hiện nay.
Để làm chủ các kiến thức nền như API, cơ sở dữ liệu và Python phục vụ các dự án như vậy, mời bạn xem khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment