# Advanced Retrieval for AI with Chroma: một giờ, ba kỹ thuật cho bước truy xuất của RAG

> Khoá ngắn của Anton Troynikov chỉ dạy một bước của RAG là bước lấy tài liệu, và khi chatbot của khách hàng trả lời sai, đây là chỗ nên kiểm tra sớm.

Bản gốc: https://fdetimes.net/vi/sach-khoa-hoc/khoa-advanced-retrieval-for-ai-with-chroma/

Một bản demo RAG thường chạy ổn với những câu hỏi do chính người dựng soạn. Phép thử thật đến khi người dùng hỏi bằng từ ngữ của họ. Khoá [Advanced Retrieval for AI with Chroma](https://www.deeplearning.ai/short-courses/advanced-retrieval-for-ai/) của DeepLearning.AI dài 1 giờ 2 phút và chỉ tập trung vào một bước: lấy tài liệu.

Người dạy là Anton Troynikov, đồng sáng lập Chroma. Khoá gồm 7 bài video, 5 ví dụ code và 1 bài tập chấm điểm; trang khoá học ghi lần cập nhật gần nhất là ngày 7/10/2025.

Với một FDE, phạm vi hẹp như vậy lại là điểm mạnh. Khi khách hàng phàn nàn chatbot "trả lời sai", một giả thuyết nên kiểm tra sớm là model đang tóm tắt rất trung thành những tài liệu không liên quan. Khoá này dạy ba cách xử lý đúng giả thuyết đó.

## Học theo thứ tự nào?

Ba kỹ thuật đáng giữ lại là query expansion, rerank bằng cross-encoder và embedding adapter. Các bài đều ngắn: bài rerank khoảng 6 phút, bài adapter khoảng 8 phút, nên bạn hoàn toàn có thể xem hết trong một buổi tối.

Thứ tự nên đi là từ rẻ đến đắt. Query expansion và rerank chỉ cần thêm bước vào pipeline đang có, còn adapter cần dữ liệu có nhãn để huấn luyện. Ở chỗ khách hàng, việc đầu tiên vẫn là chẩn đoán pipeline đang hỏng ở đâu, rồi mới chọn kỹ thuật.

## Một câu hỏi, nhiều cách diễn đạt

Query expansion là mở rộng câu hỏi của người dùng bằng các khái niệm và từ khoá liên quan. Tài liệu Haystack của deepset mô tả cùng ý tưởng qua QueryExpander: từ một truy vấn, sinh ra nhiều biến thể gần nghĩa để cải thiện recall.

Thử hình dung bạn deploy trợ lý tài liệu nội bộ cho một công ty bảo hiểm. Nhân viên hỏi "huỷ hợp đồng có được hoàn tiền không", trong khi văn bản lại viết "chấm dứt hợp đồng trước hạn".

Sinh thêm vài biến thể như "chấm dứt sớm", "phí huỷ" có thể tăng khả năng chạm đúng đoạn văn cần tìm.

Educative giải thích cơ chế này bằng xác suất: diễn đạt càng nhiều cách, càng có cơ hội để ít nhất một cách nằm gần đoạn văn liên quan trong không gian embedding.

Đó là lập luận, chưa phải số đo, nên bạn vẫn phải tự đo trên dữ liệu của khách hàng.

## Lấy rộng trước, chấm kỹ sau

Cái giá của query expansion là lấy về nhiều hơn. Giả sử bạn có 1 câu gốc cộng 4 câu sinh thêm, mỗi câu lấy 10 kết quả, vậy là có tới 50 tài liệu, khử trùng lặp xong có thể còn khoảng 30. Không thể nhét hết 30 tài liệu đó vào context.

Đó là lý do bài tiếp theo là rerank: dùng cross-encoder xếp lại kết quả đã lấy về, chọn ra những kết quả liên quan nhất tới truy vấn. Vì bước này chỉ chạy trên các ứng viên đã có, nó hợp với vài chục tài liệu hơn là cả collection. Từ 30 ứng viên, bạn giữ 5 tài liệu cho LLM.

**Điểm mấu chốt:** Lấy về thật rộng bằng cách rẻ, rồi chọn thật kỹ bằng cách đắt.

## Uốn lại không gian embedding cho đúng ứng dụng

Bài embedding adapter chứa ý đáng nhớ nhất của khoá. Ý tưởng là gắn thêm một lớp nhỏ để nắn lại embedding, sao cho những đặc điểm quan trọng với ứng dụng cụ thể của bạn được đẩy lên. Trang khoá học chỉ nói cách này "có thể cải thiện" việc truy xuất, không hứa chắc.

Bài nghiên cứu của Chroma về embedding adapter cho con số cụ thể hơn, nhưng cần đọc đúng. Một linear adapter chỉ áp lên truy vấn cải thiện độ chính xác truy xuất "tới" 70% so với mô hình embedding huấn luyện sẵn dùng một mình.

Đó là kết quả trong thiết lập thử nghiệm riêng của báo cáo: đo bằng NDCG trên bộ CQADupstackEnglishRetrieval, mốc so sánh là all-MiniLM-L6-v2, và adapter cần tối thiểu 1.500 cặp truy vấn–tài liệu có nhãn. Đừng hứa với khách hàng mức tăng 70%.

Dù vậy, chi tiết "chỉ áp lên truy vấn" có ý nghĩa thực tế lớn với FDE. Bạn không phải embed lại hàng triệu tài liệu của khách hàng, cũng không phải đổi model. Nếu ngay từ ngày đầu bạn ghi log câu hỏi cùng tài liệu mà người dùng xác nhận là đúng, đó chính là nguồn cặp có nhãn để sau này thử adapter.

## Ai nên học, và đưa gì vào CV?

Khoá này hợp nhất với kỹ sư đã dựng xong một RAG chạy được và đang gặp câu hỏi "sao nó lấy sai tài liệu". Nếu bạn chưa từng làm RAG, hãy dựng một bản đơn giản trước, vì các kỹ thuật chỉ thấm khi bạn đã tự gặp lỗi.

Muốn chứng minh mình đã sửa đúng chỗ, bạn cần một phép đo đơn giản. Hit rate trả lời câu hỏi: với mỗi câu, hệ thống có lấy được ít nhất một đoạn đúng trong top k không, 1 nếu có, 0 nếu không. Lấy trung bình trên cả bộ là ra hit rate chung.

Ví dụ với 20 câu hỏi và k=5: trước khi rerank, 11 câu có tài liệu đúng trong top 5, hit rate@5 là 11 ÷ 20 = 55%. Thêm rerank xong, nếu con số là 16 câu thì hit rate@5 là 80%. Đây là số minh hoạ; số của bạn phải đến từ chính bộ câu hỏi đã gán nhãn.

Khi đọc JD cho vị trí FDE hay applied AI, hãy để ý các cụm như "retrieval quality", "RAG in production" hay "evaluation". Trong CV, một dòng như "thêm rerank bằng cross-encoder, đưa hit rate@5 trên 20 câu hỏi thật từ 55% lên 80%" có sức nặng hơn nhiều so với ghi "biết Chroma".

Hãy học một giờ này, rồi dành buổi đầu tiên ở chỗ khách hàng để gán nhãn 20 câu hỏi thật. Kỹ thuật nào cũng chỉ đáng tin khi có con số trước và sau đi kèm.

**Thử ngay tuần này:**

- Lấy 20 câu hỏi thật của khách hàng, gán tay tài liệu đúng cho từng câu, rồi tính hit rate@5: số câu có tài liệu đúng trong top 5 chia cho 20
- Thêm bước rerank bằng cross-encoder vào pipeline đang có và chạy lại đúng bộ 20 câu đó để có số trước/sau
- Với những câu trượt, viết tay 3-4 cách diễn đạt khác và xem có cách nào kéo được tài liệu đúng vào top 5 không

## Nguồn

- [Advanced Retrieval for AI with Chroma - DeepLearning.AI](https://www.deeplearning.ai/short-courses/advanced-retrieval-for-ai/)

- [Embedding Adapters - Chroma Research](https://www.trychroma.com/research/embedding-adapters)

- [QueryExpander - Haystack Documentation](https://docs.haystack.deepset.ai/docs/queryexpander)

- [Multi-Query and Step-Back Retrieval - Educative](https://www.educative.io/courses/llm-bootcamp/multi-query-and-step-back-retrieval)

- [Hit Rate: RAG Retrieval Coverage Evaluation Metric - Future AGI Docs](https://docs.futureagi.com/docs/evaluation/builtin/hit-rate)

- [RAG Evaluation Metrics for Retrieval Quality: My Production Playbook](https://www.kunalganglani.com/blog/rag-evaluation-metrics-retrieval-quality)
