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