Як модель вчиться
Девʼять кадрів: токени, нейрон, шари, помилка, навчання, застиглі ваги, випадковість вибору і що відбувається з твоїми даними. Числа у фільмі умовні, це навчальний приклад.
Широка версія для великого екрана
Текстом
Те саме, що у фільмах: кожен кадр і його текст. Текст можна скопіювати і дати своєму асистентові разом із власним питанням.
Як модель вчиться
Відповіді чат-асистента пише мовна модель - програма, яка слово за словом продовжує текст. Усередині в неї немає ні довідника, ні записаних правил мови: там лише числа, у великій моделі їх мільярди, і жодного з них людина не вписувала. Те, як програма сама підбирає ці числа, пояснює головну властивість моделі: відповідь звучить гладко і впевнено навіть тоді, коли факт у ній хибний.
Рахувати з літерами програма не вміє, тому текст спершу перетворюють на числа. Його ріжуть на токени, тобто слова або частини слів, і кожен токен має свій номер у словнику моделі. Шматків у словнику десятки або сотні тисяч, і з них складається будь-яке слово, навіть рідкісне. Речення «Суд задовольнив позов» розпалося на чотири токени, бо «задовольнив» програма поділила навпіл. Поділ і всі числа у фільмі умовні.
З номерами токенів модель робить одне: за початком тексту оцінює, який токен буде наступним. Відповідає вона не одним словом, а ймовірністю для кожного токена зі словника. Ймовірність - це число від нуля до одиниці: що воно більше, то правдоподібнішим виходить таке продовження, а разом усі варіанти дають одиницю. Після слів «Суд задовольнив» слово «позов» отримало 0,62, тобто приблизно шість шансів із десяти.
Ймовірності модель обчислює, і найменша ланка цих обчислень - нейрон, у найпростішому вигляді невелика формула. Кожне вхідне число множать на його вагу, результати додають, а суму стискають, тут у число від нуля до одиниці: з 1,28 виходить 0,78. Вага показує, як сильно вхід впливає на результат: з вагою 0,9 він важить багато, з вагою 0,2 - майже нічого. На малюнку вага - це товщина дроту.
Один нейрон уміє небагато, тому їх збирають у шари, а шари ставлять один за одним. Вихід кожного нейрона стає входом для всіх нейронів наступного шару, і кожне таке зʼєднання має власну вагу. У цій мережі три шари по пʼять нейронів і пʼятдесят ваг між ними. Велика мовна модель влаштована складніше, але принцип той самий, а ваг у ній мільярди.
На початку всі ці ваги випадкові, і мережа з ними рахує нісенітницю. Номери токенів «Суд задовольнив» проходять шар за шаром, а на виході всі варіанти отримують майже однакову ймовірність: «позов» - 0,19, не більше за будь-яке інше слово. Виставити правильні ваги вручну неможливо: їх надто багато, і ніхто не знає, якими вони мають бути. Тому ваги підбирає сама програма, і цей підбір називають навчанням.
Для навчання потрібні лише готові тексти: у кожному з них уже відомо, яке слово стоїть далі. Моделі показують початок, «Суд задовольнив», і вона дає слову «позов» ймовірність 0,19. У тексті там справді стоїть «позов», тобто правильна ймовірність - одиниця. Різниця, 0,81, тут і є помилкою. У справжньому навчанні формула інша, але суть та сама: що менше дісталося правильному токену, то більша помилка.
Помилку передають мережею назад, від виходу до входу, і кожну вагу трохи зсувають у той бік, де помилка стає меншою. Один такий крок майже нічого не змінює, тож їх роблять мільйони, щоразу на новому уривку тексту. Ймовірність слова «позов» поступово зростає з 0,19 до 0,62. До одиниці вона не дійде, бо в інших текстах після тих самих слів стоїть «клопотання» або «скаргу».
Коли навчання закінчується, ваги фіксують, і так виходить версія моделі. Від прочитаних текстів у ній лишилися тільки ці числа: закономірності мови, а не база, у якій можна знайти й перевірити факт. Розмова в чаті ваги лише читає, щоб порахувати відповідь, і нічого в них не змінює. Якщо асистент памʼятає минулі чати, це збережені нотатки, які він додає до нового запиту, а не навчання.
Наступну версію вчать на новому наборі текстів, і постачальник може додати до нього розмови та файли користувачів. Чи стосується це вас, залежить від продукту, тарифного плану і налаштувань облікового запису. Перемикач у налаштуваннях діє тільки наперед: що вже потрапило до набору, звідти не повернути. Навіть коли ви вимкнули навчання, постачальник певний час зберігає розмови на серверах, і в окремих випадках їх читають його працівники.
Готова модель на той самий запит рахує практично ті самі ймовірності, проте відповіді різняться. Наступний токен із них вибирають випадково, але так, що ймовірніший варіант випадає частіше: «позов» з імовірністю 0,62 переважає, проте не щоразу. Із трьох запусків два дали «позов», а один - «клопотання». Обраний токен дописують до тексту, і все повторюється для наступного, поки не складеться відповідь.
Модель вчили одного: продовжувати текст так, як його зазвичай продовжують. На поширеній фразі таке продовження здебільшого правильне. Рідкісний факт, як-от номер справи, у текстах майже не траплявся, проте модель так само видає щось схоже за формою. Вона має внутрішні ознаки того, знайома їй тема чи ні, але вони ненадійні, і у відповіді їх не видно: відоме і правдоподібне звучать однаково. Тому факти звіряють із джерелом.
Далі
- Звідки береться відповідь · Як працює мовна модель · близько 5 хв