Коротко
Это блэкборд-лекция Дворкеша Пателя с Райнером Поупом (CEO чип-стартапа Maddox, ранее — архитектура TPU в Google) о том, как физика памяти и компьюта на кластере чипов определяет всё: цены API, размеры моделей, длину контекста и темп прогресса ИИ. Центральный инструмент — roofline-анализ: время инференса ≥ максимума из времени на фетч памяти (веса + KV-cache) и времени на компьют (активные параметры × батч ÷ flops). Из этого выводится, что оптимальный размер батча ≈ 300 × sparsity (≈2000 токенов на frontier-моделях), что MoE раскладывается expert-parallel ровно в один rack (all-to-all коммуникация = физтопология стойки), а pipeline-параллелизм по слоям позволяет шардить веса по стойкам, но не спасает от KV-cache. Поуп показывает, как из публичных цен API (×50% за длинный контекст, ×5 output vs input, ×10 за cache-hit) реверс-инжинирится архитектура: ~2 КБ/токен KV, memory-bandwidth-bound декод, кэш-тиры от HBM до spinning disk. Финал — обратный вывод: чтобы train+inference-компьют был минимален, число inference-токенов ≈ числу pretrain-токенов ≈ числу RL-токенов, и frontier-модели over-trained в ~100 раз относительно Chinchilla-оптимума.
Главный тезис
Как только понимаешь две простые величины — время на работу с весами и время на работу с контекстом (KV-cache) — относительно memory bandwidth и flops чипа, почти всё в современном ИИ (цены, архитектуры, размеры, прогресс) перестаёт быть магией и выводится из первых принципов простой алгеброй.
Ключевые идеи
- 1:42 — Главный рычаг latency↔cost в инференсе — batch size; без батчинга экономика хуже в ~1000 раз, чем с батчингом многих пользователей вместе.
- 3:02 — Время инференса моделируется как max(время памяти, время компьюта), где компьют = batch × активные параметры ÷ flops, а внимание игнорируется как малое.
- 5:13 — Память делится на два слагаемых: weight fetch (все total-параметры, константа по батчу) и KV-cache fetch (линейно растёт с батчем и контекстом).
- 10:16 — Для данного железа есть нижняя граница latency: прочитать все параметры из памяти в чипы, быстрее физически нельзя.
- 13:14 — Cost = T/B: при батче 1 стоимость почти бесконечна (веса не амортизированы), с ростом батча падает до compute-предела (гипербола weight-fetch + плато компьюта).
- 18:28 — Точка баланса memory=compute даёт flops/bandwidth ≈ 300 (безразмерная константа, стабильна A100→H100→B100), откуда оптимальный батч ≈ 300 × sparsity.
- 20:28 — Практический батч frontier-модели ≈ 2000 уникальных последовательностей, и это зависит только от sparsity, не от размера модели.
- 22:15 — Батч работает как расписание поезда: новый поезд каждые ~20 мс, кто готов — садится; worst-case queue latency ≈ 40 мс.
- 24:03 — Магические 20 мс = capacity/bandwidth HBM, время полностью прочитать память; не хочется читать веса или KV дважды.
- 29:44 — Sparsity (MoE) даёт слабую отдачу по качеству: нужно ×100 total-параметров ради эквивалента ×10 active; но по системному анализу это чистый выигрыш, пока есть пользователи для большого батча.
- 35:11 — MoE требует all-to-all коммуникации, и это идеально ложится на один Blackwell-rack (72 GPU); выход за стойку = бутылочное горлышко (scale-out в ~8 раз медленнее).
- 36:27 — Одна стойка ограничивает размер expert-слоя — это и двигало индустрию к большим interconnect-доменам (Hopper 8 → Blackwell 72 → Rubin ~500).
- 33:48 и 48:28 — Из 4 осей нарезки модели прибыльны только expert-parallel (внутри стойки) и pipeline-parallel по слоям (между стойками); tensor-parallel умер из-за мелких экспертов.
- 1:01:16 — Pipelining в инференсе нейтрален к latency, экономит лишь memory capacity весов, но P сокращается из KV-члена — KV-cache становится доминирующим и не шардится.
- 1:21:40 — Чтобы минимизировать сумму train+inference компьюта, надо уравнять затраты: эвристически inference-токены ≈ pretrain-токены ≈ RL-токены.
- 1:32:10 — Frontier-модели over-trained в ~100 раз относительно Chinchilla (≈200 трлн токенов vs ≈2 трлн оптимума).
Почему это важно
Лекция объясняет, почему ИИ устроен именно так и кто на этом выигрывает. NVIDIA двигает rack-домены (72→500 GPU) не ради памяти, а ради memory bandwidth — главного бутылочного горлышка для длинного контекста и низкой latency; Google ранее имел крупные scale-up домены, что частично объясняет лидерство Gemini. Гиперскейлеры тратят, по словам Dylan Patel, ~50% capex (высокие сотни миллиардов) на память — отсюда дефицит и падение поставок смартфонов/ноутбуков. Лаборатории (OpenAI, Anthropic, DeepSeek) балансируют sparsity, over-training и RL-бюджеты, и эти решения утекают через цены API. Для нового чип-стартапа вроде Maddox понимание этих roofline-границ — буквально условие конкурентоспособности (нужно уметь обслуживать хотя бы ~1/1000 трафика Gemini, т.е. сотни тысяч токенов/сек).
Идеи
- Можно платить больше за скорость (FastMode) потому, что меньший батч → меньше latency, но выше cost на токен — это движение влево по той же кривой.
- «Cloud Code slow mode» теоретически возможен, но упирается в нижнюю границу cost: KV и компьют уникальны на батч и не амортизируются дальше.
- Sparse attention DeepSeek даёт √(контекст) вместо линейного роста KV-fetch — единственный реальный «выход» к длинному контексту.
- Балансные точки в анализе (совпадение наклонов) — сигнал «всё настроено идеально»: равно memory-bound и compute-bound.
- Выйти за «Goldilocks-зону» контекста (100k→200k) рушит MFU вдвое при dense attention.
- Батч — это число последовательностей в одном forward-pass, а не пользователей; «2000» = 2000 параллельных генераций по одному токену.
- Реальный батч берут в 2–3 раза больше расчётного баланса, т.к. реальная эффективность ниже roofline.
- Gemini в прошлом году — сотни миллионов токенов/сек глобально; 1/1000 этого уже «много».
- В стойке NVIDIA GPU стоят снаружи, NVSwitch'и внутри — любой GPU достаёт любой за 2 хопа.
- Scale-up (NVLink) ~×8 быстрее scale-out (data-center switch); половина токенов при двух стойках вынуждена идти по медленному пути.
- Hopper→Blackwell — это просто переход «tray → rack» как форм-фактора, без техбарьера; Blackwell→Rubin — настоящий ×4 на новом дизайне стоек.
- Бутылочное горлышко стоек — физическая плотность кабелей (bend radius, backplane), а не электроника; «места вроде много, но напихать кабели нельзя».
- Лучшая стратегия параллелизма буквально повторяет архитектуру модели: эксперты → разные GPU, слои → разные стойки. Не «galaxy brain», а физическое отражение.
- Pipeline bubble в инференсе заполняется тривиально (forward только); в обучении нужен hard-stop перед backward → micro-batches → потеря амортизации весов.
- В обучении меньший батч лучше для скорости сходимости (свежий градиент), но хуже системно — оптимум посередине.
- Zero-bubble / 1F1B схемы интерливят forward/backward; в простаивающее окно «можно майнить биткоин» (полушутка про weight-gradient step).
- В инференсе pipelining почти не используют: rack Blackwell держит десятки ТБ, а триллион-параметров = ~1 ТБ, памяти и так избыток.
- Избыток HBM намекает: можно было спроектировать железо с меньшим HBM/GPU, если веса шардить по 8 стойкам.
- Двухтарифное ценообразование (×1.5 за >200k контекста) аппроксимирует точку перегиба memory-vs-compute — провайдер хочет быть прибыльным при любом контексте.
- Из цены ×50% за длинный контекст реверсится ~2 КБ/токен KV — правдоподобно для dense attention с шарингом global-контекста между слоями (как Character.ai, Gemma).
- Output дороже input в ~5 раз → prefill compute-bound, decode сильно memory-bandwidth-bound (соотношение «прижато» к 1:5).
- Cache-hit дешевле ×10: вопрос «пересчитать KV из токенов» vs «достать из памяти»; cache-miss = удалили отовсюду.
- Тиры кэша (HBM/DDR/Flash/spinning disk) выбираются по drain time = capacity/bandwidth; «5 минут vs 1 час» в API вероятно = Flash vs spinning disk.
- Spinning disk всё ещё используется для KV-кэша, хотя «полная загрузка занимает час» — шокирующе старо, но дёшево.
- RevNets (2017–18) импортировали Feistel-сеть из криптографии в нейросети: обратимый слой → не хранить активации, рем材ериализовать на backward (компьют ради памяти).
- KV-cache — обратная сделка: память ради компьюта, и это обычно выгоднее на текущем железе.
- Криптошифры и нейросети «перемешивают» одинаково, но цели противоположны: шифр прячет структуру в случайность, нейросеть извлекает структуру из шума.
- Adversarial-атака на картинку (малое возмущение → смена класса) = нежелательный случай для нейросети, но штатный avalanche-эффект для шифра.
Инсайты
- Архитектура ИИ — это не выбор «лучшей идеи», а проекция физических констант железа (bandwidth, flops, плотность кабелей) на математику модели; топология вычислений сходится к топологии стойки.
- Почти любую экономическую величину (размер батча, цену токена, размер модели, степень over-training) можно вывести алгеброй из roofline, потому что ошибки имеют огромные error bars и порядок важнее точности.
- Память, а не компьют, — фундаментальная стена ИИ: memory bandwidth ограничивает контекст и latency, memory capacity решается pipeline'ом, но KV-cache не амортизируется ни по батчу, ни по pipeline-стадиям.
- Sparsity и число пользователей взаимозаменяемы: чем больше трафика, тем более разреженную (дешёвую по компьюту) модель можно держать прибыльно — экономика инференса толкает к централизации, но умеренно.
- Большие interconnect-домены ценны не объёмом памяти, а суммарной bandwidth (scale-up × bandwidth/GPU), которая выросла ×8 поколение-к-поколению, тогда как bandwidth одного GPU — лишь ×1.5–2.
- Прогресс размеров моделей тормозился не возможностью обучить, а возможностью дёшево инферить большую модель — ждали стойки с достаточной bandwidth и памятью под KV.
- Оптимум распределения компьюта между фазами достигается там, где затраты выровнены, и для степенных законов это надёжная эвристика — отсюда «inference-токены ≈ pretrain-токены».
- Цены API — это утечка архитектуры: рынок заставляет цену прижиматься к себестоимости, поэтому из тарифов вычитываются bytes/token, кэш-тиры и режим bottleneck.
- Системы памяти строятся как иерархия тиров, где время хранения сопоставляется с drain time носителя — оптимум там, где доля занятой ёмкости равна доле времени на извлечение.
- Обратимость (Feistel/RevNet) и кэширование — две стороны одной торговли «компьют↔память», и направление сделки диктуется тем, что на текущем железе память дороже компьюта.
- Криптография и глубокое обучение — конвергентная эволюция механизма перемешивания при противоположных целях; различие — в дифференцируемости и residual/layer-norm, которые делают нейросеть «ручной».
Фреймворки
Roofline-анализ инференса (две величины). Время одного forward-pass ≥ max(T_memory, T_compute), где:
- T_compute = (batch × N_active) / flops
- T_memory = N_total/bandwidth (веса) + (batch × context × bytes/token)/bandwidth (KV)
Оптимальный батч. Приравнивая T_memory(веса) = T_compute: batch ≳ (flops/bandwidth) × sparsity ≈ 300 × sparsity; на практике берут ×2–3.
Четыре оси параллелизма. Модель масштабируется по: (1) слоям, (2) d_model, (3) d_ff, (4) числу экспертов. Резать прибыльно только по экспертам (expert-parallel, внутри стойки, all-to-all) и по слоям (pipeline-parallel, между стойками). Tensor-parallel (резка внутри эксперта) умер из-за мелких экспертов.
Условие отсутствия pipeline-бутылочного горлышка. (время scale-up)/(время scale-out) ≥ 1, т.е. произведение [1/8 bandwidth] × [число активных экспертов] × [слоёв на стадию] × 2 ≥ 1 → нарастить слои/стадию, пока не выполнится.
Память на GPU. c_mem = (N_total + batch × context × bytes)/(E × P); при pipeline'е P сокращается из весового члена, но не из KV-члена.
Баланс компьюта train/inference. 6·N·D_pretrain + α·6·N·D_RL + 2·N·D_inference, уравнять три члена (α≈1/10…2/10 из 2–6 flops и неэффективности RL-декода) → D_inference ≈ D_pretrain ≈ D_RL.
Тиры памяти для KV-кэша. Выбор тира по drain time = capacity/bandwidth (HBM ~20 мс, DDR ~секунды, Flash ~минута, spinning disk ~час); оптимум — доля занятой ёмкости = доля времени извлечения.
Цитаты
«the big effect is batch size, but what we're going to do now is quantify exactly what that looks like» — 1:42 главный эффект — размер батча, но сейчас мы точно измерим, как это выглядит
«if you do not batch together many users, the cost and the economics you get can be like a thousand times worse» — 4:25 если не батчить много пользователей вместе, экономика может быть в тысячу раз хуже
«If I use all of my memory bandwidth, I can't do any better than that» — 10:31 если я использую всю свою memory bandwidth, лучше уже не сделать
«whenever we have balance points, it kind of says that you're getting it exactly right» — 11:25 когда у нас есть точки баланса, это значит, что ты попал точно в цель
«You can think of this as a schedule for the train. A new train departs every 20 milliseconds» — 22:56 Думай об этом как о расписании поезда. Новый поезд отходит каждые 20 миллисекунд
«this all-to-all pattern of communication is a perfect fit for the communication pattern that the MOE actually wants to do» — 35:45 этот all-to-all паттерн коммуникации идеально подходит под то, что MoE и хочет делать
«one rack actually bounds the size of an expert layer you can do» — 36:27 одна стойка фактически ограничивает размер expert-слоя, который ты можешь сделать
«It's literally the physical space to put a cable that's constraining it» — 43:19 Буквально физическое место под кабель — вот что является ограничением
«It's interesting to me that the best parallelism strategy in practice ends up being one which physically resembles the actual architecture» — 53:11 Мне интересно, что лучшая стратегия параллелизма на практике физически повторяет саму архитектуру модели
«smaller is always better because basically you're getting the freshest information from the gradient descent» — 59:44 меньше всегда лучше — ты получаешь самую свежую информацию от градиентного спуска
«The KV cache becomes the dominant term» — 1:11:49 KV-кэш становится доминирующим членом
«each model should generate the sum of human knowledge on the output that it gets on the input» — 1:28:58 каждая модель должна сгенерировать на выходе сумму человеческих знаний, которую получила на входе
«it's kind of empowering to just set A equal to B and figure it out» — 1:32:45 есть что-то воодушевляющее в том, чтобы просто приравнять A к B и всё вычислить
«I think it's because there is no solution to the memory wall» — 1:54:54 думаю, это потому что у memory wall нет решения
«cryptographic protocols are trying to take information which has structure and make it look indistinguishable from randomness» — 2:04:36 криптопротоколы берут структурированную информацию и делают её неотличимой от случайности
«Spending more memory to save compute is generally profitable, given where hardware is at» — 2:13:20 Тратить память ради экономии компьюта обычно выгодно — учитывая, где сейчас железо
Факты
- DeepSeek V3: ~37 млрд активных параметров из ~700 млрд total; активирует 32 из 256 экспертов (sparsity ≈8); опубликован sparse-attention механизм с √-членом.
- Blackwell NVL72 — стойка из 72 GPU; на практике для делимости берут 64 (256 экспертов DeepSeek → 4 эксперта/GPU).
- Соотношение flops/bandwidth ≈ 300 на большинстве GPU, стабильно от A100 к H100 к B100.
- Магическая константа ~20 мс = capacity/bandwidth HBM; для поколения Rubin: 288 ГБ / 20 ТБ/с ≈ 15 мс.
- Scale-out сеть примерно в 8 раз медленнее scale-up (NVLink) по bandwidth.
- Рост interconnect-доменов NVIDIA: Hopper 8 → Blackwell 72 → Rubin ~500 (в Rubin «есть Jensen-math, но реальный ×4»).
- Hopper: 8 GPU ≈ 640 ГБ (2022); Blackwell (развёрнут ~прошлый год): scale-up порядка 10–20 ТБ — хватает на 5T-модель + KV-cache.
- Gemini (анонсы прошлого года): трафик в сотни миллионов токенов/сек глобально; расчётная система ~2000 батч × 64 ≈ 128k токенов/сек ≈ 1/1000 Gemini.
- GPT-4 выпущен в 2023, по слухам >1 трлн параметров; контексты выросли с ~8K (GPT-3) до 100K–200K и «зависли» там последние год-два.
- По словам спикера, Dylan Patel: гиперскейлеры тратят ~50% capex этого года на память; общий capex — «высокие сотни миллиардов, возможно триллион».
- Цены API (примеры из лекции, частично «по памяти»): Gemini 3.1 на +50% дороже за >200k токенов; output ~×3–5 дороже input; cache-hit ~×10 дешевле; base input ~$5/млн токенов, запись на 5 мин ~$6.25/млн.
- Реверс-расчёт KV: ~1667 байт/токен (≈2 КБ) при d_head=128, 8 KV-heads — правдоподобно для dense attention с шарингом global-контекста.
- Frontier-модель (оценки спикера, «не уверен»): ~100 млрд активных параметров, обучена на
150 трлн токенов; Chinchilla-оптимум ≈ 20×100млрд ≈ 2 трлн → **×100 over-trained**. - RevNets (Reversible Networks) — статья 2017–18; Feistel-сеть в криптографии используется до сих пор как один из главных механизмов построения шифров; MoE существует «примерно с 2017».
- Drain time носителей (оценки спикера): HBM ~20 мс, DDR ~1–10 с, Flash ~1 мин, spinning disk ~1 час.
Источники
- «Unified Scaling Laws for Routed Language Models» — статья о влиянии sparsity (expert count) на качество при фиксированных active-параметрах.
- Chinchilla scaling laws — соотношение размера модели и объёма обучающих данных (×20 токенов на параметр).
- DeepSeek — публикации по fine-grained mixture of experts и sparse attention.
- G-Shard / Switch Transformer — более ранние техники MoE.
- RevNets (Reversible Networks) — обратимые сети, импорт Feistel-конструкции в нейросети.
- Character.ai — блог-пост об alternating long/short context и шаринге global-контекста между слоями; та же идея в Gemma.
- Блог-пост Райнера Поупа о параллелях между криптопротоколами и нейросетями (differential cryptanalysis, avalanche property).
- Упомянутые люди: Dylan Patel (capex на память), Ilya Sutskever («today we know not to do pipeline parallelism»), Horace (лекция о parallelisms, Kimi-residuals), Dario Amodei (in-context learning vs continual learning), Clark и Axel (инженеры Jane Street — FPGA, GPU-перформанс).
- Maddox — чип-стартап Поупа; Reiner's scaling book — упомянут как материал для подготовки.
Итог
Вся экономика и архитектура ИИ — это бухгалтерия двух чисел, времени на веса и времени на контекст относительно bandwidth и flops чипа: пойми их — и цены, размеры, контекст и темп прогресса выводятся школьной алгеброй, упираясь в одну стену — память.