← На главную

Хаб курсов / LLM Inference Systems

LLM Inference Systems: от matmul до своего движка

версия 1.0.018 главкод запускается локальноматериалы курса ↗подписка на обновления ↗

Курс для системных инженеров, которые хотят понимать LLM-инференс до кернелов: как токены превращаются в текст, где тратится память и почему декодинг ограничен bandwidth, а не FLOPs. Ядро — tiny-llm (MLX, Apple Silicon), расширения — CUDA-путь (llm.c, FlashAttention), llama.cpp и vLLM. Каждый модуль: runnable-код, проверка на оракуле и лабораторная.

Модуль 00: Нужен ли тебе свой движок инференса и ландшафт путей
Три пути к своему LLM-движку: MLX/Apple Silicon, CUDA/PyTorch, CPU/GGUF. Арифметика памяти, Qwen3 как подопытная, ландшафт сервинга vLLM, SGLang, llama.cpp.
Модуль 01: От matmul к тексту: тензоры и базовые операторы
Matmul, RMSNorm, embedding и Linear руками на numpy с проверкой на оракуле. Почему декодинг ограничен памятью, а не FLOPs.
Модуль 02: Attention, RoPE и GQA
Attention с causal mask, Multi-Head, GQA и RoPE на numpy. Проверка против torch и позиционная зависимость.
Модуль 03: Автогрессивный цикл и сэмплирование
От логитов к токену: temperature, top-k, top-p. Полный forward Qwen3-0.6B на torch CPU и сверка с transformers.
Модуль 04: KV-кэш и арифметика памяти
KV-кэш: prefill и decode, формула памяти кэша, GQA-экономия, capacity-cache. Ускорение больше 10x на реальном прогоне.
Модуль 05: Квантование весов: W4 и GGUF
Групповое int4-квантование, quantized matvec, формат GGUF и k-quants llama.cpp, GPTQ и AWQ в двух словах.
Модуль 06: Кернелы: SIMD-матмул и tiled prefill
Иерархия памяти, roofline, AVX2-кернел matvec на C, Metal и CUDA-листинги, tiled prefill.
Модуль 07: Fused-операторы и FlashAttention
Fusion убирает трафик HBM: fused RMSNorm и SwiGLU, FlashAttention с online softmax на numpy.
Модуль 08: Continuous batching и чанкерная префилла
Статический против continuous батчинга, Orca, chunked prefill, симулятор шедулера с метриками TTFT и throughput.
Модуль 09: PagedAttention: пейджинг KV-кэша
KV-кэш как виртуальная память: BlockPool, BlockTable, prefix sharing, copy-on-write, paged attention.
Модуль 10: Дистрибуция и спекулятивный декодинг
Tensor и pipeline parallel, арифметика из How to Scale Your Model, спекулятивный декодинг и MTP.
Модуль 11: Прод-сервинг: метрики и движки
TTFT, TPOT, p95 против средних, llama-server и vLLM, prefix caching, стриминг и наблюдаемость.
Модуль 12: Финальный проект: мини-движок инференса
Собираем qwen-serve-lite: шедулер, paged KV, int4, сэмплер, SSE-сервер. Приёмка шестью тестами.
Модуль 13: KV-хэндофф: передача кеша между моделями и узлами
PD-дизагрегация, RDMA-транспорт (Thunderbolt, ConnectX), перенос кэша внутри семейства (ridge-маппер, CacheBridge) и между семействами (SwaT). Симулятор хэндоффа и ridge-маппер на numpy.
Модуль 14: Разреженное внимание и длинный контекст
Четыре оси внимания, MoBA и block-sparse гейтинг, attention sink, KeyDiff-эвикшн, SpecAttn. Block-sparse маска и эвикшн-эксперимент на numpy.
Модуль 15: Самоспекулятивный декодинг: драфтер внутри модели
Слой-скип драфт и полная верификация, S2-MoE, SpecAttn, экономика acceptance против стоимости драфта. Эксперимент на toy-модели с адаптивной длиной драфта.
Модуль 16: Как не обмануться числом: методология замера
TTFT/TPOT перцентилями, throughput-latency Парето, препринт-гигиена, приёмочные гейты correct/min. Бенчмарк с прогревом, N=30 и доверительными интервалами.
Модуль 17: Unified memory и гибридные ноды: четвёртый путь инференса
Аппаратная ось поверх MLX/CUDA/CPU: Apple M, AMD Strix Halo, NVIDIA DGX Spark, placement, MoE expert offload и гибридная нода с fast-head.

Обновления курса

Следить за новыми версиями можно через GitHub: включите Watch → Custom → Releases, либо подпишитесь на RSS-ленту релизов https://github.com/skyzh/tiny-llm/releases.atom. Полная инструкция находится в SUBSCRIBE.md.