April 28

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 - количество уникальных фич в датасете - ну номера паспортов, даты, токены и прочее

T - размер словаря

L,C - длинна чанка знаний

Когда авторы переписывали через 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.

7. GPT2 реализует нормализацию слоев с обучаемым bias

Исходя из метрик авторы говорят: особой разницы и прироста нет, везде примерно одинаковые цифры, забейте. Учите то что лучше учится.

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 раз). фильтрация - наше все.