Що таке ChatGPT: пояснення для гуманітаріїв

Що таке ChatGPT: пояснення для гуманітаріїв

  • 4 жовтня, 2023
  • читати 5 хв
Ханна Янкіна
Ханна Янкіна Head of Recruitment у Proxet, Викладач Комп'ютерної школи Hillel.

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

Але ChatGPT: що це взагалі таке? Як функціонує ця магія? Без жодного технічного досвіду, мені складно було розібратись в термінології та наукових статтях. Але дуже хотілось зрозуміти.

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

А ще ми вже розповідали, як користуватися штучним інтелектом GPT для пошуку роботи.

Рекомендуємо публікацію по темі

Що таке ChatGPT найпростішими словами

Якщо ваше дитинство/юність припали на 90-ті, скоріш за все ви пам’ятаєте антивандальні телефони Nokia 3210, їх випустили в 99 році, і в них вже була технологія Т9, яка прискорювала введення тексту. Т9 вгадувала тільки поточне слово (або його частину), а не наступне, тобто не враховувала контекст.

Все ж і Т9 і ChatGPT з технічної точки зору схожі, це — мовні моделі (Language Models), і їхня основна функція — передбачити, яке слово повинно йти після вже написаного тексту. Звісно, за 20 років технології розвинулись, і вже в в 2010 смартфони вміли обмежено розуміти контекст (враховувати попереднє слово) і навіть допомагати з правильним синтаксисом. (Джерело 1, Джерело 2)

Тобто і Т9, і ChatGPT вміють виконувати, здавалося б, просте завдання: передбачати лише одне наступне слово. Це і є мовне моделювання (Modeling language) — прогноз, яке саме слово буде наступним, зроблений на основі аналізу попереднього тексту.

Для таких передбачень мовній моделі необхідно прораховувати ймовірності того, яке слово буде наступним. (Джерело 1)

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

Ви легко можете перевірити це на своєму смартфоні:

Щоб зрозуміти, як Т9 обирає слова, розглянемо принцип роботи найпростіших нейронних мереж. Почнемо з завдання простішого за мовне моделювання, навчимо комп’ютер знаходити залежності між простими явищами. Наприклад «вгадувати» вагу людини в залежності від її зросту.

Насамперед збираємо дані, на яких ми будемо шукати ці залежності. Для наочності збудуємо графік: на горизонтальній осі X ми будемо відкладати зріст в сантиметрах, а на вертикальній осі Y — вагу в кілограмах. (Джерело 1)

Залежність очевидна: чим вища людина, тим більше вона важить.

У вигляді рівняння залежність виглядає так: y = k * x + b, а на графіку потрібна нам лінія вже намальована за допомогою моделі лінійної регресії.

Приклад такої залежності дуже простий та зрозумілий інтуїтивно, але саме цей принцип закладено в мовне моделювання.

Аналізуючи велику кількість текстів, мовні моделі розраховують ймовірність появи слів у різних контекстах. Отже, якщо ви вже набрали «бажаю успіхів», Т9 аналізує свою статистику і виявляє, що після фрази «бажаю успіхів» часто йдуть слова, такі як «у», «в», і словосполучення «у роботі» і так далі. Ці слова матимуть вищий коефіцієнт ймовірності. Цей підхід заснований на статистиці і може бути дуже ефективним для передбачення наступних слів в тексті, але він не враховує семантичний і синтаксичний зв'язок між словами. Тобто, Т9 не розуміє значення слів або граматичну структуру речень, він просто використовує імовірність на основі статистики.

Дуже спростивши, ChatGPT теж можна назвати великою кількістю рівнянь які передбачають наступне слово (ігрек) на основі введеного набору попередніх слів (ікс).

Основна складність в роботі моделі — підбір таких коефіцієнтів для цих іксів, щоб вони правильно відображали залежність (як у нашому прикладі зі зрістом/вагою). Розрахунок коефіцієнтів відбувається в процесі аналізу даних, завантажених в систему. Такі данні називають датасетом, а процес аналізу — машинним навчанням, точніше навчанням мовних моделей для NLP (Natural Language Processing).

Рекомендуємо курс по темі

Через величезний обсяг даних з’явилось поняття LLM (Large Language Model) — великі мовні моделі. Чим більше параметрів (рівнянь для розрахунків вірогідності) використовує модель, тим краще тексти вона здатна генерувати. І першою такою моделлю стала GPT-1 (Generative Pre-trained Transformer 1), розроблена компанією OpenAI та представлена у травні 2018 року.

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

