English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гость
1 / ?
назад к урокам

Что предсказывает языковая модель

Движок вероятностного продолжения

Языковая модель принимает последовательность токенов & назначает вероятностное распределение тому токену, который придёт следующим. Подайте ей the cat sat on the & она выдаст вероятности по всему словарю: высокая масса на mat, floor, couch; низкая масса на xylophone, Tuesday.


Сэмплирование этого распределения, добавление токена & обратная подача: этот цикл генерирует текст по одному токену за раз. Автореgressive generation, названное так потому, что каждый шаг регрессирует на своём собственном предыдущем выводе.


Три числа определяют языковую модель


Размер словаря (V). Сколько различных токенов может генерировать модель. ANDREA-12M использовала 4 353 токена; ANDREA-120M использует 8 449.


Окно контекста (T). Сколько токенов помещается в один проход вперед. Модели ANDREA используют T = 1 024.


Количество параметров (P). Сколько обучаемых весов находится внутри. 12M, 120M и 480M называют семейство по P.


Семья из трёх


Вариантd_modelГоловыСлоиКонтекстПараметры
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Три регулятора масштабирования: d_model (ширина каждого внутреннего вектора), n_layer (глубина стэкированных блоков трансформера), n_head (параллельные проекции внимания). Словарный запас и контекст остаются фиксированными в пределах семейства.

Чтение таблицы семейства

Сравните ANDREA-12M (d_model=384, 6 слоёв, 12 голов) с ANDREA-120M (d_model=768, 12 слоёв, 12 голов). Назовите две архитектурные оси, которые масштабируются от 12M до 120M, и одну, которая остаётся постоянной. Одно предложение с причиной для каждого выбора масштабирования поможет.

Почему малое имеет значение

Ограничение как освобождение

Большие языковые модели с сотнями миллиардов параметров требуют тысяч GPU, проприетарных наборов данных и корпоративных бюджетов. Немногие могут обучить такую модель. Немногие могут её ремонтировать.


Маленькая языковая модель на одной GPU меняет это. Любой, у кого есть 4090 (или 3060), может воспроизвести ANDREA из открытых данных. Рецепт обучения одновременно служит модельной картой. Открытый код, открытые веса, открытые данные; полная провенансность за 72 часа вычислений.


Ёмкость против качества

Меньшие модели не могут запомнить свой обучающий корпус. ANDREA-12M с 12,8 млн параметров не имеет ёмкости для хранения фактического содержимого; она изучает структуру ходов, распределение словаря и форму ответа. ANDREA-120M с ёмкостью в 10 раз больше изучает фактическое вспоминание, связность многоабзацных текстов и широту доменов (проверено внешней оценкой на 9,5/10 по выборкам по биологии и обработке сигналов).


Главный вывод: ёмкость устанавливает потолок. Учебная программа определяет, будет ли этот потолок достигнут. Активности 14-23 охватывают учебную программу. [TITLE decoder_only/]

Три варианта трансформера

Энкодер, Декодер, Оба

Оригинальный Transformer (Vaswani et al., 2017) включал энкодер и декодер, склеенные вместе для перевода. От этой статьи произошли три архитектурные линии:


Только энкодер (линия BERT). Двунаправленное внимание, без причинной маски. Оптимизировано для классификации, а не генерации. Токен видит и своё прошлое, и своё будущее во время обучения.


Encoder-decoder (T5, BART). Энкодер читает вход; декодер генерирует выход, используя кросс-аттеншн к энкодеру. Используется для перевода, суммаризации.


Decoder-only (GPT, ANDREA). Causal mask: каждый токен видит только прошлое. Обучается предсказывать следующий токен. Генерация бесплатна; обучение и инференс используют один и тот же forward pass.


Почему Decoder-Only побеждает на одной GPU

Три причины:


1. Единая цель. Предсказание следующего токена работает на любом тексте. Не нужны пары источник/цель.

2. Симметрия обучения и инференса. Один и тот же прямой проход, без специальной логики генерации.

3. Простота памяти. Нет кросс-аттеншена; один стек слоёв; один поток активаций.


ANDREA наследует выбор decoder-only от microGPT, который унаследовал от nanoGPT, который унаследовал от GPT-2. Линия остаётся стандартной; то, что меняется, живёт в токенизации, инфраструктуре обучения и учебном плане.

Почему Decoder-Only для ANDREA

Приведите одну причину с точки зрения обучающих данных и одну причину с точки зрения поведения инференса, почему ANDREA использует трансформер decoder-only вместо encoder-decoder, как в T5.

Что помещается в 24 ГБ

Байт на параметр

RTX 4090 поставляется с 24 ГБ VRAM. Обучение ANDREA-12M использовало 1,4 ГБ. ANDREA-120M использовало существенно больше. Разница объясняется простым упражнением по учёту: каждый параметр появляется несколько раз в памяти во время обучения.


