Упс! Не вдала спроба:(
Будь ласка, спробуйте ще раз.

Як довчати GPT-асистентів за допомогою OpenAI: частина 1

Олександр Книга
Олександр Книга Software Architect в WebLab Technology
30 серпня 2023 14 хвилин читання

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

ChatSpot та Khan Academy: case study впровадження GPT

Сучасні компанії використовують GPT у різний спосіб, деякі з яких покладаються на відкрите спілкування між GPT і користувачем. Ось кілька прикладів:

  • 1
    ChatSpot. Запит природною мовою (natural language prompt) надходить до API ChatSpot, перетворюється на операції для API HubSpot CRM, API Google Docs тощо, а потім за допомогою генеративної текстової моделі повідомляє, коли дію було виконано (чи не виконано). На основі GPT-4.
  • 2
    Khanmigo. Навчальний бот на основі ШІ, розроблений Khan Academy. Запити користувачів перетворюються на запити з впровадженим контекстом. Система покладається на здатність GPT обробляти у вісім разів більше впровадженого контексту, ніж у попередній версії. На основі GPT-4.

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

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

Галюцинації ШІ

Галюцинації ШІ — це важлива проблема, яку доводиться вирішувати спеціалістам під час роботи з великими мовними моделями, такими як GPT-4. Галюцинації генерують неправдиву або оманливу інформацію. Це може спричиняти надзвичайно серйозні наслідки в програмах, де точність фактів є критично важливою. У цьому розділі ми детальніше вивчимо технічні аспекти галюцинацій ШІ, а також обговоримо, як мінімізувати їх вплив.

Для прикладу розглянемо цей егоцентричний тест на фактичну точність, проведений Ноблом Акерсоном (Noble Ackerson). Серед фактів, наданих ШІ, є багато неправдивої інформації:

Приклад надання неправдивої інформації від ChatGPT Приклад надання неправдивої інформації від ChatGPT

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

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

Імовірнісна природа

Одну з причин такої недостатньої надійності можна вбачити в імовірнісній природі GPT. Для контексту давайте розглянемо ймовірнісні структури даних, такі як фільтри Блума.

Фільтр Блума — це імовірнісна структура даних, яка використовується для перевірки того, чи входить елемент до певного набору. Вона складається з масиву бітів і кількох хеш-функцій, кожна з яких відображає елемент на один або кілька індексів масиву. Коли елемент вставляється у фільтр, він хешується за допомогою хеш-функцій, а для відповідних бітів масиву встановлюється значення true.

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

Однак, якщо будь-який з бітів не має значення true, елемент точно не входить до фільтра. Хибні спрацьовування вбудовані в імовірнісні структури даних за замовчуванням.

Фільтр Блума Фільтр Блума

Як і фільтр Блума, модель GPT є ймовірнісною. Але замість того, щоб перевіряти приналежність до набору, вона передбачає текст на основі введених запитів.

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

Подібно до фільтрів Блума, GPT також може «галюцинувати» і давати результати, які виглядають правдоподібними, але фактично неправильні. Однак цю ймовірність генерування ненадійних результатів можна зменшити, доналаштовуючи модель та надаючи їй високоякісні навчальні дані.

GPT-4 і ризики

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

GPT-4 повільніша за попередні моделі. Проте GPT-4 набагато безпечніша завдяки різноманітним заходам, застосованим під час навчання, включаючи залучення експертів, покращення безпеки моделі, а також додатковий моніторинг і контроль.

Ці фактори значно підвищили безпечність GPT-4 порівняно з GPT-3.5: тенденція моделі відповідати на запити щодо забороненого вмісту зменшилася на 82%, а тенденція моделі відповідати на запитання щодо чутливого контенту згідно з внутрішніми політиками зросла на 29% [посилання].

Некоректна поведінка у відповідь на запити забороненого чи чутливого вмісту Некоректна поведінка у відповідь на запити забороненого чи чутливого вмісту

Усунення галюцинацій

Навіть із наявними ризиками повністю ігнорувати GPT складно. Для людей і API модель GPT стала новим комунікаційним інструментом, який зменшує потребу в користувацькому інтерфейсі. Наша робота як інженерів полягає в тому, щоб вирішувати проблеми, які виникають у результаті його використання, за допомогою наявних у нас ресурсів. І є кілька способів це зробити.

Удосконалення запитів

Кращі запити можуть підвищити ефективність моделі. Вони призводять до задовільних результатів приблизно в 50–65% випадків, але навряд чи більше.

Згідно з дослідженням Large Language Models are Zero-Shot Reasoners (в якому описуються лише можливості моделей завершення тексту (text completion models), а не моделей чату чи інструкцій), покращення запитів значно покращує ефективність GPT у завданнях на міркування.

Дослідження продемонструвало, що додавання простої фрази на кшталт Let's think step by step («Давай подумаємо покроково») перед кожною відповіддю підвищує здатність GPT вирішувати навіть ті задачі, з якими вона стикається вперше (zero-shot learning). Отже, інженерам не потрібно створювати такі завдання вручну на етапі навчання.

Навчання на кількох прикладах (few-shot learning) – ще одна потужна техніка оперативного проектування, яка може значно покращити продуктивність мовних моделей (як-от GPT-4) у нових завданнях, навіть із обмеженими навчальними даними. У простих випадках це хороша альтернатива fine-tuning. У цьому підході користувач використовує структуровані приклади, щоб показати, якого результату очікує, а потім залишає моделі вільний простір для заповнення.

У цій статті розповідається про те, які задачі ChatGPT ще не вміє вирішувати.

Інʼєкція контексту

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

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

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

Цей метод використовується, наприклад, у GitHub Copilot і GitHub Copilot X. Аналізуючи контекст написаного коду разом із будь-якими коментарями чи документацією, ці асистенти можуть зрозуміти заплановану функціональність і обмеження коду.

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

--- Без контексту ---

Запит: У чому причина краху банку Silicon Valley Bank і коли це сталося?

Відповідь: Натепер банк Silicon Valley Bank не зазнавав значних крахів. Silicon Valley Bank, заснований у 1983 році, є успішною та високоефективною фінансовою установою, яка спеціалізується на наданні банківських послуг технологічним і біологічним компаніям, а також компаніям венчурного капіталу. Банк стабільно зростав і продовжує ефективно працювати, обслуговуючи своїх клієнтів і залишаючись важливим у галузі.

--- З контекстом ---

Запит: Контекст:

«»«

Минулого тижня стало відомо про банкрутство банку Silicon Valley Bank (SVB).

Це другий за розміром банк у США, закритий з 2000 року.

Хоча це сумно, гірко і жалюгідно, я хочу показати вам дещо цікаве — справжню причину банкрутства банку.

«»«

Інструкція: Використовуючи наданий контекст, напиши розгорнуту відповідь на наданий запит.

Запит: У чому причина краху банку Silicon Valley Bank і коли це сталося?

Відповідь: Банк Silicon Valley Bank (SVB) збанкрутував минулого тижня, що робить його другим за величиною банком у США, закритим з 2000 року. Точні причини банкрутства банку не були надані в контексті, але припускається, що існує певна причина його краху. Щоб повністю зрозуміти ситуацію, було б корисно отримати більше інформації про діяльність банку, фінансову стабільність та будь-які останні події, які могли сприяти банкрутству.

Fine-tuning

Fine-tuning – ще один метод, який може значно підвищити точність і надійність GPT. Це процес надання додаткових навчальних даних, щоб модель адаптувалася до конкретного завдання чи предметної області та покращувала точність і релевантність згенерованого тексту. Приблизно те саме вимагається від будь-якої іншої нейронної мережі глибокого навчання.

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

Навчання з підкріпленням на основі зворотного зв’язку від людини (RLHF)

Метод RLHF — це одна з причин, чому ChatGPT працює так добре, особливо з чутливими запитами. Подивіться, як Леандро фон Верра просить ChatGPT пояснити принцип RLHF (і це справді чудове пояснення)!

Навчання з підкріпленням на основі зворотного зв’язку від людини (RLHF) Навчання з підкріпленням на основі зворотного зв’язку від людини (RLHF)

Як згадувалося вище, хитрість полягає в тому, щоб додати в запит «like I am five» або подібну фразу. Це чудовий спосіб спростити пояснення.

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

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

Знаючи предметну область застосування, ми можемо навчити модель реагувати так, як нам потрібно. Ми можемо навчити її відповідати «Я не знаю» або ігнорувати певні теми. OpenAI використовує RLGH у ранніх версіях своїх моделей, щоб підготувати їх до випуску. 

Розроблення моделі

Давайте розглянемо приклад, побудувавши процес fine-tuning. Ми використовуватимемо визначений набір даних, таким чином навчаючи модель відповідати на запити, що стосуються конкретної предметної області. Розгляньте цю схему:

Процес fine-tuningпроцес fine-tuning Процес fine-tuningпроцес fine-tuning

Процес складається з таких компонентів:

  • 1
    Початковий набір даних: колекція навчальних файлів, що стосуються відповідної предметної області.
  • 2
    Генератор запитань і відповідей: рішення на основі GPT-4, яке використовує інʼєкцію контексту для генерації запитань і відповідей із початкового набору даних.
  • 3
    Зразки запитань і відповідей: навчальні дані, що використовуються для процесу fine-tuning.
  • 4
    Fine-tuning: модель завершення тексту GPT-3 налаштовується на основі набору даних.
  • 5
    Запитання та відповіді для порівняння: набір запитань і відповідей, що використовується для оцінки ефективності моделі.
  • 6
    Порівняльний аналіз: етап fine-tuning, який вводить запитання з набору контрольних запитань і відповідей і оцінює достовірність згенерованих відповідей.

Ми продовжуємо використовувати модель завершення тексту GPT-3, оскільки GPT-4 наразі не підтримує процес fine-tuning.

Продовження читайте у наступній частині матеріалу, що вийде за кілька днів.

Якщо ви хочете поділитися з читачами SPEKA власним досвідом, розповісти свою історію чи опублікувати колонку на важливу для вас тему, долучайтеся. Відтепер ви можете зареєструватися на сайті SPEKA і самостійно опублікувати свій пост.
50 UAH 150 UAH 500 UAH 1000 UAH 3000 UAH 5000 UAH
0
Прокоментувати
Інші матеріали

Ukrainian TechComms Days 2024 — унікальна конференція про комунікації в tech-індустрії

Ольга Топольська 14 годин тому

Призовий фонд $100 тисяч: в Україні відбувся перший ETHKyiv хакатон

Ростислав Бортман 17 годин тому

Як збільшити продуктивність команди розробників. Якісна мотивація в 2024 році

Даніелла Шихабутдінова 17 годин тому

Apple планує інтегрувати Google Gemini в свої пристрої

Вікторія Рудзінська 20 годин тому

Як підготувати IT-бізнес до виходу на міжнародний ринок

Максим Олійник 28 червня 2024 11:34