TGTGInsighttelegram intelligenceLIVE / telegram public index
← AI[ex]Time
AI[ex]Time avatar

TGINSIGHT POST

Post #79

@AIexTime

AI[ex]Time

Views2,320Post view count
PostedJun 2406/24/2024, 07:35 PM
Post content

Post content

Andrej Karpathy продолжает радовать контентом и 2 недели назад выпустил крутой выпуск по обучению GPT-2 на 124M с нуля, покрыв очень много тем (еще бы, за 4 часа). По меркам ML это уже прошлый век, но, пусть и с запозданием, хочется отдельно выделить некоторые кусочки, которые, на мой взгляд, могут быть особенно полезны многим изучающим NLP/LLM. 1. Быстрое преобразование тензора токенов из датасета, чтобы получить таргет для обучения: ведь для каждой последовательности токенов нам нужно учиться предсказывать следующий. И там же имплементация DataLoader с этим трюком. 2. Объединение матрицы начальных эмбеддингов и последнего слоя lm_head, предсказывающего следующий токен: мотивация, inductive bias и прочее. 3. Есть такой частый вопрос на собеседованиях: а зачем в attention произведение Q*K делить на sqrt(d)? Похожая история есть с нормализацией весов слоев, где есть residual paths. Здесь Andrej как раз модифицирует их инициализацию для контроля дисперсии. 4. Секцию 1:22 — 2:15 вообще советую посмотреть всю: очень много тем покрыто, пусть и по верхам, но это уже дает какую-то интуицию: разные типы данных для обучения, кернелы в гпу, на что уходит время в attention, почему flash attention так сильно ускоряет операцию и так далее. TLDR: с throughput 16k tokens/sec получили 170k tokens/sec. 5. Важный, хотя кажущийся простым момент с gradient accumulation: зачем нужно дополнительно делить loss на grad_accum_steps. Почему-то этот вопрос тоже часто встречался на собесах. 6. Разные способы оценивать модели в рамках языковых бенчмарков: считать вероятность генерации, напрямую генерировать токен-ответ и т.д.