Штучний Інтелект
Удосконалення пошукових доповнених мовних моделей: самообґрунтування та адаптивне розширення для розмовних систем

By
Ааюш Міттал Міттал
Великі мовні моделі часто мають проблеми з наданням точної та актуальної інформації, особливо в складних завданнях, заснованих на знаннях. Щоб подолати ці перешкоди, дослідники досліджують методи вдосконалення цих моделей шляхом їх інтеграції із зовнішніми джерелами даних.
У цій галузі з’явилися два нові підходи рамки самообґрунтування та адаптивна пошуково-доповнена генерація для розмовних системУ цій статті ми детально розглянемо ці інноваційні методи та дослідимо, як вони розширюють межі можливого за допомогою мовних моделей.
Перспективи та підводні камені пошуково-доповнених мовних моделей
Давайте розберемося з концепцією мовних моделей з доповненим пошуком (RALM). Основна ідея RALM полягає в поєднанні величезних знань та можливостей розуміння мови попередньо навчених мовних моделей з можливістю доступу та врахування зовнішньої, актуальної інформації під час логічного висновку.
Ось проста ілюстрація того, як може працювати базовий RALM:
- Користувач задає питання: «Як закінчилися Олімпійські ігри 2024?»
- Система отримує відповідні документи із зовнішньої бази знань.
- LLM обробляє запитання разом із отриманою інформацією.
- Модель генерує відповідь на основі внутрішніх знань і зовнішніх даних.
Цей підхід показав великі надії на підвищення точності та відповідності результатів LLM, особливо для завдань, які вимагають доступу до поточної інформації або предметних знань. Однак RALM не позбавлені проблем. Дві ключові проблеми, з якими стикаються дослідники:
- Надійність: Як ми можемо переконатися, що отримана інформація є актуальною та корисною?
- ПростежуваністьЯк ми можемо зробити процес міркування моделі більш прозорим та таким, що піддається перевірці?
Нещодавні дослідження запропонували інноваційні рішення цих проблем, які ми детально розглянемо.
Самоміркування: покращення RALM за допомогою явних траєкторій міркування
Це архітектура та процес, що лежать в основі LLM з доповненим пошуком, зосереджений на фреймворку під назвою самоміркування. Цей підхід використовує траєкторії для покращення здатності моделі міркувати над знайденими документами.
Коли ставиться запитання, відповідні документи витягуються та обробляються за допомогою ряду кроків міркування. Механізм самообґрунтування застосовує процеси аналізу траєкторії та аналізу траєкторії, щоб фільтрувати та синтезувати інформацію перед тим, як генерувати остаточну відповідь. Цей метод не тільки підвищує точність вихідних даних, але й гарантує, що обґрунтування відповідей є прозорим і простежуваним.
У наведених вище прикладах, таких як визначення дати виходу фільму «Злови мене, якщо зможеш» або ідентифікація художників, які розписували стелю Флорентійського собору, модель ефективно фільтрує отримані документи, щоб отримати точні, контекстуально підкріплені відповіді.
У цій таблиці представлено порівняльний аналіз різних варіантів LLM, у тому числі моделей LLaMA2 та інших моделей із доповненим пошуком у таких завданнях, як NaturalQuestions, PopQA, FEVER та ASQA. Результати розподіляються між базовими рівнями без пошуку та тими, що покращені за допомогою можливостей пошуку.
Це зображення демонструє сценарій, у якому LLM має завдання надавати пропозиції на основі запитів користувачів, демонструючи, як використання зовнішніх знань може впливати на якість та релевантність відповідей. На діаграмі показано два підходи: один, де модель використовує фрагмент знань, і інший, де їх не використовує. Порівняння підкреслює, як включення конкретної інформації може адаптувати відповіді до потреб користувача, забезпечуючи глибину та точність, яких інакше могло б бракувати в суто генеративній моделі.
Одним новаторським підходом до покращення RALM є впровадження фреймворків самоміркування. Основна ідея цього методу полягає у використанні власних можливостей мовної моделі для генерації явних траєкторій міркування, які потім можна використовувати для підвищення якості та надійності її результатів.
Давайте розглянемо ключові компоненти фреймворку самоаргументації:
- Процес з урахуванням релевантності (РЕП-МУЗИКА)
- Вибірковий процес з урахуванням доказів (EAP)
- Процес аналізу траєкторії (TAP)
Процес з урахуванням релевантності (RAP)
RAP розроблено для вирішення однієї з фундаментальних проблем RALM: визначення того, чи дійсно отримані документи відповідають заданому питанню. Ось як це працює:
- Система отримує набір потенційно релевантних документів за допомогою моделі пошуку (наприклад, DPR або Contriever).
- Потім мовна модель отримує вказівку оцінити відповідність цих документів питанню.
- Модель явно генерує причини, які пояснюють, чому документи вважаються релевантними чи нерелевантними.
Наприклад, враховуючи запитання «Коли була побудована Ейфелева вежа?», RAP може видати такі результати:
Relevant: True
Relevant Reason: The retrieved documents contain specific information about the construction dates of the Eiffel Tower, including its commencement in 1887 and completion in 1889.
Цей процес допомагає відфільтрувати нерелевантну інформацію на ранніх етапах розробки, покращуючи загальну якість відповідей моделі.
Вибірковий процес з урахуванням доказів (EAP)
План дій EAP (Emergency Approved Approved Approved Approved) виводить оцінку релевантності на новий рівень, доручаючи моделі ідентифікувати та цитувати конкретні докази з відповідних документів. Цей процес імітує те, як люди підходять до дослідницького завдання, вибираючи ключові речення та пояснюючи їхню релевантність. Ось як може виглядати результат EAP:
Cite content: "Construction of the Eiffel Tower began on January 28, 1887, and was completed on March 31, 1889."
Reason to cite: This sentence provides the exact start and end dates for the construction of the Eiffel Tower, directly answering the question about when it was built.
Завдяки чіткому посиланню на джерела та поясненню релевантності кожного доказу, EAP покращує простежуваність та інтерпретацію результатів моделі.
Процес аналізу траєкторії (TAP)
TAP є останнім етапом структури самообґрунтування, де модель консолідує всі траєкторії міркування, створені на попередніх етапах. Він аналізує ці траєкторії та створює стислий підсумок разом із остаточною відповіддю. Результат TAP може виглядати приблизно так:
Analysis: The Eiffel Tower was built between 1887 and 1889. Construction began on January 28, 1887, and was completed on March 31, 1889. This information is supported by multiple reliable sources that provide consistent dates for the tower's construction period.
Відповідь: Ейфелева вежа була побудована з 1887 по 1889 рік.
Цей процес дозволяє моделі надати як детальне пояснення своїх міркувань, так і стислу відповідь, що відповідає потребам різних користувачів.
Впровадження самоміркування на практиці
Щоб реалізувати цю систему самообґрунтування, дослідники досліджували різні підходи, зокрема:
- Підказування попередньо підготовлених мовних моделей
- Тонке налаштування мовних моделей за допомогою ефективних параметрів, таких як QLoRA
- Розробка спеціалізованих нейронних архітектур, таких як моделі уваги з кількома головами
Кожен із цих підходів має свої компроміси щодо продуктивності, ефективності та простоти впровадження. Наприклад, підхід підказки є найпростішим у застосуванні, але він не завжди дає послідовні результати. Тонка настройка за допомогою QLoRA пропонує хороший баланс продуктивності та ефективності, тоді як спеціалізовані архітектури можуть забезпечити найкращу продуктивність, але вимагають більше обчислювальних ресурсів для навчання.
Ось спрощений приклад того, як можна реалізувати RAP, використовуючи підхід із підказками та мовною моделлю, такою як GPT-3:
import openai def relevance_aware_process(question, documents): prompt = f""" Question: {question} Retrieved documents: {documents} Task: Determine if the retrieved documents are relevant to answering the question. Output format: Relevant: [True/False] Relevant Reason: [Explanation] Your analysis: """ response = openai.Completion.create( engine="text-davinci-002", prompt=prompt, max_tokens=150 ) return response.choices[0].text.strip() # Example usage question = "When was the Eiffel Tower built?" documents = "The Eiffel Tower is a wrought-iron lattice tower on the Champ de Mars in Paris, France. It is named after the engineer Gustave Eiffel, whose company designed and built the tower. Constructed from 1887 to 1889 as the entrance arch to the 1889 World's Fair, it was initially criticized by some of France's leading artists and intellectuals for its design, but it has become a global cultural icon of France." result = relevance_aware_process(question, documents) print(result)
Цей приклад демонструє, як RAP можна реалізувати за допомогою простого підходу підказок. На практиці для забезпечення узгодженості та обробки граничних випадків використовувалися б більш складні методи.
Адаптивна пошуково-доповнена генерація для розмовних систем
У той час як структура самообґрунтування зосереджена на покращенні якості та інтерпретації індивідуальних відповідей, інший напрямок дослідження вивчає, як зробити генерацію, доповнену пошуком, більш адаптивною в контексті розмовних систем. Цей підхід, відомий як адаптивне пошуково-доповнене генерування, має на меті визначити, коли зовнішні знання слід використовувати в розмові та як їх ефективно включити.
Ключова ідея цього підходу полягає в тому, що не кожен поворот у розмові вимагає зовнішнього доповнення знань. У деяких випадках надмірна опора на отриману інформацію може призвести до неприродних або надмірно багатослівних відповідей. Отже, завдання полягає в розробці системи, яка може динамічно вирішувати, коли використовувати зовнішні знання, а коли покладатися на властиві моделі можливості.
Компоненти адаптивної пошуково-доповненої генерації
Щоб вирішити цю проблему, дослідники запропонували структуру під назвою RAGate, яка складається з кількох ключових компонентів:
- Механізм доступу до бінарних знань
- Процес з урахуванням релевантності
- Вибірковий процес з урахуванням доказів
- Процес аналізу траєкторії
Механізм бінарних воріт знань
Ядром системи RAGate є двійковий шлюз знань, який вирішує, чи використовувати зовнішні знання для певного ходу розмови. Для прийняття рішення цей шлюз враховує контекст розмови та, за бажанням, отримані фрагменти знань.
Ось спрощена ілюстрація того, як може працювати бінарний портал знань:
def knowledge_gate(context, retrieved_knowledge=None): # Analyze the context and retrieved knowledge # Return True if external knowledge should be used, False otherwise pass def generate_response(context, knowledge=None): if knowledge_gate(context, knowledge): # Use retrieval-augmented generation return generate_with_knowledge(context, knowledge) else: # Use standard language model generation 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 class RAGate: def __init__(self, model_name): self.tokenizer = AutoTokenizer.from_pretrained(model_name) self.model = AutoModelForSequenceClassification.from_pretrained(model_name) 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 # Assuming binary classification (0: no knowledge, 1: use knowledge) class ConversationSystem: def __init__(self, ragate, lm, retriever): self.ragate = ragate self.lm = lm self.retriever = retriever 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) # Example usage ragate = RAGate("path/to/fine-tuned/model") lm = LanguageModel() # Your preferred language model retriever = KnowledgeRetriever() # Your knowledge retrieval system conversation_system = ConversationSystem(ragate, lm, retriever) context = "User: What's the capital of France?\nSystem: The capital of France is Paris.\nUser: Tell me more about its famous landmarks." response = conversation_system.generate_response(context) print(response)
Цей приклад демонструє, як RAGate-подібна система може бути реалізована на практиці. The RAGate
клас використовує точно налаштовану модель, щоб вирішити, чи використовувати зовнішні знання, тоді як ConversationSystem
клас організовує взаємодію між воротами, мовною моделлю та ретривером.
Виклики та майбутні напрямки
Незважаючи на те, що системи самообґрунтування та адаптивна генерація з доповненим пошуком багатообіцяючі, все ще є кілька проблем, над вирішенням яких працюють дослідники:
- Обчислювальна ефективність: обидва підходи можуть бути інтенсивними з точки зору обчислень, особливо коли мова йде про великі обсяги отриманої інформації або генерування тривалих траєкторій міркувань. Оптимізація цих процесів для програм реального часу залишається активною сферою досліджень.
- Надійність: Вкрай важливо забезпечити стабільну роботу цих систем у широкому діапазоні тем і типів питань. Це включає в себе обробку граничних випадків і суперечливих вхідних даних, які можуть заплутати судження про релевантність або механізми стробування.
- Багатомовна та міжмовна підтримка: Розширення цих підходів для ефективної роботи кількома мовами та обробки міжмовного пошуку інформації та міркування є важливим напрямком майбутньої роботи.
- Інтеграція з іншими технологіями ШІ: Вивчення того, як ці підходи можна поєднувати з іншими технологіями штучного інтелекту, такими як мультимодальні моделі або навчання з підкріпленням, може призвести до ще більш потужних і гнучких систем.
Висновок
Розробка фреймворків для самообґрунтування та адаптивної пошуково-доповненої генерації є значним кроком вперед у сфері обробки природної мови. Дозволяючи мовним моделям чітко міркувати про інформацію, яку вони використовують, і динамічно адаптувати свої стратегії розширення знань, ці підходи обіцяють зробити системи штучного інтелекту більш надійними, доступними для інтерпретації та з урахуванням контексту.
Оскільки дослідження в цій галузі продовжують розвиватися, ми можемо очікувати, що ці методи будуть удосконалені та інтегровані в широкий спектр програм, від систем відповідей на запитання та віртуальних помічників до навчальних інструментів і науково-допоміжних засобів. Здатність поєднувати величезні знання, закодовані у великих мовних моделях, із динамічно отриманою актуальною інформацією має потенціал кардинально змінити спосіб взаємодії з системами ШІ та доступу до інформації.
Останні п’ять років я провів, занурюючись у захоплюючий світ машинного та глибокого навчання. Моя пристрасть і досвід допомогли мені внести свій внесок у понад 50 різноманітних проектів розробки програмного забезпечення, зосередивши особливу увагу на ШІ/ML. Моя постійна цікавість також привела мене до обробки природної мови, галузі, яку я хочу досліджувати далі.
Вам може сподобатися
-
Дилема контролю ШІ: ризики та рішення
-
Генерація з доповненим пошуком: рішення малого та середнього бізнесу для ефективного та ефективного використання ШІ
-
Еволюція після RAG: шлях ШІ від пошуку інформації до міркувань у реальному часі
-
Поява саморефлексії в штучному інтелекті: як великі мовні моделі розвиваються за допомогою особистого розуміння
-
Збереження актуальності LLM: порівняння RAG і CAG для ефективності та точності ШІ
-
Нове дослідження виявило шістнадцять основних проблем із системами RAG, у тому числі непорозуміння