Connect with us

Штучний інтелект

Глибокий аналіз Retrieval-Augmented Generation у LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Представьте собі, що ви є аналітиком, і у вас є доступ до великої мови моделі. Ви раді перспективам, які вона приносить до вашого робочого процесу. Але потім ви запитуєте її про останні курси акцій або поточний рівень інфляції, і вона відповідає вам:

“Вибачте, але я не можу надати реальні дані або дані після завершення навчання. Мої останні дані навчання закінчуються лише у січні 2022 року.”

Великі мови моделі, незважаючи на свою лінгвістичну потужність, не можуть зрозуміти концепцію “зараз“. А у швидкозмінному світі “зараз” – це все.

Дослідження показали, що великі попередньо натреновані мови моделі (LLM) також є сховищами фактичних знань.

Їх тренували на величезних даних, тому вони засвоїли багато фактів і цифр. При тонкому налаштуванні вони можуть досягти видатних результатів на різних завданнях NLP.

Але ось проблема: їхня здатність доступу та маніпулювання цими збереженими знаннями часом не досконала. Особливо коли завдання полягає у інтенсивному використанні знань, ці моделі можуть відставати від більш спеціалізованих архітектур. Це схоже на те, що у вас є бібліотека з усіма книгами світу, але немає каталогу, щоб знайти те, що вам потрібно.

OpenAI’s ChatGPT отримує оновлення для браузингу

Нещодавнє оголошення OpenAI про можливість браузингу ChatGPT є значним кроком у напрямку Retrieval-Augmented Generation (RAG). З допомогою можливості ChatGPT шукати в інтернеті актуальну та авторитетну інформацію, вона відображає підхід RAG щодо динамічного отримання даних з зовнішніх джерел для надання розширених відповідей.

https://twitter.com/OpenAI/status/1707077710047216095

Наразі ця функція доступна для користувачів Plus і Enterprise, але OpenAI планує розширити цю функцію для всіх користувачів скоро. Користувачі можуть активувати її, вибравши “Браузинг з Bing” під опцією GPT-4.

Chatgpt Нова функція браузингу

Нова функція браузингу Chatgpt

 Інженерія запитів є ефективною, але недостатньою

Запити служать ворітьми до знань LLM. Вони спрямовують модель, надають напрямок для відповіді. Однак створення ефективного запиту не є повним рішенням для отримання того, що ви хочете від LLM. Все ж таки, давайте розглянемо деякі хороші практики, які варто враховувати при написанні запиту:

  1. Ясність: Добре визначений запит усуває двозначність. Він повинен бути прямим, забезпечуючи те, що модель зрозуміє намір користувача. Ця ясність часто перекладується у більш узгоджену та актуальну відповідь.
  2. Контекст: Особливо для великих вхідних даних, розміщення інструкції може впливати на вихід. Наприклад, переміщення інструкції в кінець довгого запиту часто може давати кращі результати.
  3. Точність інструкції: Сила питання, часто передавана через рамку “хто, що, де, коли, чому, як”, може спрямувати модель до більш зосередженої відповіді. Крім того, вказівка бажаного формату виводу або розміру може далі уточнити вивід моделі.
  4. Розгляд невизначеності: важливо спрямувати модель щодо того, як відповісти, коли вона не впевнена. Наприклад, інструктування моделі відповісти “Я не знаю”, коли вона не впевнена, може запобігти генерації неточних або “галюцинових” відповідей.
  5. Пошукова логіка: Для складних інструкцій спрямування моделі до систематичного мислення або розділення завдання на підзадачі може привести до більш повних та точних виводів.

Відносно важливості запитів у спрямуванні ChatGPT, можна знайти детальну статтю на Unite.ai.

Виклики в генерації AI-моделей

Інженерія запитів полягає у тонкому налаштуванні директив, наданих вашій моделі, для покращення її продуктивності. Це дуже економічно ефективний спосіб підвищити точність вашої генераційної AI-застосунки, що вимагає лише незначних змін у коді. Хоча інженерія запитів може суттєво покращити виводи, важливо зрозуміти вбудовані обмеження великих мови моделей (LLM). Два основні виклики – це галюцинації та обмеження знань.

  • Галюцинації: Це стосується випадків, коли модель впевнено повертає неправильну або сфабриковану відповідь. Хоча просунуті LLM мають вбудовані механізми для визнання та уникнення таких виводів.
Галюцинації в LLM

Галюцинації в LLM

  • Обмеження знань: Кожна модель LLM має дату закінчення навчання, після якої вона не знає про події чи розвиток. Це обмеження означає, що знання моделі заморожені на момент її останнього навчального дня. Наприклад, модель, натренована до 2022 року, не знає про події 2023 року.
Обмеження знань в LLM

Обмеження знань в LLM

Retrieval-Augmented Generation (RAG) пропонує рішення цих викликів. Це дозволяє моделям доступитися до зовнішньої інформації, пом’якшуючи проблеми галюцинацій шляхом надання доступу до власної або галузевої інформації. Для обмежень знань RAG може отримувати актуальну інформацію поза датою навчання моделі, забезпечуючи те, що вивід є актуальним.

