Связывание весов (weight tying) — это когда входные эмбеддинги и выходной слой языковой модели сидят в одном тензоре. На Хабре Максим (YH7H22) объясняет, почему приём 2016 года, по его мнению, мешает большим моделям: одна матрица не может одновременно сближать похожие слова и разводить формы, которые на выходе должны различаться.
Откуда взялся приём
Колонка возводит его к статье 2016 года «Using the Output Embedding to Improve Language Models» и к тому, как его закрепили в GPT-2. Берётся матрица входных эмбеддингов размером «словарь на скрытую размерность», а её транспонирование ставят выходным классификатором.
Матрица словаря — самая тяжёлая часть модели. В примере автора словарь 50 000 токенов и скрытая размерность 4096 дают матрицу на сотни мегабайт. Связали вход с выходом — хранят её один раз. Дополнительно связывание считали регуляризацией: моделью труднее запомнить шум.
Чтение и письмо — разные геометрии
На входе сети выгодно держать рядом слова одного смысла. «Идти», «шёл» и «шагал» для внимания почти одно и то же: нужна не форма, а значение. Векторы сжимают.
На выходе это выбор одного токена из тех же 50 000. В фразе «Вчера он по улице…» продолжение — «шёл», не «идти». Если формы лежат рядом, softmax размазывает вероятность между ними. Выходной матрице, пишет автор, эти формы нужно раздвинуть.
Weight tying оставляет обе задачи одной матрице.
Где, по автору, гаснут градиенты
На обратном проходе ошибка токена толкает выход раздвинуть близкие формы, а вход — сблизить похожие смыслы. Память общая, поэтому оптимизатор складывает два градиента в разные стороны. Автор называет это гашением: матрица не дожимает пространство для входа и не растягивает его для выхода, а ищет компромисс.
Замера в колонке нет. Нет модели, нет кривой loss, нет сравнения tied и untied. Это геометрический довод, не результат эксперимента.
Почему раньше приём не мешал
Для моделей на 100–300 миллионов параметров автор называет GPT-2 и BERT. Тогда, по его оценке, польза регуляризации перекрывала спор градиентов: данных было мало, и связывание мешало переобучению.
Дальше он противопоставляет обучение на триллионах токенов. Переобучение уже не главная угроза, и каждый параметр должен делать своё. Развязать веса — модель толще на пару гигабайт: вход строит смысловую карту, выход учит границы между токенами. Насколько быстрее после этого сходится обучение, текст не измеряет. Финал — совет не копировать хак 2016 года только потому, что так написано в старых статьях.

