Как POCKET-35B достигает 59 токенов/с на CPU: архитектура и квантование
POCKET-35B - это 35-миллиардная агентная модель от FINAL-Bench, которая работает на процессорах и мобильных устройствах через стандартный llama.cpp без форков и CUDA. Главный результат: 59 токенов в секунду на квантовании Q2_K. Такой показатель достигается за счёт двух факторов: эффективного фреймворка llama.cpp, оптимизированного под современные CPU, и агрессивного сжатия весов модели без катастрофической потери агентных способностей.
Модель запускается на сервере с 32 ГБ ОЗУ, на Android с 8+ ГБ и на iPhone через приложение PocketPal. В этом разборе - конкретные цифры по скорости, потреблению памяти и практические сценарии развёртывания для каждого уровня квантования: Q4_K_M, Q2_K и IQ1_M.
Роль llama.cpp и отсутствие CUDA: почему это важно
llama.cpp - фреймворк для инференса больших языковых моделей на CPU, написанный на C/C++ с минимальными зависимостями. Он использует векторные инструкции современных процессоров (AVX2, AVX-512), оптимизированное управление памятью и эффективные алгоритмы умножения матриц. Отсутствие зависимости от CUDA означает, что модель не требует дискретной видеокарты и работает на любом x86-совместимом процессоре или ARM-чипе.
POCKET-35B использует стандартную сборку llama.cpp, без модифицированных форков. Это упрощает развёртывание: достаточно скачать официальный репозиторий, скомпилировать под свою платформу и загрузить модель в формате GGUF. Никаких патчей, дополнительных библиотек или проприетарных расширений. Для пользователей, которые уже работали с другими моделями через llama.cpp, миграция на POCKET-35B сводится к замене файла модели и корректировке параметров запуска.
Прямой эффект такого подхода: модель доступна на широком спектре устройств - от серверных Xeon до мобильных Snapdragon и Apple Silicon. Аналогичный подход мы разбирали в тесте Mac mini M4 Pro как сервера AI-агентов, где llama.cpp показал стабильную работу с MoE-моделями без GPU.
Квантование Q2_K: баланс скорости и качества
Q2_K - метод квантования, при котором веса модели сжимаются до 2 бит на параметр с сохранением важных статистических характеристик распределения. Для 35-миллиардной модели это снижает размер с примерно 70 ГБ (FP16) до 10-12 ГБ. Модель целиком помещается в оперативную память, исключая свопинг на диск и связанные с ним задержки.
На серверном CPU с 32 ГБ ОЗУ POCKET-35B в режиме Q2_K выдаёт 59 токенов в секунду - это уровень комфортного чтения для человека и достаточная скорость для интерактивных агентных сценариев. Потребление памяти составляет около 14 ГБ, оставляя запас для операционной системы и контекста диалога.
Потеря качества по сравнению с полновесной моделью есть, но для многих агентных задач она некритична. Модель сохраняет способность следовать инструкциям, использовать инструменты и выполнять многошаговые рассуждения. Для сравнения: в тесте BTL-3 Compact мы видели, что сжатая 27B-модель сохраняет 88.5% точности на BFCL v4 AST при размере 8.39 ГБ - POCKET-35B идёт по тому же пути, но с большей базовой ёмкостью.
Бенчмарки POCKET-35B: скорость и память на разных уровнях квантования
Выбор уровня квантования - это всегда компромисс между качеством ответов, скоростью генерации и доступным объёмом памяти. POCKET-35B поддерживает три основных уровня: Q4_K_M, Q2_K и IQ1_M. Каждый решает свою задачу. Ниже - сводка по производительности на серверном CPU с 32 ГБ ОЗУ (DDR4-3200, 8 каналов).
| Квантование | Размер модели (ГБ) | ОЗУ при инференсе (ГБ) | Скорость (токенов/с) | Качество (субъективно) |
|---|---|---|---|---|
| Q4_K_M | ~20 | ~24 | ~28 | Высокое |
| Q2_K | ~12 | ~14 | ~59 | Среднее |
| IQ1_M | ~8 | ~10 | ~72 | Низкое |
Цифры показывают чёткую закономерность: каждый шаг сжатия увеличивает скорость на 40-50% ценой снижения точности. Для агентных задач критично не только качество генерации текста, но и способность модели удерживать контекст инструкции, корректно форматировать вызовы инструментов и не сходить с траектории рассуждения. Здесь Q2_K выглядит оптимальной точкой: скорость достаточна для интерактивной работы, а деградация агентных способностей минимальна.
Q4_K_M: максимальное качество для требовательных задач
Q4_K_M - наименее агрессивное квантование из доступных. Веса хранятся в 4 битах с расширенной сеткой квантования, что сохраняет тонкие различия между значениями. Модель занимает около 20 ГБ на диске и требует 24 ГБ ОЗУ при инференсе с типичным контекстом в 4096 токенов.
Скорость составляет 28 токенов в секунду - медленнее, чем Q2_K, но всё ещё приемлемо для серверного использования. Этот уровень подходит, когда модель выступает в роли агента-координатора, который должен безошибочно парсить сложные инструкции, работать с API и генерировать структурированные ответы. На сервере с 32 ГБ ОЗУ запуск возможен, но запас памяти минимален: при росте контекста до 8192 токенов потребление приближается к 30 ГБ.
Для сравнения: в обзоре Nanbeige 4.2-3B мы видели, что даже 3B-модель с правильной архитектурой способна обходить 9B-конкурентов на агентных тестах. POCKET-35B в Q4_K_M даёт на порядок больше параметров, что напрямую влияет на глубину рассуждений в сложных сценариях.
Q2_K: оптимальный компромисс для CPU
Q2_K - рекомендуемый уровень для большинства случаев. 59 токенов в секунду - это скорость, при которой ответы появляются быстрее, чем вы их читаете. Модель занимает 12 ГБ на диске, потребляет 14 ГБ ОЗУ и оставляет комфортный запас памяти на сервере с 32 ГБ.
Агентные способности сохраняются: модель корректно обрабатывает системные промпты, следует формату вызова инструментов и удерживает контекст на протяжении нескольких десятков шагов. Для типичных сценариев - автономный поиск информации, генерация кода с тестированием, маршрутизация запросов - этого достаточно. Деградация заметна на задачах, требующих тонкого различения смыслов: юридический анализ, медицинские рекомендации, сложная математика. Здесь лучше переключиться на Q4_K_M или рассмотреть не-квантованную модель меньшего размера.
IQ1_M: экстремальное сжатие для мобильных устройств
IQ1_M сжимает веса до 1.5-1.7 бит на параметр, уменьшая размер модели до 8 ГБ. Это единственный вариант, который влезает в смартфоны с 8 ГБ ОЗУ. Скорость достигает 72 токенов в секунду на серверном CPU, но на мобильных ARM-чипах показатель будет ниже - ориентировочно 15-25 токенов/с в зависимости от поколения процессора.
Качество страдает заметно. Модель может путаться в сложных инструкциях, терять нить рассуждений при длинных диалогах и генерировать менее точные вызовы инструментов. IQ1_M подходит для простых агентных задач: классификация запросов, извлечение сущностей, генерация коротких ответов по шаблону. Для ответственных сценариев лучше использовать Q2_K на устройстве с 12+ ГБ ОЗУ.
Сценарии развёртывания: от сервера до смартфона
POCKET-35B покрывает три принципиально разных сценария: выделенный сервер для обслуживания нескольких пользователей, локальный инференс на Android-смартфоне и быстрый запуск на iPhone. Каждый требует своего подхода к настройке и даёт разную производительность.
Сервер с 32 ГБ ОЗУ: максимальная производительность
Серверный сценарий - основной для POCKET-35B. Конфигурация: любой x86-процессор с поддержкой AVX2, 32 ГБ ОЗУ (DDR4 или DDR5), SSD для хранения модели. Установка сводится к трём шагам:
- Скомпилировать llama.cpp из исходников:
git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make - Скачать модель POCKET-35B в формате GGUF с нужным уровнем квантования
- Запустить сервер:
./llama-server -m pocket-35b-q2_k.gguf -c 4096 --host 0.0.0.0 --port 8080
С таким запуском модель доступна по HTTP API, совместимому с OpenAI-клиентами. Можно подключать её к агентским фреймворкам вроде OpenClaw - мы подробно разбирали эту связку в тесте Mac mini M4 Pro как сервера AI-агентов. Для максимального качества используйте Q4_K_M и контекст 8192 токенов - сервер с 32 ГБ это тянет.
Android с 8+ ГБ: локальный инференс на ходу
На Android модель запускается через Termux с установленным llama.cpp или через специализированные оболочки, поддерживающие GGUF. Требования: 8 ГБ ОЗУ для IQ1_M, 12+ ГБ для Q2_K. На Snapdragon 8 Gen 2 с 12 ГБ ОЗУ Q2_K выдаёт 18-22 токенов в секунду - достаточно для диалогового интерфейса.
Установка через Termux:
- Установить Termux из F-Droid (версия из Google Play устарела)
- Выполнить:
pkg install clang cmake make git - Собрать llama.cpp:
git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && cmake -B build && cmake --build build --config Release - Загрузить модель в память телефона и запустить:
./build/bin/llama-cli -m pocket-35b-iq1_m.gguf -p "Привет" -n 256
Главное ограничение - нагрев устройства. При длительной генерации троттлинг снижает скорость на 30-40%. Для коротких запросов это некритично, но непрерывная работа агента в фоне быстро разрядит батарею.
iPhone через PocketPal: простой запуск для iOS
PocketPal - приложение для iOS, которое использует llama.cpp под капотом и поддерживает загрузку GGUF-моделей. POCKET-35B имеет сборки, оптимизированные под Apple Silicon, что даёт прирост скорости на 15-20% по сравнению с универсальной сборкой.
Запуск предельно прост: установить PocketPal из App Store, загрузить GGUF-файл модели через Files или iCloud, выбрать модель в интерфейсе и начать диалог. На iPhone 16 Pro с 8 ГБ ОЗУ IQ1_M выдаёт 25-30 токенов в секунду, на iPhone 17 Pro с 12 ГБ - Q2_K работает на 35-40 токенов/с.
PocketPal не поддерживает фоновую работу агентов, только интерактивный чат. Для автономных сценариев на iOS потребуется кастомная интеграция llama.cpp через Swift-обёртку, но это выходит за рамки готового решения.
Агентные возможности POCKET-35B: на что способна модель
Термин «агентная модель» означает, что POCKET-35B изначально обучалась для выполнения многошаговых инструкций, вызова внешних инструментов и удержания контекста задачи. Это не просто чат-модель, а система, способная действовать автономно: получить задачу, разбить на шаги, выполнить их с использованием доступных инструментов и вернуть результат.
Типичные сценарии для POCKET-35B:
- Поиск и агрегация информации: модель формулирует поисковые запросы, парсит результаты и синтезирует сводку
- Генерация кода с самопроверкой: пишет код, запускает его в изолированном окружении, анализирует ошибки и исправляет
- Маршрутизация запросов: классифицирует входящий запрос и передаёт специализированному обработчику
- Работа с API: формирует корректные HTTP-запросы, обрабатывает ответы и адаптирует стратегию при ошибках
В сравнении с моделями схожего размера POCKET-35B выигрывает за счёт доступности на CPU. Та же Laguna S 2.1 с архитектурой MoE показывает лучшие результаты на бенчмарках (70.2% на Terminal-Bench 2.1), но требует значительно больше ресурсов для инференса. POCKET-35B занимает нишу «достаточно умная, чтобы работать на чём угодно».
Ограничения: на квантовании IQ1_M модель теряет способность к сложным многошаговым рассуждениям. Контекст в 4096 токенов маловат для агентов, работающих с большими документами. Отсутствие нативной поддержки vision означает, что модель не может анализировать изображения напрямую - только через текстовые описания.
Специфические сборки: корейский язык и Apple устройства
FINAL-Bench выпустила специализированные сборки POCKET-35B для двух сценариев: работа с корейским языком и оптимизация под Apple Silicon. Корейская сборка дообучалась на корпусе текстов на корейском, что улучшило качество генерации и понимания языка на 15-20% по внутренним метрикам разработчика. Модель корректно обрабатывает грамматические формы, вежливые регистры и специфичную лексику.
Сборка под Apple устройства использует оптимизации под Neural Engine и unified memory архитектуру чипов M-серии и A-серии. Это даёт прирост скорости инференса на 15-20% по сравнению с универсальной ARM-сборкой llama.cpp. Модель доступна в том же наборе квантований и загружается через PocketPal или кастомные интеграции.
Выводы: когда стоит выбрать POCKET-35B
POCKET-35B закрывает конкретную потребность: запуск агентной модели среднего размера на устройствах без GPU. Сильные стороны: работа через стандартный llama.cpp, 59 токенов/с на Q2_K, поддержка серверов, Android и iPhone, сохранение агентных способностей при умеренном сжатии.
Ограничения: потеря качества на IQ1_M, нагрев и троттлинг на мобильных устройствах, ограниченный контекст в 4096 токенов для базовой конфигурации.
Рекомендации по выбору квантования:
- Q4_K_M - сервер с 32+ ГБ ОЗУ, сложные агентные задачи, где важна точность
- Q2_K - основной вариант для серверов и мощных смартфонов, оптимальный баланс
- IQ1_M - устройства с 8 ГБ ОЗУ, простые агентные сценарии, демонстрация возможностей
Если вы ищете модель, которая запустится на имеющемся железе без покупки GPU и при этом сможет выполнять агентные задачи - POCKET-35B на Q2_K станет практичным выбором. Для более требовательных сценариев обратите внимание на MoE-модели вроде Laguna S 2.1, но учитывайте их повышенные требования к памяти.