DeepMind выпустил AlphaCode, который прогает лучше половины твоих знакомых.
Во многом похож на Codex, но есть отличия.
Основной подход:
1. Encoder-decoder, 41B параметров
1. Декодер обучается предсказывать следующее слово, а энкодер делает MLM. Всё end2end.
1. Заскрапили датасет задачек с Codeforces и зафайнтюнили на нём модель
1. Во время тестирования семплили очень большое количество решения (до миллиона) и потом выбирали из них с помощью кластеризации, эвристик и, самое главное, проходят ли они открытые тесты которые приложены к задачке. Сабмитили на финальную проверку только топ-10.
По результатам: AlphaCode решает задачки лучше, чем 54% пользовалетей Codeforces (не очень альфа пока что, но стремится туда).
Небольшие технические отличия от Codex:
1. Максимальная длина для энкодера 1536, для декодера 768
1. Использовали Multi-query attention, модификацию attention, которая использует одни и те же K и V для разныех голов – позволило улучшить потребление памяти и скорость декодирования
1. Очень маленький словарь токенизатора, 8К.
1. Во время файтнюнинга использовали температуру 0.2, которая делает распределение более острым. При тесте температура не использовалась, назвали это tempering.
1. Файнтюнились и на правильных и на неправильных решениях, при этом моделе заранее сообщается сигнал корректное ли это решения.
1. Для файнтюнинга использовали лосс, который называется GOLD. По сути это взвешенная кросс-энтропия, несмотря на то, что выглядит как RL.
Вот тут можно посмотреть на визуализацию attention, а ещё есть популярно написанный блогпост
Во многом похож на Codex, но есть отличия.
Основной подход:
1. Encoder-decoder, 41B параметров
1. Декодер обучается предсказывать следующее слово, а энкодер делает MLM. Всё end2end.
1. Заскрапили датасет задачек с Codeforces и зафайнтюнили на нём модель
1. Во время тестирования семплили очень большое количество решения (до миллиона) и потом выбирали из них с помощью кластеризации, эвристик и, самое главное, проходят ли они открытые тесты которые приложены к задачке. Сабмитили на финальную проверку только топ-10.
По результатам: AlphaCode решает задачки лучше, чем 54% пользовалетей Codeforces (не очень альфа пока что, но стремится туда).
Небольшие технические отличия от Codex:
1. Максимальная длина для энкодера 1536, для декодера 768
1. Использовали Multi-query attention, модификацию attention, которая использует одни и те же K и V для разныех голов – позволило улучшить потребление памяти и скорость декодирования
1. Очень маленький словарь токенизатора, 8К.
1. Во время файтнюнинга использовали температуру 0.2, которая делает распределение более острым. При тесте температура не использовалась, назвали это tempering.
1. Файнтюнились и на правильных и на неправильных решениях, при этом моделе заранее сообщается сигнал корректное ли это решения.
1. Для файнтюнинга использовали лосс, который называется GOLD. По сути это взвешенная кросс-энтропия, несмотря на то, что выглядит как RL.
Вот тут можно посмотреть на визуализацию attention, а ещё есть популярно написанный блогпост