ГоловнаСтаттіАвторегресивні моделі: Генерація послідовностей по одному токену за допомогою правила ланцюга

Авторегресивні моделі: Генерація послідовностей по одному токену за допомогою правила ланцюга

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

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Розкладання спільної ймовірності, Точно

Уявіть, що вам потрібно моделювати ймовірність повної послідовності токенів x_1, x_2, ..., x_n — речення, рядок коду або музична фраза. Моделювання цієї спільної розподіленої ймовірності p(x_1, ..., x_n) безпосередньо здається неможливим: кількість можливих послідовностей експоненційно зростає з довжиною, тому немає способу просто занести всі результати. Правило ланцюга рятує нас і не обмежує точності. Воно стверджує, що будь-який розподіл ймовірностей можна точно записати як добуток умовних розподілів: p(x_1, x_2, ..., x_n) = ∏_{t=1}^{n} p(x_t | x_1, ..., x_{t-1}). Іншими словами, ймовірність всієї послідовності дорівнює ймовірності першого токена, помноженій на ймовірність другого токена за умови першого, ймовірності третього за умови перших двох і так далі. Це не наближення чи спрощення – воно безпосередньо випливає з визначення умовної ймовірності, яке застосовується повторно. Що це дає нам – величезне: замість одного незбагненно складного об'єкта (спільного розподілу по всіх послідовностях), нам потрібно моделювати лише один набагато простіший об'єкт, p(x_t | x_1, ..., x_{t-1}), розподіл наступного токена за умови всього, що було до нього. Модель, яка добре розв’язує цю повторювану підзадачу, автоматично стає моделлю всієї спільної розподіленої ймовірності згідно з правилом ланцюга.

Навчання мережі для прогнозування наступного токена

Авторегресивна модель – це просто нейронна мережа, навчена для наближення p(x_t | x_1, ..., x_{t-1}) з параметрами тети, що записується як p_тета(x_t | x

Каскадне маскування: Без погляду в майбутнє

Трансформери обробляють весь послідовність одночасно, а не по токену за раз, що чудово для швидкості навчання, але створює тонку небезпеку: механізм самовваги природно дозволяє кожній позиції дивитися на всі інші, включаючи ті, що йдуть пізніше. Якщо цього не зупинити, мережа може «розв’язувати» задачу передбачення наступного токена, просто копіюючи відповідь з майбутньої позиції, яку вона вже бачить — це обхідний шлях, який забезпечує майже ідеальний показник втрат під час навчання, але повністю марну модель під час генерації тексту, оскільки майбутні токени очевидно не існуватимуть, коли ви насправді пишете текст. Каскадне маскування вирішує цю проблему, змушуючи механізм уваги на позиції t розглядати лише позиції від 1 до t, зазвичай реалізоване шляхом додавання негативної нескінченності до оцінок уваги для всіх майбутніх позицій перед softmax, що призводить до колапсу ваги уваги до нуля. Це єдина константа, яка перетворює звичайний бідиректівний Трансформер на справді авторегресивну модель, гарантуючи обчислення p_theta(x_t | x_1, ..., x_{t-1}) лише за допомогою інформації, яка була б доступна під час генерації. Це невелике архітектурне правило з надзвичайно великими наслідками: це саме те, що забезпечує математичну узгодженість між передбаченням наступного токена під час навчання та генерацією тексту під час виведення.

Генерація: Вибірка одного токена та його подальше використання

Після навчання модель більше не бачить істинних продовжень послідовності – генерація повинна будувати її з нуля, крок за кроком. Саме це пояснює назву «авторегресивна»: модель базується на своїх власних попередніх виходах. Починаючи з певного запиту x_1, ..., x_k, процес повторюється простим циклом: обчислюється p_θ(x_{t} | x_1, ..., x_{t-1}) для наступної позиції, вибіркось (або обирається найоптимільніший варіант) токен x_t з цього розподілу, додається він до послідовності та розширена послідовність подається назад у модель для обчислення розподілу для x_{t+1}. Це пояснює, чому генерація за своєю суттю є послідовною та порівняно повільною порівняно з навчанням: кожен новий токен вимагає свіжої прямої передачі, враховуючи все, що було згенеровано до цього моменту. Стратегії вибірки різняться –

greedy

декодування завжди приймає найімовірніший токен, а стратегії з використанням температури, top-k та nucleus (top-p) вносять керовану випадковість, щоб модель не генерувала однакову нудну та повторювану послідовність продовження кожного разу. Який би принцип вибірки не використовувався, ймовірність, з якої відбувається вибірка на кожному кроці, є точно умовною p(x_t | x

Чому ця проста ідея масштабується до моделей, подібних GPT

Сила факторизації на основі ланцюгового правила полягає в тому, що вона перетворює нерозв’язну задачу моделювання на уніфіковану та безкінечно повторювану: незалежно від того, наскільки довго стає послідовність, модель завжди повинна відповідати лише одне й те саме питання – «враховуючи все, що було до цього, що далі?» Ця однорідність означає, що одна й та сама архітектура та рецепт навчання масштабуються майже без зусиль від коротких речень до документів, що містять тисячі токенів, а також від невеликих мереж до моделей з сотнями мільярдів параметрів, просто додаючи більше шарів, більше увагових головок та більше навчальних даних. Це також пояснює, чому передбачення наступного токена – завдання, яке здається майже занадто простим, щоб мати значення – змушує модель неявно вивчати граматику, фактичні асоціації, логічні патерни та стиль: досягнення p(x_t | x

Frequently asked questions

Чи є правило факторизації приблизним?

Ні. p(x_1, ..., x_n) = product_{t=1}^{n} p(x_t | x_1, ..., x_{t-1}) є точним математичним ідентифікатором, що випливає з визначення умовного ймовірності, для будь-якого розподілу спільності будь-якої послідовності. Приближення в практиці повністю походить від того, наскільки добре нейронна мережа p_theta оцінює кожну справжню умовну p(x_t | x

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

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

Що саме запобігає причинному маскуванню?

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

Використовують RNN та Трансформери різку математичну мету?

Ні, вони поділяють абсолютно однакову навчальну мету, максимізуючи sum_t log p_theta(x_t | x

Чому генерація відчувається повільнішою за навчання?

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

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Autoregressive Models: Generating Sequences One Token at a Time via the Chain Rule і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Autoregressive Models: Generating Sequences One Token at a Time via the Chain Rule

Що ви знайшли?

Додати кроки відтворення (опційно)