Пояснення технології Retrieval-Augmented Generation: усунення прогалин у знаннях ШІ
Чому ШІ з генерацією тексту створюють хибну інформацію та втрачають актуальність, та як генерація з підтримкою пошуку виправляє це крок за кроком: чанкування, ембеддинги, пошук та доповнення запиту.
Джерела: What LLMs Often Get Wrong At, And How RAG Cures That
Де ШІ часто стикаються з труднощами
Уявіть заключні усні іспити. Ви заздалегідь вивчаєте все напередодні, заходите до аудиторії, впевнено спілкуєтесь із екзаменатором та сподіваєтесь, що все пройде добре. А потім екзаменатор запитує: «Чому ви обрали саме такий підхід у своєму проекті?» Раптово в кімнаті настає тиша.
ШІ стикаються з такою ж проблемою.
Вони створені для того, щоб давати відповіді, які звучать переконливо. Це означає, що вони часто не знають, як визнати: «Я не знаю».
Існує ще проблема застарілих знань.
Уявіть, що той самий екзаменатор запитує:
«Чому ви обрали саме цей метод, коли зараз існує кращий?»
Ви опинитеся у скруті.
ШІ стикаються з цією саме проблемою, коли факти, на основі яких вони були навчені, більше не відображають реальність.
Тож справжнє питання звучить так: Як надати ШІ правильні факти саме тоді, коли вони їм потрібні?
Введення технології Retrieval-Augmented Generation
Не дозволяйте назві налякати вас. Це насправді простий процес: знаходите відповідну інформацію, передаєте її моделі та дозволяєте моделі перетворити її на відповідь.
Ось у чому вся суть.
Розглянемо, що насправді відбувається за цим описом.
Формулювання проблеми
Припустимо, ви створюєте внутрішнього штучного інтелектуального асистента для компанії.
У цій компанії є велика кількість документів: посібник для співробітників, внутрішні часто ставлені запитання, правила безпеки тощо.
Як тільки асистент почне працювати, люди природно почнуть ним користуватися. Хтось вводить:
"Скільки днів батьківської відпустки я маю право отримати?"
Проблема полягає у тому, що модель не має вбудованого розуміння конкретних правил вашої компанії. Ви не можете просто вставити сотні довгих документів у запит та очікувати чіткої відповіді — це може призвести до перевантаження вікна контексту, плутанини у моделі та інших проблем.
Як насправді працює RAG
Замість того, щоб покладатися на внутрішні знання ШІ для отримання відповіді, ми спочатку беремо необхідні матеріали з власної бази знань. Потім ці матеріали передаються ШІ.
ШІ використовує цю надану інформацію для формування своєї відповіді.
Іншими словами, моделі не потрібно запам’ятовувати все. Їй достатньо правильної інформації, наданої у правильний момент.
Це піднімає наступне запитання: як взагалі визначити, що є релевантним?
Отримання даних
Надсилання кожного документа до LLM для кожного окремого запитання було б марнотратним та повільним. Тож замість цього потрібен спосіб виокремлення відповідних фрагментів спочатку, адже щоразу сканувати все є дорогим та неефективним.
Для цього документи розділяються на менші частини, які називаються чанками. Один чанк може стосуватися правил батьківської відпустки, інший — процедур безпеки, а ще один — механізму відшкодування витрат.
Знаходження правильного чанка
Користувач може сформулювати своє запитання так: "Скільки часу відпустки я можу взяти після народження дитини?"
У той же час у самому документі може бути написано: "Працівники мають право на 26 тижнів батьківської відпустки."
Формулювання відрізняються, але значення залишається ідентичним. Щоб подолати цю різницю, системи RAG спираються на ембеддинги.
Що роблять ембеддинги
Ембеддинг перетворює фрагмент тексту на набір чисел, які кодують його значення. Тексти з схожим значенням розташовуються близько один до одного у цьому числовому просторі — їх відстань вимірюється за допомогою так званої векторної відстані, яка є способом кількісної оцінки відстані між двома векторами.
Ці ембеддинги зберігаються у векторній базі даних. Коли надходить нове запитання, воно також перетворюється на ембеддинг, і система шукає найближчі відповідні фрагменти.
Результатом є набір релевантних фрагментів, які потім передаються до LLM як додатковий контекст.
Посилення
Як тільки ідентифіковано релевантні фрагменти, наступним кроком є їх об’єднання.
Їх вставляють у вікно контексту ШІ разом із початковим запитанням:
Context:
Employees are entitled to 26 weeks of parental leave.
Question:
How long can I stay away from work after having a baby?
На цьому етапі ШІ має все необхідне для точної відповіді.
Генерація
Тепер настає та частина, у якій ШІ проявляє себе найкраще: створення фактичної відповіді.
Він читає як запитання користувача, так і отриманий контекст, а потім генерує відповідь:
"Ви маєте право на 26 тижнів батьківської відпустки."
І цим завершується цикл: Отримати → Доповнити → Створити.
Проблема
ШІ може міркувати лише на основі того контексту, який було отримано. Якщо буде взята неправильна частина інформації, кінцева відповідь все одно може бути неправильною, навіть якщо процес пройшов правильно.
Розгляньмо таку ситуацію:
Питання: «Як довго триває батьківська відпустка?»
Отриманий фрагмент: «Повідомте свого керівника за 30 днів до початку батьківської відпустки».
Результатова відповідь: асистент повідомляє працівнику, що він мусить інформувати свого керівника за цілий місяць до початку батьківської відпустки — це технічно пов’язано з темою, але насправді не відповідає на запитання про тривалість відпустки.
Покращення якості пошуку
То як забезпечити, щоб на етапі пошуку виявлявся правильний матеріал?
Тут важливими є кілька факторів:
Стратегія розділення на фрагменти: спосіб розбиття документів впливає на те, чи залишається пов’язаний контекст цілим у межах одного фрагмента.
Якість ембеддингів: сильніші ембеддинги полегшують узгодження запитання користувача з контентом, який насправді його відповідає.
Техніка пошуку: Поєднання пошуку за семантичною схожістю з традиційним пошуком за ключовими словами допомагає врахувати як значення, так і точну формулювання.
Переранжування: Спочатку отримують попередній набір кандидатських фрагментів, а потім застосовують другий етап ранжування, щоб виділити найкорисніші з них.
Основна мета залишається простою: поставити правильний контекст перед LLM.
Підсумок
RAG — це не якийсь магічний трюк.
Знайдіть правильну інформацію, передайте її LLM та дозвольте моделі сформувати відповідь.
Ось уся суть цього механізму.
Від LLM ніколи не вимагали знати все заздалегідь — йому потрібен лише правильний контекст, наданий у правильний час.
І це є основним принципом RAG: сміття входить — сміття виходить, а якісний вхід призводить до якісного виходу.
Тепер, щоразу, коли хтось згадуватиме «RAG це, RAG те», ви точно зрозумієте, про що йдеться.