Що таке RAG (Retrieval-Augmented Generation)?
RAG (Retrieval-Augmented Generation) — це підхід, за якого перед відповіддю система спочатку знаходить релевантні фрагменти у вашій базі знань і передає їх мовній моделі разом із питанням. Модель відповідає не «з памʼяті», а за конкретними документами.
Схема складається з двох етапів. Спершу документи ріжуть на фрагменти, перетворюють на ембединги й складають у векторну базу. Далі на кожне питання користувача система переводить запит у вектор, знаходить кілька найближчих фрагментів і підставляє їх у промпт: «дай відповідь, спираючись лише на цей контекст».
RAG розвʼязує три реальні проблеми: модель не знає внутрішніх документів компанії, її знання застарівають, і вона схильна вигадувати факти. Оновити базу знань у RAG-системі — це просто завантажити новий документ, без перенавчання моделі.
Де застосовується
RAG — стандартний спосіб зробити помічника за власними документами: база знань підтримки, внутрішні регламенти, технічна документація, юридичні матеріали, каталог товарів. Саме цей підхід стоїть за більшістю корпоративних AI-асистентів.
Збірка складається з кількох етапів: документи ріжуть на фрагменти, перетворюють на ембединги, складають у векторну базу, а при запиті знаходять кілька найближчих і передають моделі разом із питанням. Якість найчастіше впирається не в модель, а в нарізку і пошук — саме там губиться потрібний фрагмент.
Приклад
Співробітник питає про умови повернення обладнання. Система знаходить три фрагменти з внутрішнього регламенту, передає їх моделі й отримує відповідь із посиланням на конкретний пункт — замість правдоподібного переказу загальних правил з інтернету.
question = 'Які умови повернення обладнання?'
chunks = vector_db.search(embed(question), limit=5)
context = '\n\n'.join(c.text for c in chunks)
answer = llm.complete(
system='Відповідай лише за наведеними фрагментами. '
'Якщо відповіді в них немає — так і скажи.',
prompt=f'Документи:\n{context}\n\nПитання: {question}',
) RAG чи fine-tuning — що обрати
RAG підмішує актуальні факти в момент запиту — ідеальний для баз знань, регламентів і документації, які змінюються. Fine-tuning закріплює стиль і формат відповіді у вагах моделі — потрібен, коли важлива стала поведінка, а не свіжі дані. Якщо сумніваєтеся, починайте з RAG: він дешевший, швидший, а його результат можна перевірити за посиланнями на джерела.
Часті запитання
Чи підходить RAG для невеликої бази документів?
Так, і поріг входу тут низький: для кількох сотень сторінок вистачає розширення до звичайної бази даних і однієї моделі ембедингів. Виграш помітний уже на цьому обсязі — співробітники перестають шукати потрібний пункт регламенту вручну по файлах і листуванню.
Чи позбавляє RAG галюцинацій?
Знижує їх помітно, але не усуває повністю. Модель і далі може домислити деталь чи хибно зрозуміти фрагмент. Допомагають вимога посилатися на джерело, дозвіл відповісти «у документах цього немає» і вибіркова перевірка відповідей людиною.
Як правильно нарізати документи на фрагменти?
За смисловими межами — розділами і пунктами, а не за фіксованою кількістю символів. Корисне невелике перекриття між сусідніми фрагментами, щоб думка не обривалася, і збереження заголовка розділу всередині кожного фрагмента для контексту.
Скільки фрагментів передавати моделі?
Зазвичай від трьох до десяти. Замало — потрібний шматок може не потрапити у вибірку; забагато — важливе губиться серед зайвого, а запит дорожчає. Оптимум добирають експериментально на наборі реальних питань із відомими відповідями.