Це також дозволяє LLM витягувати дані з різних зовнішніх джерел в реальному часі. Це можуть бути бази знань, бази даних або навіть вся інтернет-інформація.

Введення у Retrieval-Augmented Generation

Retrieval-Augmented Generation (RAG) – це рамка, а не конкретна технологія, що дозволяє великим мовним моделям використовувати дані, на яких вони не були натреновані. Є кілька способів реалізації RAG, і найкращий варіант залежить від вашого конкретного завдання та характеру ваших даних.

Вхідний запит

Процес починається з вхідного запиту користувача або запиту. Це може бути питання або твердження, що шукає конкретну інформацію.

Пошук у зовнішніх джерелах

Натомість ніж генерувати відповідь безпосередньо на основі свого навчання, модель, за допомогою компонента пошuku, шукає через зовнішні джерела даних. Ці джерела можуть варіюватися від баз знань, баз даних та сховищ документів до інтернет-доступної інформації.

Розуміння пошuku

У своїй суті пошук дзеркально відображає пошук операцію. Це про витягування найбільш актуальної інформації у відповідь на вхідний запит користувача. Цей процес можна розділити на два етапи:

  1. Індексування: Це, мабуть, найскладніша частина всього шляху RAG. Процес індексування можна розділити на два етапи: завантаження та розділення. У інструментах, таких як LangChain, ці процеси називаються “завантажувачами” та “роздільниками“. Завантажувачі витягують вміст з різних джерел, будь то веб-сторінки чи PDF-документи. Як тільки вміст завантажено, роздільники потім розбивають цей вміст на маленькі шматочки, оптимізуючи їх для вкладення та пошуку.
  2. Запит: Це витягування найбільш актуальних фрагментів знань на основі пошукового запиту.

Хоча існують різні підходи до пошuku, від простого текстового збігання до використання пошукових систем, таких як Google, сучасні системи RAG покладаються на семантичний пошук. У серці семантичного пошуку лежить концепція вкладень.

Вкладення центральні для того, як великі мови моделі (LLM) розуміють мову. Коли люди намагаються артикулювати, як вони виводять значення зі слів, пояснення часто повертається до вродженого розуміння. Глибоко у наших когнітивних структурах ми розпізнаємо, що “дитина” та “маленький” є синонімами, або що “червоний” та “зелений” обидва позначають кольори.

Розширення запиту

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

Генерація завершення

З розширеним запитом у руках модель потім генерує завершення або відповідь. Ця відповідь не лише базується на навчанні моделі, але також інформується реальними даними, витягнутими з джерел.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Архітектура першої моделі RAG LLM

Дослідницька робота, опублікована Meta у 2020 році “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” пропонує глибокий аналіз цієї техніки. Модель Retrieval-Augmented Generation доповнює традиційний процес генерації зовнішнім механізмом пошуку або пошuku.

Це дозволяє моделі витягувати актуальну інформацію з великих корпусів даних, підвищуючи її здатність генерувати контекстно-актуальні відповіді.

  1. Параметрична пам’ять: Це ваша традиційна мова модель, як модель послідовності до послідовності. Її тренували на величезних даних і вона знає багато речей.
  2. Непараметрична пам’ять: Подумайте про це як пошукову систему. Це густий векторний індекс, наприклад, Вікіпедії, до якого можна звернутися за допомогою нейронного пошукового механізму.

Коли вони поєднуються, ці два компоненти створюють точну модель. Модель RAG спочатку витягує актуальну інформацію зі своєї непараметричної пам’яті, а потім використовує свої параметричні знання, щоб надати узгоджену відповідь.

Оригінальна модель RAG від Meta

Оригінальна модель RAG від Meta

1. Двоступеневий процес:

Модель RAG LLM працює у двоступеневому процесі:

  • Пошук: Спочатку модель шукає актуальні документи або пасажі з великого набору даних. Це здійснюється за допомогою густого механізму пошуку, який використовує вкладення для представлення як запиту, так і документів. Вкладення потім використовуються для обчислення коефіцієнтів схожості, і витягуються найкращі документи.
  • Генерація: З найкращими актуальними документами у руках вони потім подаються до генератора послідовності до послідовності разом з початковим запитом. Цей генератор потім створює кінцевий вивід, використовуючи контекст як з запиту, так і з витягнутих документів.

2. Густий пошук:

Традиційні системи пошуку часто покладаються на розріджені представлення, такі як TF-IDF. Однак моделі RAG LLM використовують густі представлення, де як запит, так і документи вкладені у безперервний векторний простір. Це дозволяє здійснювати більш нюансовані порівняння схожості, захоплюючи семантичні відносини за межами простого збігання ключових слів.

3. Генерація послідовності до послідовності:

