AI-агенти та автоматизація
Що таке 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 галюцинацій?
Значно зменшує, але не прибирає повністю. Модель усе ще може додумати деталь чи неправильно зрозуміти фрагмент. Допомагають вимога посилатися на джерело, дозвіл відповісти «у документах цього немає» і вибіркова перевірка відповідей людиною.
Як правильно ділити документи на фрагменти?
За змістом — розділами і пунктами, а не за фіксованою кількістю символів. Корисно, щоб сусідні фрагменти трохи перекривалися і думка не обривалася, а також щоб кожен фрагмент містив заголовок свого розділу для контексту.
Скільки фрагментів передавати моделі?
Зазвичай від трьох до десяти. Якщо замало — потрібний фрагмент може не потрапити у вибірку, якщо забагато — важливе губиться серед зайвого, а запит дорожчає. Оптимальну кількість підбирають експериментально на реальних питаннях із відомими відповідями.
Навчання програмуванню в OWU
Опануйте професію в IT на практичних курсах із менторами та реальними проєктами.
Обрати курс