Для каждого параметра обучение хранит:

- Сам вес (1× вес)

- Первый момент Adam (m): такая же форма, как у весов (1× веса)

- Второй момент Adam (v): такая же форма, как у весов (1× веса)

- Градиенты: такая же форма, как у весов (1× веса)

- Активации и временные переменные: ~2-4× веса (варьируется в зависимости от батча и контекста)


Итого: ~6-8× от количества весов, в байтах определяется точностью.


Точность умножает всё


ТочностьБайт/парам.Всего для 120M весовПримечания
FP324480 МББазовая; самая безопасная, самая медленная
FP162240 МБcuBLAS, вдвое меньше памяти
FP8 E4M31120 МБTensor cores, риск NaN

Умножьте на 6-8× для полного объёма памяти во время обучения. ANDREA-120M комфортно обучается в FP16 (~2 ГБ для весов + оптимизатор + градиенты); FP8 E4M3 вдвое сокращает время обучения на tensor cores RTX 4090.


Активность 13 (grow_a_language_model_precision) подробно разбирает компромиссы точности FP.

Размер состояния оптимизатора ANDREA-120M

ANDREA-120M содержит ~120 000 000 параметров. Каждый вес FP32 занимает 4 байта. AdamW хранит два дополнительных float состояния оптимизатора на вес (m, v). Вычислите: (a) только веса в FP32, в МБ; (b) веса + состояние оптимизатора в FP32, в МБ; (c) веса + состояние оптимизатора в FP16, в МБ. Покажите вычисления.

Двадцать пять заданий

Две половины

Этот курс делится четко. Первая половина охватывает то, чему microGPT научил область: трансформер, который работает на одной GPU. Вторая половина охватывает реальный вклад ANDREA: учебный план, который учится.


Половина 1: Трансформер на одной GPU (задания 2-13)


#ЗаданиеЭтап
2Токенизатор морфем Харрисараспределочная сегментация, словарь 256+N+1
3Выравнивание токенизатор-диетаточка насыщения, почему 12M потратили 63.6%
4Вложения и позицияобученные токены + поиск позиции
5Масштабированное скалярное произведениеQ·Kᵀ/√d, причинная маска, softmax
6Многоголовое вниманиеразделение на головы, параллельные проекции
7Блок трансформераMLP, остатки, нормализация слоя
8Кросс-энтропия и перплексиялогарифмическая вероятность, потеря SMMA
9Обратное распространение в custom CUDAправило цепочки через microgpt_cuda.cu
10AdamWразвязанный затухание весов; почему обычный Adam умер
11LR warmup + cosine decay2000-шаговый разгон; почему мгновенный пик уничтожает 120M
12Gradient clippingглобальная L2 норма; 3 CUDA-ядра
13FP32 / FP16 / FP8 E4M3компромиссы точности; тензорные ядра

Вторая половина: Учебный план, который учится (активности 14-24)


#АктивностьПобеда
14Многорукие бандитыUCB1, исследование против использования
15Фазовый контроль кубиков7/14/21/28/42 фазы, 1d3/1d4 кубики
16Атрибуция вознаграждений и EMAEMA потерь по источникам, масштабирование 1000×
17Минимальные уровни источников и штраф за эпохи1/(1+epochs) предотвращает запоминание
18Бонус за покрытиеотслеживание на уровне документа, 1.3× свежесть
19Разогрев по учебному плану7 чат/проза источников первые 20K шагов
20Фильтрация по форме, не по символамhas_system_prompt_shape()
21Ранний останов с контролем когерентностиbigram/trigram/word/char auto-halt
22Чекпоинты, возобновление, сигналыformat, SIGTERM/SIGUSR1, loss.json continuity
23Аудит выборки и внешняя оценкачтение запуска, территория 9.5/10
24От microGPT к ANDREA-120Mv1 collapse, v2 fixes, v2.5 patch, v3 polish

Плюс компаньон: geometry_of_andrea рассматривает каждый слой как геометрию (пространство встраиваний, внимание как проекцию, поверхность потерь, бандит как прогулку по дискретному симплексу).


Рекомендуемый порядок

Занятия 2–13 строят работающий трансформер. Пропустите к половине 2, если вы уже обучали трансформеры; возвращайтесь, когда любопытство возьмет верх.


Каждое занятие, где возможно, самодостаточно. Ссылки на математику отсылают к предыдущим занятиям по имени (см. занятие 5: scaled dot-product attention). Ссылки на код указывают на microgpt/microgpt_cuda.cu & microgpt/training_proxy.py в ~/git/uncloseai-cli/.

С чего вы начнете?

Глядя на 24 занятия + геометрического компаньона, назовите одно занятие, с которого хотите начать, & одну причину: пробел в знаниях, профессиональная релевантность или чистое любопытство. Нет неправильного ответа; путь через курс — ваш.