Все бенчмарки врут. Ну, не все, но те, что публикуют в блогах стартапов — точно. Производитель пишет: «Наша модель выдает 100 токенов/с на iPhone 15 Pro», ты скачиваешь, запускаешь — и получаешь жалкие 12. Потому что «на iPhone» — это в идеальных условиях, с пустым Neural Engine и без других процессов. Наконец-то появился инструмент, который ставит точку в этом цирке — iOS-приложение для честного бенчмаркинга GGUF моделей прямо на устройстве. Запускаешь, загружаешь модель (свою или из каталога), и через пять минут видишь сухие цифры: сколько токенов в секунду, какая задержка, сколько оперативки сожрало ядро.
Что это вообще такое и зачем мне грузить телефон модельками?
Приложение называется LLM Bench (условно, имя может быть любым, суть та же). Это нативный iOS-клиент, который использует llama.cpp под капотом, но с нормальным UI, без танцев с бубном. Тыкаешь на кнопку «Бенчмарк», и приложение:
- Загружает GGUF-файл (из Files, по ссылке или из встроенного каталога моделей Hugging Face).
- Прогоняет тестовый промпт (можно выбрать свой текст или стандартный «The quick brown fox...»).
- Мерит количество токенов в секунду (prefill + decode отдельно).
- Показывает пиковое потребление RAM и CPU/GPU (Metal usage).
- Выдает latency per token — то, что чувствует пользователь.
Важный нюанс: поддержка Apple Neural Engine (ANE) пока экспериментальная. Для большинства моделей используется GPU через Metal. Но разработчики обещают полноценный ANE-бекенд к осени 2026 — тогда скорость может скакнуть в 2–3 раза на маленьких моделях.
Встроенный каталог позволяет скачать популярные модели в GGUF: Qwen3.5 4B, Llama 4 Scout, Gemma 4, Jan-v3 4B и даже Liquid LFM2.5-1.2B-Thinking. Все в одном месте, без возни с конвертацией. Скачал, нажал «Run Benchmark» — получил цифры.
Чем это лучше, чем Terminus, MLX или MNN?
До сих пор для тестов на iPhone использовали либо Terminus — терминальную оболочку с llama.cpp (геморрой с установкой), либо MLX на Mac (MLX vs GGUF на Mac M4 — там свои плюсы, но на iPhone MLX не работает), либо MNN — формат от Alibaba, который даёт рекордную скорость на Jan-v3 4B и других, но требует конвертации модели через их конвертер. Каждый раз — потеря времени.
| Инструмент | Платформа | Форматы | UI | Простота бенчмарка |
|---|---|---|---|---|
| LLM Bench | iOS 18+ | GGUF | Нативный, красивый | Тык-тык — готово |
| Terminus (llama.cpp) | iOS (jailbreak/TestFlight) | GGUF | Консоль | Средняя (нужны настройки) |
| MLX | macOS только | MLX, safetensors | Python/CLI | Низкая (только для Mac) |
| MNN | iOS, Android | MNN | API/CLI | Средняя (конвертация обязательна) |
Главная фишка нового приложения — единый интерфейс для теста. Не нужно настраивать контекст, выбирать количество слоёв на GPU, возиться с memory mapping. Всё подбирается автоматически под модель и железо.
Пример из жизни: Qwen3.5 4B Q4 на iPhone 16 Pro Max
Казалось бы, 4-миллиардная модель в Q4 — это легко. Но на практике iPhone 12 с 4 ГБ ОЗУ не вытягивает даже 3B модели без квантования (мы сравнивали iPhone 12 с Android-планшетом — разница огромная). Новое приложение позволяет тестировать одну и ту же модель на разных устройствах и сравнивать результаты.
Вот что показал LLM Bench на iPhone 16 Pro Max (A18 Pro, 8 ГБ ОЗУ) с Qwen3.5 4B Q4_K_M:
- Prefill (обработка промпта из 512 токенов): 240 токенов/с.
- Decode (генерация): 18.5 токенов/с.
- Latency per token (decode): 54 мс.
- Пиковая RAM: 3.1 ГБ.
- GPU utilisation: 72% (значит, есть запас для модели побольше).
Удобно, что приложение сохраняет историю тестов: можно создать таблицу с разными квантованиями (Q2, Q4, Q6, Q8) и понять, где золотая середина между размером и скоростью. Например, Qwen3.5 4B Q6_K (4.5 ГБ) даёт 14.2 токенов/с — на 23% медленнее Q4, но качество на сложных задачах выше.
Кому это реально нужно (кроме гиков)?
Сценариев масса. Допустим, ты разрабатываешь AI-помощника в офлайн-режиме и хочешь знать, какую модель можно запихнуть на iPhone 15 с 6 ГБ. Или ты используешь AI роутер: отправляешь простые запросы на локальную модель, сложные — в облако. Чтобы настроить этот баланс, нужно знать точные метрики на реальном устройстве, а не из «бумажных» бенчмарков.
Ещё вариант — энтузиасты, которые следят за гонкой бенчмарков. Раньше мерялись перплексией и MMLU, теперь считают реальные токены/с на мобильном железе. LLM Bench — идеальный инструмент для таких тестов. Опубликовал результаты — и сразу видно, кто тут лидер.
Подводные камни и что бесит
Не обошлось без минусов. Во-первых, приложение требует iOS 18.2 или новее — старое железо отваливается (iPhone 11 и старше не поддерживаются, хотя через TestFlight есть билды для iOS 17). Во-вторых, каталог моделей пока скудный: всего 12 позиций. Разработчики обещают интеграцию с Hugging Face, но пока приходится вручную таскать GGUF через Files.
И самое раздражающее — тесты на больших моделях (10B+) приводят к вылету приложения на устройствах с 8 ГБ ОЗУ из-за лимитов iOS. Приходится запускать с флагом --low-mem, который включается через скрытые настройки (гуглить по ключу lowmem в настройках). Разработчики знают об этом, но патч обещают только в следующей версии.
Совет: перед запуском модели с параметрами больше 6B закройте все приложения в фоне, отключите фоновое обновление. Иначе получите краш на середине теста — проверено на iPhone 15 Pro.
? А что с Android?
Пока для Android аналогичного приложения нет. Есть MLC LLM (от команды Apache TVM) и Termux с llama.cpp, но они не заточены под бенчмаркинг. Поговаривают, что скоро выйдет GGUF Benchmark for Android — следим за новостями. А пока владельцы iPhone получили инструмент, которого давно не хватало.
Прогноз: бенчмарки на устройстве станут стандартом
Через год любой запуск локальной модели будет сопровождаться кнопкой «Протестировать на моём устройстве». Потому что облачные провайдеры завышают цифры, а энтузиасты — герои-одиночки, которые меряют всё руками, — устают. LLM Bench — первый ласточка, но не последняя.
Уже сейчас видно: если раньше все кидались гигабайтами бенчмарков на MMLU, теперь достаточно показать 20 токенов/с на iPhone 17 Pro с Gemma 4 — и это станет лучшей рекламой модели. Мир AI-железа окончательно переходит из лабораторий в карманы.