Исследователь Джайлс Томас опубликовал детальный разбор причин, по которым его попытки воспроизвести обучение GPT-2 уступали оригинальным весам OpenAI. Основная проблема заключалась в скрытых ошибках реализации алгоритмов нормализации и инициализации весов, которые приводили к деградации градиентов. Исправление этих нюансов позволило существенно приблизить качество модели к эталонным показателям.

В процессе отладки выяснилось, что даже незначительные отклонения в математической реализации слоев LayerNorm и способах инициализации параметров могут приводить к существенному расхождению в итоговой перплексии модели. Автор подробно описывает, как именно неверная обработка весов в тензорных операциях влияла на стабильность обучения и почему стандартные библиотеки не всегда гарантируют идентичное поведение при воспроизведении архитектур прошлых лет.

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

Ключевые факты

  • Основная причина отставания заключалась в некорректной реализации LayerNorm, что приводило к нестабильности обучения.
  • Ошибки в инициализации весов вызывали преждевременное затухание градиентов на ранних этапах тренировки.
  • Сравнение проводилось на архитектуре GPT-2, что позволило выявить критические различия в математических операциях по сравнению с оригиналом OpenAI.
  • Исправление программных багов позволило значительно снизить значение перплексии, сделав модель конкурентоспособной по отношению к исходным весам.