Локальные модели для триажа PR: как HF запустила бесплатный классификатор

Авторы из Hugging Face описывают реальный кейс использования локальных моделей (Gemma-26B и Qwen-35B) в агент-харнессе для триажа PR и issues в OpenClaw. Вместо платных облачных сервисов (GPT-5.5, Opus) они запустили локальное решение на NVIDIA GB10 с 128 ГБ памяти. Система состоит из локального зеркала репо (gitcrawl), очереди классификации (SQLite) и агента с ограниченным доступом к репо через reposhell (только чтение). На тестовом наборе из 330 PR/issues модели показали конкурентные результаты: Gemma быстрее и лучше по recall, Qwen точнее и меньше ложных срабатываний.
Звёздочка в названии раскрывает нюанс: "бесплатно" означает лишь отсутствие платежей за API, но требует наличия дорогого GPU и затрат на электричество. Однако если инфра уже работает, триаж становится практически бесплатным с реал-тайм уведомлениями вместо батчирования каждые 2-6 часов.
Ключевые факты
- Localpager-agent: настроенный Pi-харнесс для локальной классификации с доступом только к чтению репо через reposhell
- Gemma-26B достигает 700+ токенов/сек с NVFP4 квантизацией на GB10, обработала 330 строк за 7.5 минут
- Qwen-35B показывает 99% точность, выше recall, чем DeepSeek-V4-Flash, при приемлемой скорости
- Система работает полностью локально без запросов в GitHub API или облачным моделям
- Гибридный подход: локально только классификация, отправка уведомлений в Discord по детерминированным правилам
Ред. Бесплатно, если у вас под столом уже стоит GB10 на 128 гигабайт. Мелким шрифтом: GPU, электричество и вечер на сборку gitcrawl плюс reposhell в цену не входят.
Почему это важно
После апреля 2026, когда Anthropic убрала Claude Fable 5, стало ясно: зависимость от облачных моделей опасна. Локальные модели позволяют владеть полным AI-стеком и не бояться отключения сервиса. Триаж репозитория требует постоянной работы, и батчирование запросов раз в 2-6 часов означает задержки критических обновлений.
Ред. Anthropic убрала одну модель, и теперь у нас независимость через железо за тысячи долларов. Логика «отключат сервис» бодрая ровно до того момента, как ваш единственный GB10 решит отключиться сам.
Кому это важно
Мейнтейнерам популярных репозиториев, которые получают сотни PR/issues в день. Компаниям, хостящим собственную инфру и уже инвестирующим в GPU. Разработчикам, ищущим альтернативу платным API. Организациям, озабоченным data privacy и зависимостью от внешних сервисов.
Ред. Список сводится к тем, у кого GPU уже крутится и простаивает. Мейнтейнеру с сотней issues в день это полезно, но триажить за моделью спорные ярлыки всё равно придётся ему, а не бесплатной Gemma.
Как это применить
Установить gitcrawl для зеркала репо, развернуть локальный LLM-сервер (vLLM с Gemma или Qwen) и настроить Pi-агент с доступом только к чтению. Создать SQLite очередь для входящих PR/issues и worker, проводящий классификацию. Настроить фильтр уведомлений в Discord или другой системе. Затраты: один раз ёмкий GPU (или использовать уже работающий), текущие расходы только на электричество. Не требует умений работы с облачными API.
Ред. vLLM, SQLite-очередь, воркер, фильтр в Discord. «Не требует умений работы с облачными API», зато требует умений поднять локальный инференс-сервер и не уронить его. Один эндпоинт вы поменяли на свой маленький дата-центр.
Можно ли доверять
Авторы тестировали модели на 330 реальных PR/issues, воспроизведимо сравнивали с GPT-5.5 и Opus, использовали ручную валидацию и iterative refinement. Результаты публичны и воспроизводимы. Однако первые версии системы были шумными с Gemma-e4b; качество растёт с размером модели. Дозвучка с DeepSeek показала, что при увеличении размера модели false positive rate падает.
Ред. 330 примеров, ручная валидация, сравнение с GPT-5.5 и Opus, всё воспроизводимо. Честно и без приукрашиваний: первые версии шумели, а точность растёт ровно вместе с размером модели, то есть с аппетитом к той самой видеопамяти.
Риски и подводные камни
Звёздочка в названии: не совсем бесплатно. Требует наличия дорогого GPU (NVIDIA GB10 стоит тысячи) и неё оплачивает электричество. Localpager сложнее в развёртывании, чем вызов одного API endpoint. Есть проблемы с выходом памяти (Qwen может не закончить вывод JSON), требует retry-логики. Batched обработка раз в 2 часа медленнее, чем реал-тайм, но экономит GPU. Reposhell требует полного понимания, какие команды разрешить локальной модели, иначе риск prompt injection.
Ред. Звёздочка наконец расшифрована: тысячи за GB10, счёт за свет и retry-логика на случай, когда Qwen не дописал JSON. И главное, reposhell дали локальной модели, так что список разрешённых команд лучше продумать раньше, чем за вас это сделает чужой prompt injection.
«If I set up my OpenClaw main agent running on a $200/mo ChatGPT Pro plan to trigger a job on every new issue or PR, that would use up my quota. I might instead set it to run every 2 hours, or 6 hours. If I were to run this on a local model on the hardware I already have up and running, I would not only have near-instantaneous notifications, I would also be able to do it for free.»
— Onur, Hugging Face