Flint — открытая MoE-модель под агентный кодинг: 39,8 млрд параметров всего, около 2,5 млрд активных на токен, лицензия Apache 2.0 и упор на скорость на локальном железе. Разбираем архитектуру, цифры авторов, варианты весов и реальные требования к GPU.
23 октября 2026 года компания Recursive выложила на Hugging Face модель Flint — MoE-трансформер на 39,8 млрд параметров, из которых на каждом токене работают примерно 2,5 млрд. Модель обучена с нуля под одну задачу: агентный кодинг на локальном железе — исследовать репозиторий, чинить баги, писать тесты, вызывать инструменты. Веса открыты под Apache 2.0, а вместе с ними публикуется собственный инференс-движок rec и серверный кит под SGLang.
Flint — не файнтюн чужой модели и не «ещё один» форк. Recursive утверждает, что модель обучена с нуля: претрейн, мидтрейн, SFT и RL. Разработка заняла меньше четырёх месяцев, и компания прямо говорит, что значительную часть работы сделала её система автоматизации исследований Eureka Machine — от данных и рецептов обучения до оптимизации инференса.
Ключевая ставка — разреженность. При 39,8 млрд общих параметров активны только ~2,5 млрд на токен, то есть около 6% весов. Для локального железа это важнее абсолютного размера: чтение весов из памяти на каждом шаге определяется именно числом активных параметров, а не общим размером чекпоинта. Отсюда и заявленная скорость: авторы говорят о более 125 токенов в секунду на MacBook Pro с M4 Pro и более 150 токенов в секунду на NVIDIA RTX Spark с 64 ГБ памяти на коротких контекстах.
Отдельно стоит проговорить, чем Flint НЕ является. Это не чат-модель общего назначения и не замена большим закрытым моделям в сложных рассуждениях: в блоге релиза сказано, что модель может требовать больше указаний, чем крупные проприетарные coding-модели. Позиционирование честное — «ежедневная модель для задач, которые не хочется отправлять на чужой сервер».
Карточка модели даёт необычно детальную спецификацию — это удобно, потому что по ней видно, куда авторы вкладывались. 49 слоёв: два плотных и 47 MoE. Внимание гибридное — 35 слоёв со скользящим окном и 14 слоёв с полным вниманием. Окно скользящего слоя — 513 токенов (текущий плюс 512 предыдущих). Головы: 32 query и 4 key/value при размерности головы 128, плюс per-head QK RMSNorm и обучаемые attention sinks. Позиционное кодирование — RoPE на скользящих слоях.
| Параметр | Значение | Зачем это нужно |
|---|---|---|
| Всего параметров | 39,8 млрд | общий размер чекпоинта BF16 ~79,6 ГБ |
| Активных на токен | ~2,5 млрд (включая выходную голову) | дешёвый декод на локальном железе |
| Слои | 49: 2 плотных + 47 MoE | разреженность на большей части стека |
| Внимание | 35 слоёв sliding-window, 14 full | экономия на длинном контексте |
| Скользящее окно | 513 токенов | локальная связность кода |
| Головы | 32 Q / 4 KV, dim 128 | компактный KV-кэш |
| Нормализация | per-head QK RMSNorm, attention sinks | стабильность на длинных сессиях |
| Контекст | до 512k токенов | работа по крупным репозиториям |
Схема с двумя плотными слоями и MoE-стеком — типовой приём для «локальных» моделей 2025–2026 годов, но у Flint нестандартно длинное скользящее окно для такого числа слоёв. Практический смысл: KV-кэш растёт медленнее, и длинная агентная сессия с десятками вызовов инструментов не упирается в память так быстро, как у плотной модели того же класса.
Recursive публикует три числа по агентным наборам: 54,9% на Terminal-Bench 2.1, 74,2% на SWE-bench Verified и 89,7% на SWE-bench Pro v2. Условия замеров указаны в карточке: температура 1.0, top-p 0.95, top-k 20; для агентных тестов — таймауты до 5 часов и средний pass@1 минимум по пяти попыткам. Terminal-Bench прогоняли на Terminus 2, а решения, полученные поиском в интернете, засчитывались как неуспешные.
Вторая группа заявлений — не качество, а скорость. По блогу: более 125 токенов/с на M4 Pro, более 150 токенов/с на 64-ГБ NVIDIA RTX Spark на коротких контекстах, до двух раз быстрее моделей своего класса и более чем в пять раз быстрее плотных моделей на 25–40 млрд параметров с сопоставимыми баллами. Скорость измерялась как среднее по сессии на 128k токенов, без префилла.
Мы не воспроизводили эти замеры и не можем их подтвердить. Что можно проверить объективно уже сейчас — размеры чекпоинтов, число загрузок и активность репозитория движка: об этом ниже.
Здесь начинается самое важное для практики. Полный BF16-чекпоинт — это 15 шардов общим весом около 79,6 ГБ, и серверный кит требует одну GPU с минимум 141 ГБ памяти: B300/B200 (Blackwell) или H200 (Hopper). В документации кита прямо сказано: 80-гигабайтные карты не поддерживаются. То есть «локально» в случае BF16 — это не рабочая станция, а серверный узел.
Первый старт на B300 с весами на быстром локальном диске занимает около четырёх минут; если несколько реплик читают веса из сетевого хранилища одновременно — до 15 минут. Помимо весов нужно около 50 ГБ на образ. Для H200 используется скрипт serve_h200.sh с бэкендом внимания FA3, для B300 — FA4 и MoE-раннер FlashInfer. Есть и конфигурация на 8 GPU (serve_node_8x.sh).
Сервер по умолчанию слушает 0.0.0.0 без аутентификации — документация советует публиковать порт только на localhost или в приватной сети либо добавлять --api-key. Это не мелочь: агент с доступом к файлам и терминалу на открытом порту — готовый инцидент.
Для машин без 141 ГБ есть квантованные варианты. Помимо BF16 Recursive выложила INT4 в safetensors, NVFP4 и две GGUF-сборки. В блоге описан приём, которым гордятся авторы: они квантовали в 4 бита выходную голову (lm_head) — при 2,5 млрд активных параметров она составляет заметную долю весов на токен — и восстанавливали точность дистилляцией на собственных сэмплах с 16-битной моделью в роли учителя. Итоговый NVFP4, по заявлению авторов, отстаёт от BF16 менее чем на 0,7 балла по их набору бенчмарков.
| Вариант | Размер | Загрузок | Комментарий |
|---|---|---|---|
| BF16 (flint) | 79,6 ГБ | 420 | серверный кит SGLang, GPU от 141 ГБ |
| INT4 safetensors | 22,6 ГБ | 577 | 5 шардов, для собственных пайплайнов |
| NVFP4 GGUF | 22,9 ГБ | 1 561 | один файл, движок rec и GGUF-раннеры |
| INT4 GGUF | 26,0 ГБ | 2 477 | Q4_1, самый скачиваемый вариант |
В блоге перечислены рантаймы, с которыми Flint совместим: llama.cpp, Ollama, Unsloth, LM Studio, vLLM и SGLang. Отдельно выпущен движок rec — репозиторий recursive-oss/rec на GitHub, версия v0.1.0 от 21.10.2026, лицензия Apache 2.0. На 23.10.2026 у него 149 звёзд, 16 форков и 12 открытых issues при активных пушах — то есть проект живой, но очень молодой.
Сервер отдаёт OpenAI-совместимый интерфейс, поэтому Flint подключается к большинству агентских обвязок без отдельного адаптера. Модель умеет возвращать reasoning и вызывает инструменты в формате OpenAI; в истории диалога нужно сохранять поле reasoning_content, иначе качество на длинных сессиях падает.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="unused")
r = client.chat.completions.create(
model="flint",
messages=[{"role": "user", "content": "Write a function that merges intervals"}],
max_tokens=32768,
)
print(r.choices[0].message.content)| Параметр | Рекомендация авторов |
|---|---|
| temperature | 1.0 |
| top-p / top-k | 0.95 / 20 |
| Бюджет вывода на сложных задачах | не менее 32 768 токенов вместе с reasoning |
| Контекст | до 512k, но рекомендуется не выходить за 256k |
| Сервер по умолчанию | порт 30000, без аутентификации |
Обратная сторона длинного reasoning: если бюджет вывода мал, модель может «съесть» его на рассуждениях и не дойти до ответа. Авторы отдельно предупреждают, что контекстное окно — это предел ёмкости, а не гарантия одинаковой точности на всей длине.
Кому Flint интересен в первую очередь: командам, которые хотят держать код и данные внутри периметра, и владельцам серверных GPU (H200/B300), которым нужна быстрая модель для рутинных агентных задач — правок, тестов, разбора репозитория. Кому нет: тем, у кого одна потребительская карта на 24 ГБ и ожидание «как Claude в один клик» — кванты есть, но гарантий по качеству и памяти авторы не дают.
Что из этого можно перепроверить самостоятельно за пять минут: список файлов и их размеры (huggingface.co/api/models/), число загрузок по вариантам, историю звёзд движка rec и текст sglang/README.md с требованиями к железу.