SENIOR_AUGUR Telegram 352
The Pitfalls of Next-Token Prediction
Статья: https://arxiv.org/abs/2403.06963
Видео: https://www.youtube.com/watch?v=9V0bfZqT1Yo

Олды несомненно помнят, что в ранних seq2seq моделях, основанных на рекуррентных нейронных сетях, существовало два режима обучения: teacher-forcing, где на каждом шаге генерации в качестве входов использовались реальные токены, и другой режим с использованием токенов, предсказанных текущей версией модели. С появлением трансформеров и их параллельного обучения все стали использовать teacher-forcing. Авторы статьи возвращаются к этому вопросу.

🔹Задача
Авторы придумали простую синтетическую задачу: поиск пути между двумя вершинами в деревьях очень специфичной структуры, а именно в таких, где есть одна центральная вершина и несколько цепочек, исходящих из этой центральной вершины. Пример такого дерева (степень центральной вершины = 2, длина цепочек = 5):

8 ← 1 ← 5 ← 4 ← 3 → 0 → 2 → 6 → 7


Условия задачи:
— Степень центральной вершины и длина цепочек фиксированы для всех деревьев в обучающей и тестовой выборке.
— Путь всегда начинается в центральной вершине.
— Путь всегда заканчивается в одном из листьев.

Вход для задачи выглядит как случайно перемешанный набор рёбер дерева, плюс начало и конец пути (после "/"):

3 → 4 | 5 → 1 | 4 → 5 | 0 → 2 | 3 → 0 | 1 → 8 | 6 → 7 | 2 → 6 / 3 7


Выход выглядит как сам путь:

3 → 0 → 2 → 6 → 7


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

🔹Эмпирическая часть
— Авторегрессионные модели не справляются с решением этой задачи даже для деревьев с фиксированной структурой. Потому что сложно понять, в какую сторону идти от центральной вершины. 💀
— При развороте пути задача успешно решается авторегрессионными моделями. Это логично, потому что так гораздо проще: вы просто поднимаетесь по родителям, пока не найдёте центральную вершину. 📈
— Если во время обучения маскировать уже пройденную часть пути, модели также успешно решают задачу без разворота. Это странно, потому что мы делаем задачу сложнее для модели, заставляя её генерировать весь путь сразу. Но каким-то образом на такой версии задачи модель учится, а на оригинальной — нет. 😱

Я потратил пару вечеров и воспроизвёл это в Колабе: ссылка. Воспроизводил для 2-5 деревьев, то есть ровно таких, как в примере выше. Код писал с нуля, но опираясь на их Гитхаб. Всё получилось, как написано в статье: усложнение задачи приводит к возможности её выучивания. Технически это выглядит просто как маскирование части input_ids.

🔹Про предсказание следующего токена
Щепотка "соломенного чучела": распространенная критика языковых моделей состоит в том, что они являются лишь "стохастическими попугаями", способными только предсказывать следующий токен. Считается, что из-за этого они не могут эффективно планировать или исправлять ошибки.

Однако авторы статьи предполагают, что основная проблема не в механизме предсказания следующего токена как таковом. Проблема — в teacher forcing'е, то есть в том, что во время обучения у модели нет необходимости планировать и пытаться сформулировать решение в активациях. И ведь большинство современных моделей обучалось именно с использованием этого метода.

🔹Ограничения
— Эмпирическая часть работает при фиксированном наборе гиперпараметров, и сломав их, можно сломать 2 и 3 наблюдение. Обучение и обучаемость таких моделей — это прежде всего оптимизационная задача, и там есть значительная доля случайности. Однако ни у меня, ни у авторов не получилось сделать модель, которая была бы контрпримером для первого наблюдения.
— У авторов нет никакого теоретического обоснования наблюдений. Как нет и алгоритма, по которому сеть считает путь. Мне кажется, что тут есть простор для творчества и механистической интерпретации.
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/senior_augur/352
Create:
Last Update:

The Pitfalls of Next-Token Prediction
Статья: https://arxiv.org/abs/2403.06963
Видео: https://www.youtube.com/watch?v=9V0bfZqT1Yo

