Vấn đề: một chunk như "Doanh thu quý này tăng 3%" không nói rõ công ty nào, quý nào, nên vector của nó không khớp với truy vấn "doanh thu quý 2/2024 của ACME".
Contextual retrieval thêm một đoạn ngữ cảnh ngắn (thường 50-100 token) do LLM sinh ra vào đầu mỗi chunk trước khi embed và trước khi lập chỉ mục BM25:
chunk gốc: "Doanh thu quý này tăng 3% so với quý trước."
chunk mới: "Trích báo cáo tài chính Q2/2024 của ACME, phần kết quả kinh doanh.
Doanh thu quý này tăng 3% so với quý trước."Cách tạo: đưa toàn văn tài liệu + chunk cho một model rẻ, yêu cầu viết 1-2 câu định vị chunk trong tài liệu. Chi phí một lần lúc ingest, và prompt caching phần toàn văn tài liệu giúp giảm đáng kể vì mọi chunk cùng tài liệu dùng chung tiền tố.
Đánh đổi cần nói rõ khi phỏng vấn: tốn thêm chi phí và thời gian ingest, index phình ra, và mỗi lần đổi prompt sinh ngữ cảnh thì phải index lại. Đổi lại tỷ lệ truy xuất trượt giảm rõ, nhất là với kho tài liệu nhiều thực thể na ná nhau (hợp đồng, báo cáo theo kỳ).