Перейти к содержанию
Новое AiManual теперь в MAX Подписаться
Публикация AiManual

POCKET-35B: агентная модель 35B на CPU и смартфонах — тест производительности и сценарии развёртывания

POCKET-35B от FINAL-Bench — агентная 35B-модель, работающая на CPU через llama.cpp без CUDA. 59 токенов/с на Q2_K, запуск на сервере с 32 ГБ ОЗУ, Android с 8+ Г

Коротко

Что будет в материале

  1. 01

    Как POCKET-35B достигает 59 токенов/с на CPU: архитектура и квантование

  2. 02

    Бенчмарки POCKET-35B: скорость и память на разных уровнях квантования

  3. 03

    Сценарии развёртывания: от сервера до смартфона

  4. 04

    Агентные возможности POCKET-35B: на что способна модель

Как 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 для хранения модели. Установка сводится к трём шагам:

  1. Скомпилировать llama.cpp из исходников: git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make
  2. Скачать модель POCKET-35B в формате GGUF с нужным уровнем квантования
  3. Запустить сервер: ./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:

  1. Установить Termux из F-Droid (версия из Google Play устарела)
  2. Выполнить: pkg install clang cmake make git
  3. Собрать llama.cpp: git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && cmake -B build && cmake --build build --config Release
  4. Загрузить модель в память телефона и запустить: ./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, но учитывайте их повышенные требования к памяти.

Подписаться на канал