Олды несомненно помнят, что в ранних seq2seq моделях, основанных на рекуррентных нейронных сетях, существовало два режима обучения: teacher-forcing, где на каждом шаге генерации в качестве входов использовались реальные токены, и другой режим с использованием токенов, предсказанных текущей версией модели. С появлением трансформеров и их параллельного обучения все стали использовать teacher-forcing. Авторы статьи возвращаются к этому вопросу.

🔹Задача
Авторы придумали простую синтетическую задачу: поиск пути между двумя вершинами в деревьях очень специфичной структуры, а именно в таких, где есть одна центральная вершина и несколько цепочек, исходящих из этой центральной вершины. Пример такого дерева (степень центральной вершины = 2, длина цепочек = 5):


8 ← 1 ← 5 ← 4 ← 3 → 0 → 2 → 6 → 7


Условия задачи:
— Степень центральной вершины и длина цепочек фиксированы для всех деревьев в обучающей и тестовой выборке.
— Путь всегда начинается в центральной вершине.
— Путь всегда заканчивается в одном из листьев.

Вход для задачи выглядит как случайно перемешанный набор рёбер дерева, плюс начало и конец пути (после "/"):

3 → 4 | 5 → 1 | 4 → 5 | 0 → 2 | 3 → 0 | 1 → 8 | 6 → 7 | 2 → 6 / 3 7


Выход выглядит как сам путь:

3 → 0 → 2 → 6 → 7


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

🔹Эмпирическая часть
— Авторегрессионные модели не справляются с решением этой задачи даже для деревьев с фиксированной структурой. Потому что сложно понять, в какую сторону идти от центральной вершины. 💀
— При развороте пути задача успешно решается авторегрессионными моделями. Это логично, потому что так гораздо проще: вы просто поднимаетесь по родителям, пока не найдёте центральную вершину. 📈
— Если во время обучения маскировать уже пройденную часть пути, модели также успешно решают задачу без разворота. Это странно, потому что мы делаем задачу сложнее для модели, заставляя её генерировать весь путь сразу. Но каким-то образом на такой версии задачи модель учится, а на оригинальной — нет. 😱

Я потратил пару вечеров и воспроизвёл это в Колабе: ссылка. Воспроизводил для 2-5 деревьев, то есть ровно таких, как в примере выше. Код писал с нуля, но опираясь на их Гитхаб. Всё получилось, как написано в статье: усложнение задачи приводит к возможности её выучивания. Технически это выглядит просто как маскирование части input_ids.

🔹Про предсказание следующего токена
Щепотка "соломенного чучела": распространенная критика языковых моделей состоит в том, что они являются лишь "стохастическими попугаями", способными только предсказывать следующий токен. Считается, что из-за этого они не могут эффективно планировать или исправлять ошибки.

Однако авторы статьи предполагают, что основная проблема не в механизме предсказания следующего токена как таковом. Проблема — в teacher forcing'е, то есть в том, что во время обучения у модели нет необходимости планировать и пытаться сформулировать решение в активациях. И ведь большинство современных моделей обучалось именно с использованием этого метода.

🔹Ограничения
— Эмпирическая часть работает при фиксированном наборе гиперпараметров, и сломав их, можно сломать 2 и 3 наблюдение. Обучение и обучаемость таких моделей — это прежде всего оптимизационная задача, и там есть значительная доля случайности. Однако ни у меня, ни у авторов не получилось сделать модель, которая была бы контрпримером для первого наблюдения.
— У авторов нет никакого теоретического обоснования наблюдений. Как нет и алгоритма, по которому сеть считает путь. Мне кажется, что тут есть простор для творчества и механистической интерпретации.

BY Старший Авгур


Share with your friend now:
tgoop.com/senior_augur/352

View MORE
Open in Telegram


Telegram News

Date: |

The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. ZDNET RECOMMENDS Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. A vandalised bank during the 2019 protest. File photo: May James/HKFP.
from us


Telegram Старший Авгур
FROM American