Творчість мовної моделі

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

Зрозуміліше на прикладі — якщо ми попросимо модель продовжити речення «Ганнібала Лектора у фільмі «Мовчання Ягнят» зіграв актор Сер…», ймовірно, ви впевнені, що система з вірогідністю 100% додасть слово Ентоні (оскільки цю роль зіграв актор Сер Ентоні Гопкінс). Насправді, повне ім’я актора — Філіп Ентоні Гопкінс, хоча повна форма зустрічається дуже рідко. Тому є 2 варіанти — 1) Ентоні, коефіцієнт ймовірності 90%, 2) Філіп, ймовірність — 10%.

І дуже цікавим фактом є те, що система не завжди вибирає слова з більшим коефіцієнтом. (Джерело 1) Тобто в нашому прикладі слово «Ентоні» замість слова «Філіп» тільки через те, що 90 більше за 10. Цей вибір обумовлений набагато складнішою залежністю, а користувачам часто здається випадковим.

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

І власне через це модель на однакові питання може давати різні відповіді. Так само як і ми, люди.

В цілому будь-яка мова — це система з чіткими наборами правил і винятків. Слова в реченнях не виникають з нікуди, вони пов'язані одне з одним. Ми засвоюємо ці зв’язки автоматично, коли в дитинстві вчимося розмовляти. Разом з тим мова має багато тонів та напівтонів, за допомогою різних стилів та їх комбінацій ми виражаємо не менше інформації, ніж власне самим текстом.

І все це різнобарв'я лінгвістична модель аналізує, переводить у формули та генерує нові тексти за допомогою формул.

Отже, з принципом роботи мовних моделей більш-менш розібрались, але магія ChatGPT не до кінця зрозуміла. Тут буде трохи історії:

Спочатку у світі обробки природної мови (NLP) використовували рекурентні мережі (RNN) для різних завдань. Рекурентні мережі подібні роботу, який читає слово за словом. Кожне слово, яке він читає, впливає на те, як він розуміє наступне слово. Наприклад, у фразі «Я люблю сонце», коли робот прочитав слово «я», він розуміє, що це може бути початок речення, і це впливає на те, як він розуміє наступні слова.

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

А в 2017 команда вчених з Google Brain видала статтю «Attention is All You Need», в якій описала новий тип архітектури на основі технології уваги, вже без RNN (звідси і назва статті). Таку архітектуру назвали Трансформером.

Наш приклад з реченням «Я люблю сонце» Трансформер обробляє так: бачить всі слова у реченні: «Я», «люблю», «сонце». Він може врахувати, що «Я» — це початок речення, і використовує цю інформацію при розгляді інших слів. Він також звертає увагу на взаємозв'язки між усіма словами в один момент часу.

GPT — це абрівіатура від Generative Pre-trained Transformer, тобто «трансформер, навчений генерувати текст».

Поява Трансформера була великим поштовхом, для всіх галузей штучного інтелекту (AI) — від текстових перекладів до обробки зображень, звуку чи відео.

Рекомендуємо публікацію по темі

Оскільки текст, зображення і звук (і практично все у цьому світі) можна подавати у вигляді послідовностей чисел, Трансформер може розв'язувати практично будь-які завдання. Ключова перевага трансформера над іншими типами архітектури — це гнучкість та зручність масштабування.

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

GPT-2 та збільшення об’єму датасету

Щоб навчити нейромережу розрізняти фото такси від фото бублика не можна просто завантажити багато фоток і сказати — розбирайся. Спочатку потрібно описати фотографії, тобто створити початковий набір даних.

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

Будь-який текст, написаний людиною, і є тими самими «тренувальними даними», бо підходить для аналізу послідовності слів.

Архітектура Трансформеру вдосконалювалася на GPT-1 і стала ще краще масштабуватись, тобто працювати з величезним об'ємом даних і разом з тим підтримувати масивну модель, тобто таку, що складається з великої кількості параметрів.

Тож, у 2019 році вчені з OpenAI створюють нову, складнішу систему — GPT-2. Змінилися 2 параметри — обсяг датасету і розмір самої моделі, тобто кількість параметрів аналізу даних.

