Đây là phần ghi chép theo ý hiểu của mình từ bài viết Why RAG Applications Fail in Production của tác giả Mandar Karhade, MD. PhD.
Không thể phủ nhận các ứng dụng Retrieval-Augmented Generation (RAG) là một trong những công cụ mạnh mẽ nhất của LLM. Tuy nhiên, không tránh khỏi việc RAG gặp một số khó khăn khi đi lên production. Bài viết này sẽ giới thiệu một số vấn đề và giải pháp để deploy thành công.
1. Các vấn đề mà RAG gặp phải
a. Chất lượng retrieval
Thực sự mà fail ngay từ bước đầu tiên thì khá tệ cho cả hệ thống. Nhất là khi dataset của bạn thuộc một domain khá đặc thù mà mô hình tạo embedding của bạn thì chưa được fine tune, thì kể cả khi điểm similarity có cao thì cũng chưa chắc đã đúng, và điểm thấp cũng chưa chắc đã sai.
b. Hallucination
Mô hình LLM rất hay sinh ra các nội dung không nằm trong dataset của bạn mà chẳng hiểu lấy ra từ đâu - đấy gọi là hallucination. Nếu mô hình bay quá thì dễ cung cấp phải thông tin sai lệch cho khách hàng. Bạn không muốn thế... đúng không?
c. An toàn thông tin
Không chỉ dừng lại ở thông tin khách hàng, chúng ta cũng cần phải đảm bảo an toàn thông tin cho chính dữ liệu của chúng ta.
d. Nội dung phù hợp
Cần phải đảm bảo ứng dụng của bạn không cung cấp các thông tin trái phép hay gây nguy hại đến người dùng và hình ảnh của công ty.
e. Các vấn đề vận hành
Các vấn đề như là recursive retrieval (retrieval từng phần), sentence window retrieval (ngoài câu liên quan thì lấy thêm bao nhiêu câu liền kề để mô hình hiểu hơn về ngữ cảnh), hay việc cân đối giữa hệ thống tự host hay xài API sẽ ảnh hưởng khá nhiều đến bài toán đánh đổi giữa độ chính xác và tối ưu chi phí của mô hình.
2. Giải pháp
1. Lên kế hoạch cẩn thận cho trường hợp xấu nhất
Không có một phép đo cụ thể cho một kế hoạch đúng, nhưng ít nhất nó phải dự phòng được các vấn đề, rồi được test một cách cẩn thận qua chí ít là các vấn đề bên trên: chất lượng retrieval, hallucination, an toàn thông tin, nội dung phù hợp hay các vấn đề về vận hành.
2. Thường xuyên cập nhật mô hình
Bạn cần phải có cơ chế theo dõi và cập nhật mô hình theo tình hình sử dụng thực tế và phản hồi của khách hàng. Nên bắt đầu từ một mô hình nhỏ rồi mới mở rộng dần. Ngoài ra, cần đảm bảo về bảo mật dữ liệu, hạ tầng, tích hợp SSO, chứng chỉ SOC2, ... để tự tin đem đi bán.
3. Viết documentation cẩn thận
Lường trước hết tất cả các tình huống xấu có thể xảy ra và trao đổi cẩn thận với khách hàng. Chịu đau thương trước còn hơn sau này phải giảng hòa.
4. Decor với ngôn ngữ của thương hiệu
Nếu bạn có sẵn dataset để train lại mô hình thì tốt. Nhưng nếu bạn không có, thì nên đảm bảo phần trích xuất thông tin đúng trước, và dùng thông tin này để tính accuracy metric. Hoàn thành trích xuất rồi sinh ra nội dung xong xuôi thì bạn mới nên bảo LLM viết lại phần thông tin đó thành ngôn ngữ của brand.