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, а ещё есть популярно написанный блогпост