Генерація з доповненням через пошукГенерація з доповненням через пошук (англ. Retrieval-Augmented Generation, RAG) — це техніка, що поєднує пошук інформації з її генерацією для створення більш точних і контекстуально релевантних відповідей. Генерація з доповненою вибіркою інформації надає генеративним моделям штучного інтелекту можливості пошуку інформації.[1] Вона змінює взаємодію з великою мовною моделлю (LLM) так, щоб модель відповідала на запити користувачів, спираючись на визначений набір документів, використовуючи цю інформацію для доповнення даних, отриманих із її власного великого статичного набору навчальних даних. Це дозволяє LLM використовувати інформацію, яка є специфічною для певної галузі, або актуальнішу інформацію.[2] Застосування включають надання чат-ботам доступу до внутрішніх даних компанії або надання фактів лише з авторитетних джерел.[3] ПроцесRAG є гібридним підходом у галузі машинного навчання, який підвищує якість генерації тексту шляхом попереднього пошуку релевантної інформації. На відміну від традиційних моделей машинного навчання, які покладаються виключно на вбудовані знання, RAG динамічно витягує інформацію з зовнішніх джерел перед генерацією відповіді Процес RAG складається з чотирьох основних етапів. Спершу всі дані повинні бути підготовлені та проіндексовані для використання великою мовною моделлю (LLM). Далі кожен запит включає етапи пошуку, доповнення та генерації. ІндексаціяЗазвичай дані, до яких потрібно звертатися, перетворюються на вбудовування (англ. embeddings) для великої мовної моделі (LLM) — числові представлення у вигляді великих векторів. RAG можна застосовувати до неструктурованих (зазвичай текстових), напівструктурованих або структурованих даних (наприклад, графів знань). Ці вбудовування зберігаються у векторній базі даних, що дозволяє здійснювати пошук документів. ![]() ПошукДля заданого запиту користувача спочатку викликається механізм пошуку документів, щоб вибрати найбільш релевантні документи, які будуть використані для доповнення запиту. Цей процес порівняння може виконуватися різними методами, залежно від типу індексації, що використовується. ДоповненняМодель передає цю релевантну отриману інформацію у велику мовну модель (LLM) через інженерію запитів на основі початкового запиту користувача. Новіші реалізації (станом на 2023 рік) також можуть включати спеціальні модулі доповнення, які здатні розширювати запити на кілька доменів, використовувати пам'ять і самовдосконалення для навчання на основі попередніх пошуків. ГенераціяНарешті, велика мовна модель (LLM) може згенерувати відповідь, спираючись як на запит, так і на отримані документи. Деякі моделі включають додаткові кроки для покращення результату, такі як повторне ранжування отриманої інформації, вибір контексту та тонке налаштування. ПокращенняУдосконалення базового процесу, наведеного вище, можна застосовувати на різних етапах потоку RAG. КодувальникЦі методи зосереджені на кодуванні тексту у вигляді густих або розріджених векторів. Розріджені вектори, які використовуються для кодування ідентичності слова, зазвичай мають довжину словника та майже повністю складаються з нулів. Густі вектори, які використовуються для кодування значення, значно менші та містять набагато менше нулів. Можна зробити кілька покращень у способі розрахунку подібностей у векторних сховищах (базах даних).
Методи, орієнтовані на пошук (Retriever-centric methods)Ці методи спрямовані на покращення якості звернень із векторної бази даних:
Мовна модельПереробивши мовну модель з урахуванням механізму пошуку (англ. retriever), можна створити мережу, яка у 25 разів менша за розміром, але має порівняльний рівень заплутаності (англ. perplexity) з набагато більшими моделями. Оскільки ця модель (Retro) навчається з нуля, її реалізація вимагає високих витрат на навчання, яких уникала початкова схема RAG. Гіпотеза полягає в тому, що, надаючи знання про домен під час навчання, Retro потребує менше уваги до домену і може зосередити свої обмежені ресурси ваг лише на мовній семантиці. Тут показано перероблену мовну модель. Було повідомлено, що Retro не є відтворюваним, тому були внесені зміни для забезпечення відтворюваності. Більш відтворювана версія називається Retro++ і включає RAG у контексті. Розбиття на фрагменти (Chunking)Розбиття на фрагменти включає різні стратегії поділу даних на вектори, щоб механізм пошуку міг знаходити в них деталі. Три типи стратегій розбиття на фрагменти:
Переваги та обмеженняПереваги
Обмеження
Якщо зовнішнє джерело даних є великим, пошук може бути повільним. Використання RAG не повністю усуває загальні виклики, з якими стикаються великі мовні моделі (LLM), зокрема галюцинації. Примітки
Список літератури |
Portal di Ensiklopedia Dunia