После трёх команд модель запускается локально — всё остальное решается на третьем шаге. Проект называется Deltafin, а модель — Kimi K3 от Moonshot AI, и вся конструкция заточена под Apple Silicon Mac. Две главные цифры: полная установка требует примерно 1.7 TB на диске и выдаёт 15 секунд на токен, потоковая тянет около 215 GB и даёт 3+ минуты на токен, если эксперт не закэширован. Разница в одном: каждый токен читает 16 экспертов на 92 слоя, 25.8 GB данных. С локального NVMe это 4 секунды, по сети — минуты. Если места жалко, можно начать с потокового режима, а потом одной командой fetch_experts_all.py докачать всё остальное.
Тесты гоняли на M1 Max с 64 GB — самой медленной машине из всех. Это нижняя планка. Префилл пяти токенов сжали с 2429 секунд до 25, а декод с локальными экспертами ускорили примерно в 80 раз. Теперь каждые 15 секунд модель выплёвывает токен, и эти секунды раскладываются так: 5 секунд ждёт чтения resident spine весом 53 GB с диска, 4.3 секунды — чтение 16 выбранных экспертов, 3 секунды — применение spine, 2 секунды — attention и нормы на 93 слоях, 1 секунда — матричные умножения экспертов. На M3, M4 или M5 должно быть быстрее: выше пропускная способность памяти, мощнее GPU, шустрее SSD. А главное — на 128 GB машине spine просто остаётся в page cache, так что половина времени исчезает без всяких флагов.
Скорость выжимали десятками микрооптимизаций. Выяснили, что все тензоры одного эксперта лежат в шардах подряд, и скачивать его одним range-запросом по 17.55 MB через keep-alive соединения в 6.4 раза быстрее, чем по кускам. HTTP/2 оказался медленнее HTTP/1.1. Дисковый кэш хранит сырые байты шардов без контейнеров и парсинга. Холодное чтение экспертов через pread с флагом F_NOCACHE поднялось с 0.87 GB/s до 6.85 GB/s, уронив время с 40 секунд до 4.3 на токен. F_NOCACHE заодно не даёт 25 GB трафика экспертов вымывать из page cache нужные данные spine. Слои загружаются в два буфера, n-gram speculation бесплатно удлиняет повторяющийся текст, а самодельное NEON-ядро fused MXFP4 dequant+GEMV склеило деквантизацию и умножение в один проход. Int8-квантизация spine вдвое сократила ввод-вывод, а самописный Metal-шейдер поднял пропускную способность загрузки слоя с 43 GB/s до 297 GB/s.
Deltafin умеет притворяться OpenAI-совместимым сервером — достаточно запустить serve_openai.py и подсунуть base_url в привычный SDK. Реализованы эндпоинты /v1/chat/completions, /v1/completions и /v1/models, стриминг работает. Но авторы прямым текстом предупреждают: тайм-ауты ставьте в часах, а не секундах; на стриминговой установке длинный системный промпт может часами фетчить эксперты; декодинг жадный, temperature и top_p игнорируются; второй одновременный запрос получит 429. Это исследовательский артефакт для проверки идей, а не рабочий чат, и весь код открыт под MIT, кроме портированных кусков из flash-linear-attention и самих весов Kimi K3, которые живут по лицензии Moonshot AI.