Моделі та платформи ШІ
Покращення моделей мов з підтримкою пошуку: Самообґрунтування та адаптивне доповнення для систем діалогу

By
Aayush Mittal Міттал
Великі мовні моделі часто мають труднощі з наданням точної та актуальної інформації, особливо при виконанні складних завдань, пов’язаних з знаннями. Для подолання цих перешкод дослідники вивчають методи покращення цих моделей шляхом інтеграції їх з зовнішніми джерелами даних.
Дві нові підходи, що з’явилися в цій галузі, – це рамки самообґрунтування та адаптивне доповнення генерації для систем діалогу. У цій статті ми глибоко вивчимо ці інноваційні техніки та дослідимо, як вони розширюють межі того, що можливо з мовними моделями.
Перспективи та проблеми моделей мов з підтримкою пошуку
Давайте зрозуміємо концепцію моделей мов з підтримкою пошуку (RALM). Основна ідея RALM полягає в тому, щоб поєднати величезні знання та мовне розуміння попередньо натренованих мовних моделей з можливістю доступу та включення зовнішньої, актуальної інформації під час інференсу.
Ось проста ілюстрація того, як може працювати базова RALM:
- Користувач задає питання: “Який був результат Олімпійських ігор 2024 року?”
- Система витягує відповідні документи з зовнішньої бази знань.
- Модель обробляє питання разом з витягнутою інформацією.
- Модель генерує відповідь на основі як внутрішніх знань, так і зовнішньої інформації.
Цей підхід показав великі перспективи у покращенні точності та актуальності виходів LLM, особливо для завдань, які потребують доступу до актуальної інформації або знань у певній галузі. Однак RALM не позбавлені проблем. Дві ключові проблеми, з якими дослідники зараз борються, – це:
- Надійність: Як можна гарантувати, що витягнута інформація є актуальною та корисною?
- Прозорість: Як можна зробити процес міркування моделі більш прозорим та верифікованим?
Останні дослідження запропонували інноваційні рішення цих проблем, які ми глибоко вивчимо.
Самообґрунтування: Покращення RALM за допомогою явних траєкторій міркування
Це архітектура та процес моделей мов з підтримкою пошуку, зосереджені на рамці самообґрунтування. Цей підхід використовує траєкторії для покращення здатності моделі міркувати над витягнутими документами.
Коли задане питання, витягуються відповідні документи та обробляються через серію кроків міркування. Механізм самообґрунтування застосовує процеси, що залежать від доказів та аналізу траєкторій, для фільтрації та синтезу інформації перед генерацією остаточної відповіді. Цей метод не тільки покращує точність виходу, але також забезпечує прозорість процесу міркування.
У наведених вище прикладах, таких як визначення дати виходу фільму “Піймай мене, якщо зможеш” або ідентифікація художників, які намалювали стелю Флорентійської собору, модель ефективно фільтрує витягнуті документи для отримання точних та контекстно підтриманих відповідей.
Ця таблиця представляє порівняльний аналіз різних варіантів LLM, включаючи моделі LLaMA2 та інші моделі з підтримкою пошуку для завдань, таких як NaturalQuestions, PopQA, FEVER та ASQA. Результати розділені на базові лінії без пошуку та ті, які покращені можливостями пошуку.
Цей зображення представляє сценарій, в якому LLM доручено надавати пропозиції на основі запитів користувача, демонструючи, як використання зовнішніх знань може вплинути на якість та актуальність відповідей. Діаграма підкреслює два підходи: один, коли модель використовує фрагмент знань, і інший, коли вона цього не робить. Порівняння показує, як включення конкретної інформації може адаптувати відповіді до потреб користувача, забезпечуючи глибину та точність, яких може не вистачати в чисто генеративній моделі.
Одним з проривних підходів до покращення RALM є введення рамок самообґрунтування. Основна ідея цього методу полягає в тому, щоб використовувати власні можливості мовної моделі для генерації явних траєкторій міркування, які потім можуть бути використані для покращення якості та надійності виходів.
Давайте розберемося у ключових компонентах рамки самообґрунтування:
- Процес, залежний від актуальності (RAP)
- Процес, залежний від доказів та вибірковий (EAP)
- Процес аналізу траєкторій (TAP)
Процес, залежний від актуальності (RAP)
RAP призначений для вирішення однієї з фундаментальних проблем RALM: визначення того, чи є витягнуті документи дійсно актуальними для заданого питання. Ось як це працює:
- Система витягує набір потенційно актуальних документів за допомогою моделі пошуку (наприклад, DPR або Contriever).
- Мовна модель потім інструктується оцінити актуальність цих документів для питання.
- Модель явно генерує причини, що пояснюють, чому документи вважаються актуальними чи неактуальними.
Наприклад, для питання “Коли була побудована Ейфелева вежа?”, RAP може видати такий результат:
Актуальний: Правда
Причина актуальності: Витягнуті документи містять конкретну інформацію про дати будівництва Ейфелевої вежі, включаючи її початок у 1887 році та закінчення у 1889 році.Цей процес допомагає фільтрувати неактуальну інформацію на ранній стадії, покращуючи загальну якість відповідей моделі.
Процес, залежний від доказів та вибірковий (EAP)
EAP розширює оцінку актуальності, інструктуючи модель ідентифікувати та цитувати конкретні частини доказів з актуальних документів. Цей процес імітує те, як люди підходять до завдань дослідження, вибираючи ключові речення та пояснюючи їх актуальність. Ось, як може виглядати результат EAP:
Цитата вмісту: "Будівництво Ейфелевої вежі розпочалося 28 січня 1887 року та було завершено 31 березня 1889 року."
Причина цитування: Це речення надає точні дати початку та закінчення будівництва Ейфелевої вежі, безпосередньо відповідаючи на питання про дату її будівництва.Цим шляхом явного цитування джерел та пояснення актуальності кожного доказу EAP підвищує прозорість та інтерпретацію виходів моделі.
Процес аналізу траєкторій (TAP)
TAP є остаточною стадією рамки самообґрунтування, на якій модель консолідує всі траєкторії міркування, згенеровані на попередніх етапах. Він аналізує ці траєкторії та видає лаконічний підсумок разом з остаточною відповіддю. Результат TAP може виглядати так:
Аналіз: Ейфелева вежа була побудована між 1887 та 1889 роками. Будівництво розпочалося 28 січня 1887 року та було завершено 31 березня 1889 року. Ця інформація підтримується кількома надійними джерелами, які надають послідовні дати періоду будівництва вежі.
Відповідь: Ейфелева вежа була побудована з 1887 по 1889 рік.
Цей процес дозволяє моделі надавати як детальне пояснення свого міркування, так і лаконічну відповідь, задовольняючи різні потреби користувачів.
Реалізація самообґрунтування на практиці
Для реалізації цієї рамки самообґрунтування дослідники дослідили різні підходи, включаючи:
- Промінування попередньо натренованих мовних моделей
- Файн-тюнинг мовних моделей за допомогою параметро-ефективних технік, таких як QLoRA
- Розробка спеціалізованих нейронних архітектур, таких як моделі з багатокомірним увагою
Кожен із цих підходів має свої сильні та слабкі сторони. Наприклад, підхід промінування є відносно простим у реалізації, але може не завжди давати послідовні результати. Файн-тюнинг пропонує добру рівновагу між продуктивністю та ефективністю, тоді як спеціалізовані архітектури можуть забезпечувати найкращу продуктивність, але вимагають більше обчислювальних ресурсів для навчання.
Ось спрощений приклад реалізації рамки самообґрунтування за допомогою підходу промінування з мовною моделлю типу GPT-3:
import openai
<p>def relevance_aware_process(question, documents):
prompt = f"""
Питання: {question}
Витягнуті документи:
{documents}
Завдання: Визначити, чи є витягнуті документи актуальними для відповіді на питання.
Формат виходу:
Актуальний: [Правда/Неправда]
Причина актуальності: [Пояснення]
Ваш аналіз:
"""
response = openai.Completion.create(
engine="text-davinci-002",
prompt=prompt,
max_tokens=150
)
return response.choices[0].text.strip()
<p># Приклад використання
question = "Коли була побудована Ейфелева вежа?"
documents = "Ейфелева вежа - це залізна латунна вежа на полі Марс у Парижі, Франція. Вона названа на честь інженера Густава Ейфеля, чия компанія розробила та побудувала вежу. Побудована з 1887 по 1889 рік як входова арка до Всесвітньої виставки 1889 року, вона спочатку була розкритикована деякими провідними художниками та інтелектуалами Франції за свій дизайн, але стала глобальним культурним символом Франції."
result = relevance_aware_process(question, documents)
print(result)
Адаптивне доповнення генерації для систем діалогу
Хоча рамка самообґрунтування зосереджується на покращенні якості та інтерпретації окремих відповідей, інший напрямок досліджень вивчає, як зробити генерацію з підтримкою пошуку більш адаптивною в контексті систем діалогу. Цей підхід, відомий як адаптивне доповнення генерації, спрямований на визначення того, коли зовнішні знання повинні бути використані в діалозі та як їх ефективно включити.
Ключова ідея цього підходу полягає в тому, що не кожен хід діалогу вимагає доповнення зовнішніми знаннями. У деяких випадках надмірна залежність від витягнутої інформації може привести до не природних або надмірно розширених відповідей. Викликом є розробка системи, яка може динамічно вирішувати, коли використовувати зовнішні знання та коли покладатися на власні можливості моделі.
Компоненти адаптивного доповнення генерації
Для вирішення цієї проблеми дослідники запропонували рамку під назвою RAGate, яка складається з декількох ключових компонентів:
- Бінарний механізм брами знань
- Процес, залежний від актуальності
- Процес, залежний від доказів та вибірковий
- Процес аналізу траєкторій
Бінарний механізм брами знань
Ядром системи RAGate є бінарний механізм брами знань, який вирішує, чи використовувати зовнішні знання для даного ходу діалогу. Ця брама враховує контекст діалогу та, опціонально, витягнуті знання для прийняття рішення.
Ось спрощене ілюстрація того, як може працювати бінарний механізм брами знань:
def knowledge_gate(context, retrieved_knowledge=None): # Аналізуйте контекст та витягнуті знання # Поверніть True, якщо зовнішні знання повинні бути використані, інакше False pass <p>def generate_response(context, knowledge=None): if knowledge_gate(context, knowledge): # Використовуйте генерацію з підтримкою пошуку return generate_with_knowledge(context, knowledge) else: # Використовуйте стандартну генерацію мовної моделі return generate_without_knowledge(context)
Цей механізм брами дозволяє системі бути більш гнучкою та контекстно-чутливою при використанні зовнішніх знань.
Реалізація RAGate
Це зображення ілюструє рамку RAGate, розширений системою для включення зовнішніх знань у генерацію LLM для покращення генерації відповідей. Ця архітектура показує, як базову LLM можна доповнити контекстом або знаннями, як через прямий вхід, так і через інтеграцію зовнішніх баз даних під час процесу генерації. Цей подвійний підхід – використання як внутрішніх можливостей моделі, так і зовнішніх даних – дозволяє LLM надавати більш точні та контекстно-актуальні відповіді. Цей гібридний метод мостить розрив між суровою обчислювальною потужністю та галузевими знаннями.
Це демонструє метрики продуктивності різних варіантів моделей під рамкою RAGate, яка зосереджена на інтеграції пошуку з параметро-ефективним файн-тюнінгом (PEFT). Результати підкреслюють перевагу моделей, інтегрованих з контекстом, особливо тих, які використовують вкладення ner-know та ner-source.
Моделі RAGate-PEFT та RAGate-MHA демонструють суттєве покращення точності, повноти та показника F1, підкреслюючи переваги включення як контексту, так і знань. Ці стратегії файн-тюнінгу дозволяють моделям працювати більш ефективно на завданнях, інтенсивних для знань, забезпечуючи більш міцне та масштабоване рішення для реальних застосунків.
Для реалізації RAGate дослідники дослідили кілька підходів, включаючи:
- Використання великих мовних моделей з ретельно створеними промінуваннями
- Файн-тюнінг мовних моделей за допомогою параметро-ефективних технік
- Розробка спеціалізованих нейронних архітектур, таких як моделі з багатокомірним увагою
Кожен із цих підходів має свої сильні та слабкі сторони. Наприклад, підхід промінування відносно простий у реалізації, але може не завжди давати послідовні результати. Файн-тюнінг пропонує добру рівновагу між продуктивністю та ефективністю, тоді як спеціалізовані архітектури можуть забезпечувати найкращу продуктивність, але вимагають більше обчислювальних ресурсів для навчання.
Ось спрощений приклад реалізації системи типу RAGate за допомогою файн-тюнингованої мовної моделі:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
<p>class RAGate:
def __init__(self, model_name):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForSequenceClassification.from_pretrained(model_name)</p>
<p>def should_use_knowledge(self, context, knowledge=None):
inputs = self.tokenizer(context, knowledge or "", return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
outputs = self.model(**inputs)
probabilities = torch.softmax(outputs.logits, dim=1)
return probabilities[0][1].item() > 0.5 # Припускаючи бінарний класифікатор (0: без знань, 1: використовувати знання)</p>
<p>class ConversationSystem:
def __init__(self, ragate, lm, retriever):
self.ragate = ragate
self.lm = lm
self.retriever = retriever</p>
<p>def generate_response(self, context):
knowledge = self.retriever.retrieve(context)
if self.ragate.should_use_knowledge(context, knowledge):
return self.lm.generate_with_knowledge(context, knowledge)
else:
return self.lm.generate_without_knowledge(context)</p>
<p># Приклад використання
ragate = RAGate("шлях/до/файн-тюнингованої/моделі")
lm = LanguageModel() # Ваша вибрана мова модель
retriever = KnowledgeRetriever() # Система пошуку знань</p>
<p>conversation_system = ConversationSystem(ragate, lm, retriever)</p>
<p>context = "Користувач: Що таке столиця Франції?\nСистема: Столицею Франції є Париж.\nКористувач: Розкажіть мені більше про її знамениті пам'ятки."
response = conversation_system.generate_response(context)
print(response)</p>
Цей приклад демонструє, як система типу RAGate може бути реалізована на практиці. Клас RAGate використовує файн-тюнинговану модель для вирішення, чи використовувати зовнішні знання, тоді як клас ConversationSystem оркеструє взаємодію між брамою, мовною моделлю та системою пошуку.
Виклики та майбутні напрямки
Хоча рамки самообґрунтування та адаптивне доповнення генерації показують великі перспективи, все ще існують кілька викликів, з якими дослідники зараз борються:
- Обчислювальна ефективність: Обидва підходи можуть бути обчислювально інтенсивними, особливо при роботі з великими обсягами витягнутої інформації або генерації довгих траєкторій міркування. Оптимізація цих процесів для застосунків в режимі реального часу залишається активною областю досліджень.
- Надійність: Забезпечення того, щоб ці системи працювали послідовно в широкому діапазоні тем та типів питань, є важливим. Це включає в себе обробку країв випадків та адверсарних входів, які можуть заплутати механізм оцінки актуальності або брами.
- Багатомовна та міжмовна підтримка: Розширення цих підходів для ефективної роботи з кількома мовами та обробки міжмовного пошуку інформації та міркування є важливим напрямком майбутньої роботи.
- Інтеграція з іншими технологіями штучного інтелекту: Дослідження того, як ці підходи можуть бути поєднані з іншими технологіями штучного інтелекту, такими як моделі з кількома модальностями або навчання з підкріпленням, може привести до ще більш потужних та гнучких систем.
Висновок
Розробка рамок самообґрунтування та адаптивного доповнення генерації представляє суттєвий крок вперед у галузі обробки природної мови. Надавши мовним моделям можливість явно міркувати про інформацію, яку вони використовують, та адаптувати стратегії доповнення знань динамічно, ці підходи обіцяють зробити системи штучного інтелекту більш надійними, інтерпретованими та контекстно-чутливими.
По мірі подальшого розвитку досліджень у цій галузі ми можемо очікувати побачити ці техніки урізноманітнених та інтегрованих у широкий спектр застосунків, від систем відповідей на питання та віртуальних помічників до освітніх інструментів та дослідницьких допоміжних засобів. Спроможність поєднати величезні знання, закодовані у великих мовних моделях, з динамічно витягнутими, актуальними інформаціями, має потенціал революціонізувати те, як ми взаємодіємо з системами штучного інтелекту та отримуємо доступ до інформації.
Я провів останні п'ять років, занурючись у захопливий світ машинного навчання та глибокого навчання. Моя пристрасть та експертиза привели мене до внеску у понад 50 різних проектів програмної інженерії, з особливим акцентом на AI/ML. Моя тривала цікавість також привела мене до природної обробки мови, галузі, яку я бажаю дослідити далі.
Дізнайтеся більше


Що таке генерація з підкріпленням пошуку (RAG)? Як ШІ відповідає, використовуючи зовнішні знання


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


Чому ваш біомедичний RAG приховує від вас суперечності


Насправді причина, через яку ваша система RAG продовжує бачити галюцинації


2026 Прогноз – Відкритий Джерельний Код Буде Катапультувати Штучний Інтелект У Своє Наступне Золоте Вікно


Ділема контролю над штучним інтелектом: ризики та рішення




