Практический курс для системных инженеров: реализация инференса Qwen3 с нуля на чипах Apple с использованием массивов MLX, начиная с матричного умножения, с последовательным добавлением KV-кэша, квантования, непрерывной пакетной обработки и страничного KV-кэша для создания мини-версии vLLM, и завершением построением кодового агента.
Звёзды 4851 (+22 / 24ч)
Обоснование
- Четырёхнедельный маршрут: на 1-й неделе реализуйте внимание, RoPE, GQA, RMSNorm, MLP, сэмплирование и авторегрессионный цикл, используя только mlx.core; на 2-й неделе добавьте KV-кэш, матрично-векторное умножение с 4-битным квантованием и SIMD-предзаполнение; на 3-й неделе реализуйте непрерывную пакетную обработку, блочный приём запросов и страничный KV-кэш, чтобы внимание при декодировании и FlashAttention напрямую читали страницы
- Каждый оператор необходимо реализовать самостоятельно на Python, C++ или Metal, не используя готовые оптимизированные версии из MLX; MLX служит лишь эталоном корректности и базовой линией производительности
- Кодовый агент на 4-й неделе публикуется ежедневно, на данный момент открыт до 9-го дня: изменение файлов после одобрения, одиночные команды проверки, контрольные точки и восстановление, сжатие контекста, детерминированное тестирование и т.д.
Использование
- Учебные материалы находятся на skyzh.github.io/tiny-llm, начните с главы о настройке окружения; проверьте окружение командами: pdm install -v, pdm run check-installation, pdm run test-refsol -- -- -k week_1
- Упражнения выполняются в пакете tiny_llm, пакет tiny_llm_ref содержит эталонные решения для тестирования; следуйте порядку глав книги
Риски
- Требуется Mac на чипе Apple; автор предупреждает, что начиная с 3-го дня 4-й недели агент будет отправлять содержимое файлов модели, изменять файлы и выполнять команды, поэтому необходимо использовать временное рабочее пространство без ключей доступа
- Это учебный проект, а не производственный фреймворк инференса; репозиторий существует с 2025 года, лицензия Apache-2.0