Під час роботи над апдейтом системи команда зіткнулась з проблемою — не існувало готового підходящого датасету, настільки великого, щоб використати його для такої масштабної моделі. Тоді OpenAI знайшли рішення — джерелом текстів, написаних людьми, став Reddit. Кожне повідомлення, яке мало більше трьох лайків було «згодовано» системі. Об’єм усього тексту становив близько 40 гігабайт. Це в 7 тисяч разів більше, ніж увесь творчий доробок Вільяма Шекспіра. Людині для того, щоб прочитати стільки тексту, знадобилось би 40 років безперервного читання..

Але важливим є не тільки розмір датасету, але теж складність моделі, яка визначається кількістю її параметрів. Параметри моделі — це числа, які визначають, як модель адаптується до тренувальних даних. Чим більше параметрів, тим більше інформації модель може вивчити та відобразити.

Отож, скільки було параметрів у рівнянні, яке описує найбільшу модель GPT-2 у 2019 році?

Модель GPT-2 мала приблизно 1,5 мільярда параметрів. Це було значним збільшенням порівняно з попередньою версією, GPT-1, яка мала приблизно 117 мільйонів параметрів. Така велика модель потребувала більше ресурсів обчислювання та потужніших комп’ютерів.

У дуже спрощеному наближенні це те саме рівняння y=k*x+b, де y — вихідна змінна або результат (тобто наступне слово), x = це вхідна змінна (попередні слова), k — це параметр, який визначає нахил лінії, а b — це параметр, який визначає точку перетину лінії з віссю y.

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

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

Зсув (b) в лінгвістичних моделях може вказувати на додаткову константу або зміщення в результатах моделі. Він може використовуватися, наприклад, для вирішення проблеми двозначності висловів, відсутності контексту або для налаштування стилю генерованого тексту.

Отже, параметри (їх також називають «вагами» або «коефіцієнтами») у лінгвістичних моделях — це набори чисел, які визначаються під час тренування моделі на великому обсязі тексту. Вони використовуються для налаштування внутрішньої структури та роботи моделі так, щоб вона могла генерувати текст, розуміти мову та виконувати різноманітні завдання мовного аналізу.

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

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

2020: GPT-3, коли розмір має значення

У 2020 році з'явилася на світ наступна версія, GPT-3, вона була у 116 разів більше, ніж її попередниця. Не менш вражаючою була і збільшена потужність: вага розробленої мозкової сітки досягла 700 гігабайт.

Разом із збільшенням обсягу моделі, велика увага приділялася і покращенню датасету для її навчання. Хоча збільшення було менш радикальним, ніж у випадку параметрів, обсяг датасету зріс до 420 гігабайтів, включаючи в себе багато книг, матеріалів з Вікіпедії та текстів з різних куточків Інтернету.

Рекомендуємо публікацію по темі

Як спілкуватися з ШІ, та що таке Промти?

Промпти — це команди, якими ви пояснюєте GPT-3, що ви хочете від нього отримати. Це схоже на програмування, але зазвичай виконується звичайною «людською мовою».

Будь-який текст, який ми надаємо ШІ токенізується, тобто розбивається на менші одиниці, які називаються токенами.

Важливим є розмір промпта. Хоча промпт може бути будь-яким текстом, загальна кількість токенів у промпті та отриманому результаті повинна становити менше ніж 2,048 токенів — це приблизно 1,500 слів. Для ефективних промтів важливий не тільки розмір, але і якість.

Насамкінець пропоную 8 порад, як писати кращі промти:

  • Визначте роль для моделі, яка вам потрібна, і надайте цю роль в промпті. Наприклад, «я хочу, щоб ти був письменником, який спеціалізується на жанрі детектив» або «мені потрібно, щоб ти виступив в ролі юриста»
  • Використовуйте слова-дії, такі як «створи», «зроби», «придумай», «опиши», «запропонуй»
  • Уникайте вживання формулювань «міг би», «можеш»
  • Зробіть ваш промпт більш конкретним і зрозумілим, уникайте абстрактних запитів
  • Встановіть обмеження за кількістю символів, якщо вам потрібна відповідь обмеженої довжини
  • Визначте, який стиль тексту вам потрібен: офіційний, розмовний, творчий, публіцистичний
  • Розгляньте можливі формати відповіді, такі як таблиця, нумерований список, фрагменти або цитати
  • Поясніть завдання докладно і додайте якомога більше контексту для кращого розуміння вашого запиту

Рекомендуємо публікацію по темі