Витягнуті документи діють як розширений контекст для генеративної моделі. Ця модель, часто заснована на архітектурах, таких як Трансформери, потім генерує кінцевий вивід, забезпечуючи його узгодженість та контекстну актуальність.

Пошук документів

Індексування документів та пошук

Для ефективного пошуку інформації, особливо з великих документів, дані часто зберігаються у векторній базі даних. Кожен шматок даних або документ індексується на основі векторного вкладення, яке захоплює семантичну сутність вмісту. Ефективне індексування забезпечує швидкий пошук актуальної інформації на основі вхідного запиту.

Векторні бази даних

Векторна база даних

Джерело: Redis

Векторні бази даних, іноді називаються векторним сховищем, є спеціалізованими базами даних, призначеними для зберігання та пошуку векторних даних. У сфері AI та комп’ютерної науки вектори суттєво є списками чисел, що символізують точки у багатовимірному просторі. На відміну від традиційних баз даних, які більше підходять для табулярних даних, векторні бази даних виділяються у роботі з даними, які природно підходять до формату векторів, таких як вкладення з AI-моделей.

Деякі відомі векторні бази даних включають Annoy, Faiss від Meta, Milvus та Pinecone. Ці бази даних є важливими у застосунках AI, допомагаючи у завданнях, що варіюються від систем рекомендацій до пошуку зображень. Платформи, такі як AWS, також пропонують послуги, спеціально розроблені для потреб векторних баз даних, такі як Amazon OpenSearch Service та Amazon RDS для PostgreSQL. Ці послуги оптимізовані для конкретних випадків використання, забезпечуючи ефективне індексування та запит.

Чанкування для актуальності

Оскільки багато документів можуть бути об’ємними, часто використовується техніка, відома як “чанкування”. Це включає в себе розбивку великих документів на менші, семантично узгоджені шматочки. Ці шматочки потім індексуються та витягуються за потреби, забезпечуючи те, що найбільш актуальні частини документа використовуються для розширення запиту.

Увага до контекстного вікна

Кожна LLM працює у контекстному вікні, яке суттєво є максимальною кількістю інформації, яку вона може розглянути одночасно. Якщо зовнішні джерела даних надають інформацію, яка перевищує це вікно, її потрібно розбити на менші шматочки, які поміщаються у контекстне вікно моделі.

Переваги використання Retrieval-Augmented Generation

  1. Покращена точність: Використовуючи зовнішні джерела даних, модель RAG LLM може генерувати відповіді, які не лише базуються на її навчанні, але також інформуються найбільш актуальною та актуальною інформацією, доступною у корпусі пошуку.
  2. Подолання прогалин у знаннях: RAG ефективно усуває вбудовані обмеження знань LLM, незалежно від того, чи це обмеження навчання моделі, чи відсутність галузевих даних у її навчальному корпусі.
  3. Універсальність: RAG може бути інтегрована з різними зовнішніми джерелами даних, від власних баз даних організації до публічно доступної інтернет-інформації. Це робить її адаптованою до широкого спектра застосунків та галузей.
  4. Зменшення галюцинацій: Одним із викликів LLM є потенційне генерація “галюцинацій” або створення фактично неправильної або сфабрикованої інформації. Надання реального контексту даних у реальному часі RAG може суттєво зменшити ймовірність таких виводів.
  5. Масштабованість: Однією з основних переваг моделі RAG LLM є її здатність до масштабування. Розділяючи процеси пошуку та генерації, модель може ефективно обробляти великі набори даних, роблячи її придатною для реальних застосунків, де дані є численними.

Виклики та розгляди

  • Обчислювальна надмірність: Двоступеневий процес може бути обчислювально інтенсивним, особливо при роботі з великими наборами даних.
  • Залежність від даних: Якість витягнутих документів безпосередньо впливає на якість генерації. Тому наявність повної та добре кураторської бази даних пошуку є важливою.

Висновок

Інтегруючи процеси пошуку та генерації, Retrieval-Augmented Generation пропонує потужне рішення для завдань, інтенсивних щодо знань, забезпечуючи виводи, які є інформованими та контекстно актуальними.

Справжня обіцянка RAG лежить у її потенційних реальних застосунках. Для галузей, таких як охорона здоров’я, де своєчасна та точна інформація може бути вирішальною, RAG пропонує можливість витягувати та генерувати інсайти з великої медичної літератури безперешкодно. У сфері фінансів, де ринки змінюються за хвилини, RAG може надавати дані, інформовані реальними даними, допомагаючи у прийнятті обґрунтованих рішень. Крім того, у академічних та дослідницьких колах вчені можуть використовувати RAG для сканування великих репозиторіїв інформації, роблячи літературні огляди та аналіз даних більш ефективними.

Я провів останні п'ять років, занурючись у захопливий світ машинного навчання та глибокого навчання. Моя пристрасть та експертиза привели мене до внеску у понад 50 різноманітних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя триваюча цікавість також привела мене до обробки природної мови, галузі, яку я бажаю дослідити далі.