Physics of Language Models
Короче обзор фейсбучной статьи - люди проводят пачки абалейшенов и они НЕ БЕСПОЛЕЗНЫЕ!!! прикиньте да, можно не просто менять gelu на relu, а думать и считать. Я вот охуел.
Немного терминов которые авторы используют в статье, а я буду переиспользовать.
- Knoweledge pieces - куски знания, те модель точно отвечает что "Этот прекрасный мир" - лучшее аниме. Или например точно отвечает на вопросы про скорость света и тд
- Bit Complexity and Capacity Ratio - мы считаем с какого размера модель может выучить N bit информации и с бОльшой вероятность воспроизводить
В качестве примеров данных они используют такой датасет синты, что то типа викепедии только сильно проще и более контролируемое+ дополнительно переписали на llama2 чтобы докинуть "шума"
Всего размер такого датасета где то 23gb
Качество сжатия(bit complexity) считается таким образом
Capacity Ratio
Для модели F c числом параметров P, обученной на датасете
По оси Y у нас то сколько модель выучивает знаний, по оси X у нас размер модели, а N это количество сущностей в данных которые показывают модели.
Каждая циферка у точки это соотношение глубины-ширины те 20-16 означает 20 слоев и 16 голов
Левый график соотвествует 1000 повторений данных, правый - 100 повторений данных
Base Scaling Laws
1) 1000 проходов вики гарантирует что модель будет знать основную фактологию, но если будет common crawl качество данных - понадобиться миллион повторений, см график слева(вики лайк) и справа(CC like)
Модели с коэфом сжатия 1.8 в целом хороши, выше смысла особо нет
Knoweledge extraction
Важная ремарка - речь о сжатии 2бит/параметр не означает что модель выучивает 1в1 википедию, это озночает что после ft на задачу qa модель будет увренно и правильно отвечать "кто когда родился", "а мог ли ленин встретится с гитлером" и прочее
Data Formats — Diversity and Rewriting
K - количество уникальных фич в датасете - ну номера паспортов, даты, токены и прочее
Когда авторы переписывали через LLama2 свои фактические датасеты, llama2 неизбежно галюны выдавала и в целом ломалась переодически, а значит в данные добавлялся реальный шум.
Training Time vs Scaling Law
Логика такая, что если хотите достичь максимальной точности нужно где то 1000 повторений, если хотите оптимальной - 100 хватит с головой
Model Architecture vs Scaling Law
Краткая справка для тех кто не ебет чем ллама от мистраля отличается
1) LLaMA/Mistral используют так называемые слои GatedMLP, которые представляют собой V (σ(W1x)·(W2x)) вместо V σ(W x).
2. В отличие от GPT2, LLaMA/Mistral не используют связывание весов.
3. Mistral имеет более широкие MLP по сравнению с GPT2/LLaMA.
4. Mistral использует group query attention, в отличие от GPT2/LLaMA.
5. LLaMA/Mistral используют другой токенизатор, чем GPT2.
6. GPT2 использует функцию активации gelu, LLaMA/Mistral предпочитают silu.
Исходя из метрик авторы говорят: особой разницы и прироста нет, везде примерно одинаковые цифры, забейте. Учите то что лучше учится.
Insufficient Training Regime and a Closer Comparison
1) А тут интересно, если у нас не оптимальный режим обучения(lr) то llama работает в 1.3 раза хуже чем gpt2
2) если выкинуть mlp модель тупеет в 1.5 раза
3) если порезать 1/4 mlp то разницы особо нет
4) Если заменить llama gated mlp на нормальный, то работает лучше
5) замена токенайзера сильно роляет для мелких моделей
5) silu/gelu -вообще похуй, влияния на capacity нет
Quantization vs Scaling Laws
В целом все понятно, при уменьшении с fp16-> fp8 разницы нет, в fp4 вам пизда все хуже в 2 раза
Mixture of Experts vs Scaling Laws
МОЕ убивает 30% если показали 1000 раз и 50% если показали 100 раз. Короче приемлимо
Junk Data vs Scaling Laws
Короче если доливать мусорные данные - модель будет намного хуже(в 20 раз). фильтрация - наше все.