Месяц назад вышел крутой выпуск подкаста Latent Space: The Mathematics of Training LLMs — with Quentin Anthony of Eleuther AI
https://www.latent.space/p/transformers-math#details
Советую конечно и сам эпизод, но рассказать хочу про два блогпоста, вокруг который выпуск крутится и которые я рекомендую в свободное время почитать
🙃 Transformer Inference Arithmetic
Тут про то, как ручками посчитать перфоманс трансформера и как его разложить на составляющие операции. Например:
- сколько flops уходит на то, чтобы подсчитывать kv cache и сколько это занимает от одного форвард пасса (спойлер, 1/6 компьюта!)? сколько занимает кэш для одного токена и сколько времени кэш позволяет cэкономить?
- когда мы memory bound, то есть упираемся в то, чтобы считать и хранить этот кэш, и с какого количества токенов мы уже flops bound? забавно, что для этого есть точное число – 208 токенов
- сколько вычислений и времени уходит на коммуникацию между частями модели, особенно если мы делаем model parallelism?
- как на это все влияет батч сайз?
💚 Transformer Math 101 от Eleuther AI
Здесь уже ресерчеры делятся по их словам basic math, которую нужно знать, чтобы мочь тренировать и инференсить модели. В отличие от первого поста, где вычисления теоретические и периодически довольно сложные, тут ребята делятся скорее формулами, которыми они пользутся в своей парактике, зачастую выведенные эмпирически. Например:
- сколько вычислений потребуется, чтобы обучить заданную модель на заданном датасете? (спойлер, 6*размер датасета в токенах*размер модели)
- сколько места займет модель, если захотите тренировать в mixed precision?
- сколько памяти будет занимать optimizer state во время тренировки?
- сколько будут занимать градиенты и активации?
- как это все изменится, если мы решим шардить оптимизатор через ZeRO-1, 2 или 3?
- а если распараллелим как-нибудь?
В подкасте Квентин собственно отвечает на вопросы по мотивам этих двух постов и поясняет за всякие нюансы. Hate to admit it но кучу вещей отсюда я либо не знала, либо не помнила, так что может быть будет полезно кому-то еще ♥️
Post #975
4.99K