Просунуті методи RAG не кращі. Вони кращі лише іноді.

Просунуті методи RAG — це не безкоштовні оновлення. Це інструменти, що мають свої компроміси.

Я протестував п'ять методів пошуку (retrieval) у RAG-конвеєрі, використовуючи документацію Anthropic. Я хотів з'ясувати, які з них справді виправдовують свою складність.

Ось що я виявив:

• Dense Retrieval: Базовий рівень. Працює добре, але пропускає точні терміни. • Hybrid Search: Використовує поєднання dense-пошуку та пошуку за ключовими словами. Він знаходить точні терміни, які пропускає dense-пошук. Але ви повинні правильно зважити результати, інакше корисний сигнал зникне. • Reranking: Використовує cross-encoder для оцінки кандидатів. Це допомагає, коли потрібний фрагмент (chunk) занадто глибоко захований у результатах. • HyDE: Використовує гіпотетичну відповідь для пошуку даних. Це небезпечно. Це допомагає при неформальних запитах, але на прямих запитах усе псує. У одному тесті показник Recall впав з 0.80 до 0.17. • Contextual Retrieval: Додає резюме (summaries) до фрагментів. Це допомагає коротким фрагментам, але збільшує витрати на LLM.

Найголовніший урок стосується HyDE. Це не інструмент типу «налаштував і забув». Його варто використовувати лише тоді, коли запит користувача та ваші документи «говорять різними мовами». Вам потрібен роутер, щоб вирішувати, коли його застосовувати.

Я також засвоїв урок щодо вимірювання результатів.

Я намагався використовувати Ragas для оцінювання. Це було занадто повільно. Програма витрачала години на повторні спроби невдалих викликів. Я вирішив побудувати власний асинхронний механізм (async harness). Замість 11 годин моє оцінювання зайняло 221 секунду.

Не ставтеся до ШІ-інструментів як до «чорних скриньок». Якщо інструмент працює повільно або дає збої, подивіться на математику, що стоїть за ним. Якщо потрібно — побудуйте власне рішення.

Робота полягає не лише в додаванні нових функцій. Робота полягає в тому, щоб виміряти, яка саме функція заслуговує на своє місце у вашій системі.

Короткий підсумок, коли що використовувати:

  • Hybrid: Використовуйте, коли запити базуються на точних параметрах.
  • HyDE: Використовуйте, коли запити сформульовані нечітко.
  • Reranking: Використовуйте, коли пошук занадто широкий, але неточний.
  • Contextual: Використовуйте, коли вашим фрагментам бракує контексту.

Припиніть гонитися за "state of the art". Почніть вимірювати свої результати.

Джерело: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o

Додаткова спільнота для навчання: https://t.me/GyaanSetuAi