Chuyển đến nội dung
tinAI
Quay lại

Kapa dạy LLM nhỏ bỏ 68% context RAG không cần thiết

Bản dịch tiếng Việt của tinAI · Từ How we taught a small LLM to throw away 68% of our RAG context (kapa.ai) · Ngày gốc: · Dịch ngày:

Bài gốc: How we taught a small LLM to throw away 68% of our RAG context (kapa.ai)

Tác giả: kapa.ai

Ngày đăng: Dịch ngày:

TL;DR

Kapa thêm một LLM nhỏ giữa reranker và generator để chấm toàn bộ chunk theo ngữ cảnh câu hỏi. Cấu hình họ chọn bỏ 68% context, giữ 96% recall và giảm 34% chi phí query, đổi lại thêm khoảng 0,7 giây latency.

Ước tính đọc: 5 phút

Tóm tắt

Kapa thêm một bước context pruning giữa reranker và generator trong pipeline RAG. Một LLM nhỏ đọc câu hỏi cùng toàn bộ chunk đã retrieve, chấm từng chunk theo vai trò của nó trong câu trả lời, rồi bỏ các chunk không cần thiết trước khi gọi model lớn.

Cấu hình họ chọn bỏ khoảng 68% context, giữ 96% recall trên tập câu hỏi đã gán nhãn, và giảm khoảng 34% chi phí mỗi query sau khi tính cả chi phí của pruner. Đổi lại, hệ thống thêm khoảng 0,7 giây latency cho mỗi query.

Vấn đề: chunk bị bỏ qua vẫn tốn tiền

Trong RAG, retriever thường ưu tiên recall: lấy nhiều chunk hơn mức cần thiết để giảm nguy cơ thiếu thông tin. Reranker sắp xếp lại kết quả, rồi top K được đưa vào generator.

Cách này an toàn nhưng đắt. Với assistant của Kapa, retrieved chunks chiếm khoảng hai phần ba chi phí của một query, nhiều hơn cả câu trả lời, lịch sử hội thoại và system prompt cộng lại. Mỗi chunk bớt đi giảm khoảng 4% chi phí query.

Trong agent, vấn đề còn nặng hơn vì mỗi tool call lại đổ thêm output vào context. Context càng phình, model càng tốn tiền và càng dễ phải xử lý nhiều noise.

Vì sao chỉ dùng rerank score không đủ

Giải pháp dễ nghĩ tới là đặt ngưỡng cho rerank score: chunk nào dưới 0,7 thì bỏ. Kapa nói cách này thất bại vì hai lý do.

Thứ nhất, rerank score thường là thứ hạng tương đối, không phải measurement đã calibrate giữa các query. Một score 0,7 ở query này không chắc cùng nghĩa với 0,7 ở query khác.

Thứ hai, relevance không phải thuộc tính của từng chunk riêng lẻ. Có chunk không trả lời trực tiếp câu hỏi nhưng là định nghĩa hoặc nửa còn lại của câu trả lời. Pointwise reranker chỉ nhìn query và một chunk, nên không thấy chunk đó quan trọng khi kết hợp với chunk khác.

Kapa cũng thử anchor documents: chèn các chunk synthetic với mức độ liên quan đã biết để calibrate thang điểm. Cách này xử lý phần calibration, nhưng không xử lý được lỗi gốc: reranker vẫn không đánh giá được vai trò của chunk trong cả tập context.

Thiết kế: để LLM chấm cả danh sách chunk

Kapa đưa vào một call listwise LLM. Model nhận câu hỏi và toàn bộ chunk, rồi chấm từng chunk theo thang 5 mức:

Các chunk đạt ngưỡng sẽ được giữ lại. Kapa còn giữ top vài chunk theo reranker bất kể grade để giảm rủi ro pruner bỏ nhầm chunk mạnh nhất.

Có ba knob chính:

Kết quả đo được

Kapa đánh giá trên tập câu hỏi thật có nhãn chunk cần thiết, rồi replay cấu hình trên một tháng hội thoại production.

Ở mức 98% recall, cắt top-N đơn giản chỉ bỏ được khoảng 7% chunk. Các chiến lược dùng LLM đều vượt xa baseline này; scoring theo thang 5 mức là đường Pareto tốt nhất.

Cấu hình production của họ nằm gần phía aggressive:

Latency và nơi nên bật

Pruner nằm trên critical path nên thêm latency trực tiếp. Cấu hình Kapa chọn chạy khoảng 0,7 giây/query. Việc generator đọc ít token hơn chỉ bù được một phần nhỏ, không đủ triệt tiêu call mới.

Vì vậy, pruning hợp lý nhất ở các agent có nhiều tool call và context dài. Trong single-shot chat path cần phản hồi cực nhanh, 0,7 giây có thể là giá phải cân nhắc kỹ.

Kapa bật mặc định tính năng này trong Product Agent SDK cho knowledge base search, và để tùy chọn trong retrieval API và MCP servers.

Dev nên rút gì ra

Bài này có một thông điệp khá thực dụng: tối ưu RAG không chỉ là chọn embedding tốt hơn hay reranker mạnh hơn. Khi context đã qua nhiều tầng retrieve/rerank, phần tốn tiền nhất có thể là noise còn sót lại trong top K.

Nếu hệ thống của bạn có retrieval over docs, support thread hoặc tool output dài, hãy đo ba số cùng lúc: compression, recall và latency. Chỉ giảm token mà không đo recall là tự mua bug. Chỉ giữ recall mà không đo chi phí thì RAG sẽ tiếp tục đốt tiền trong im lặng.


Đường dẫn nguồn

tinAI dịch bài này sang tiếng Việt từ How we taught a small LLM to throw away 68% of our RAG context (kapa.ai) · Loại nguồn: công ty/blog và giữ bối cảnh từ bản tin tinAI đã giới thiệu bài này .

Bản tin này có 3 bài dịch liên quan từ cùng bản tin.