Если маленькая модель уверенно пишет текст, но ломает JSON или вызывает не тот инструмент, не выбирайте её по размеру — для tool calling лучше начать с Needle, а для универсальных ответов рассматривать SmolLM, Gemma или Phi.
Быстрый выбор на 14 августа 2026 года: Needle — для сверхмалого маршрутизатора инструментов; SmolLM — для исследований и лёгкой генерации текста; Gemma и Phi — для более сильного локального помощника, если устройство выдерживает больший объём весов. После предварительного отбора обязательно проверьте конкретную версию, квантование и реальные сценарии на целевом устройстве.
Эта статья предназначена инженерам мобильных и edge-приложений, независимым разработчикам, которые планируют дообучение на Mac, и архитекторам, распределяющим задачи между локальной и облачной моделью. Данные сверены с официальными карточками моделей, репозиториями и лицензиями. Последнее обновление: 14 августа 2026 года.
Сначала определите метрику, а не «самую умную» модель
Сравнивать Needle, SmolLM, Gemma и Phi одной строкой в рейтинге нельзя. Это разные классы проектов:
- Needle — специализированная модель для выбора инструмента и генерации структурированного вызова;
- SmolLM — семейство компактных языковых моделей для экспериментов, диалогов, классификации и лёгкой генерации;
- Gemma — семейство моделей Google с вариантами для текстовых, мультимодальных и инструментальных задач;
- Phi — компактные модели Microsoft, ориентированные на инструкционное следование, рассуждения, код и локальные приложения.
У Needle ключевая метрика — не качество свободного ответа, а корректность выбора функции, аргументов и формата JSON. В официальном описании проекта Needle заявлена как модель на 26 миллионах параметров для on-device tool calling; опубликованный runtime показывает запуск через OpenAI-совместимое описание инструментов. Это не делает её заменой универсальной чат-модели. (github.com)
У SmolLM, Gemma и Phi задача шире: они могут отвечать на вопросы, суммировать текст, классифицировать данные и поддерживать диалог. Поэтому их следует проверять на полном наборе прикладных задач, а не только на размере файла.
Важно: открытые веса не означают автоматически полностью открытую модель. Для каждого проекта отдельно проверьте код, веса, датасеты, условия лицензии, требования к атрибуции и правила распространения приложения.
Первая матрица выбора: где каждый проект действительно уместен
Для первичного отбора используйте таблицу, но не принимайте её за финальный benchmark. В ней указаны конкретные представители семейств, чтобы не смешивать разные версии.
| Проект и пример версии | Главная метрика | Сильная сторона | Ограничение |
|---|---|---|---|
| Needle, 26M | Корректный tool call | Очень компактный маршрутизатор действий | Не предназначен для общего чата и длинного рассуждения |
| SmolLM3-3B | Локальная генерация текста | Исследовательская открытость, обучение и on-device сценарии | Требует заметно больше памяти, чем субмиллиардные модели |
| Gemma 3 270M IT | Лёгкая генерация и локальные действия | Компактный вариант Gemma с официальной экосистемой | Доступ регулируется условиями Gemma |
| Gemma 3 1B IT | Текст, суммаризация, помощник | Более универсальная модель, чем 270M | Не следует считать её безусловно свободной для любого распространения |
| Phi-4-mini-instruct | Универсальный локальный помощник | Инструкции, рассуждения, function calling, широкий контекст | Карточка модели указывает около 3,8 млрд параметров и значительный объём файлов |
Для SmolLM3 официальная страница Hugging Face указывает модель на 3 миллиарда параметров, а для Phi-4-mini-instruct карточка Microsoft указывает 3,8 миллиарда параметров и контекст до 128 000 токенов. Эти значения нельзя сопоставлять напрямую с размером квантованного файла или фактическим потреблением памяти во время работы. (github.com)
Как считать память без ошибки в планировании
Самая частая ошибка при выборе Tiny LLM — принять размер скачанного файла за требуемую оперативную память. На практике есть как минимум четыре отдельные величины:
- размер исходных или BF16-весов;
- размер квантованного файла;
- рабочая память runtime;
- KV-cache для текущего контекста и память приложения.
Например, в репозитории Gemma 3 270M IT файл весов указан примерно на 536 МБ, тогда как у Phi-4-mini-instruct полный набор файлов занимает около 7,69 ГБ. Это данные конкретных карточек моделей, а не универсальные требования для всех форматов запуска. При переводе в GGUF, MLX, ONNX или другой формат размер и поведение меняются. (huggingface.co)
Для мобильного приложения важны не только мегабайты. Проверьте:
- помещается ли модель в доступную память без вытеснения приложения;
- поддерживает ли runtime нужный процессор и ускоритель;
- можно ли загружать модель по частям;
- не увеличивается ли задержка из-за преобразования форматов;
- как ведёт себя KV-cache при длинном диалоге;
- разрешено ли включать веса в дистрибутив приложения.
Needle и SmolLM лучше подходят для телефона? Если задача — выбрать локальное действие, извлечь параметры из короткой команды или классифицировать намерение, Needle часто логичнее. Если нужна генерация текста, краткий диалог или небольшой summarization-пайплайн, смотрите на конкретный вариант SmolLM и его runtime. Для телефона нельзя выбирать только по названию семейства: тестируйте размер бинарного файла, время первого ответа, устойчивость после нескольких запросов и расход памяти.
Вторая таблица: tool calling и структурированный вывод
Функциональный вызов нужно проверять не демонстрационным примером, а одинаковым набором тестов. Минимальная коллекция должна включать существующий инструмент, неизвестное действие, обязательный параметр без значения, лишний параметр и неоднозначный запрос.
| Метрика | Needle | SmolLM | Gemma | Phi |
|---|---|---|---|---|
| Вызов функции | Основной сценарий проекта | Зависит от версии и шаблона | Поддержка зависит от конкретной модели; FunctionGemma сделана специально для этого | Phi-4-mini-instruct имеет формат tool-enabled function calling в карточке |
| JSON-формат | Целевой результат | Нужно ограничивать декодирование или проверять схему | Нужен согласованный prompt и валидатор | Нужен официальный chat template и внешний валидатор |
| Ошибка неизвестного инструмента | Проверять отдельно | Может сгенерировать текст вместо отказа | Проверять на целевом наборе функций | Проверять при temperature 0 |
| Неверный параметр | Не исправляется автоматически | Зависит от fine-tuning | Нужна схема и постобработка | Нужна схема и постобработка |
| Рассуждение по результату инструмента | Вне основной задачи | Возможно только у подходящей instruct-версии | Подходит лучше специализированного router | Подходит лучше для составных локальных сценариев |
Google отдельно описывает FunctionGemma как специализированный вариант Gemma 3 270M, настроенный для function calling и локальных действий. Это важное различие: обычная Gemma и модель, специально дообученная для вызова функций, не являются взаимозаменяемыми по качеству маршрутизации. (ai.google.dev)
Может ли Tiny LLM использовать инструменты? Да, но не всякая маленькая модель умеет это одинаково. Needle изначально создана для выдачи tool call. Phi-4-mini-instruct содержит формат для function calling. У SmolLM и обычных вариантов Gemma поддержку нужно проверять по карточке конкретной версии, шаблону чата и вашему runtime. Даже валидный JSON не гарантирует правильный выбор функции.
Что проверять в обычном тексте и ограниченном рассуждении
После tool calling переходите к четырём прикладным наборам:
- суммаризация текста фиксированной длины;
- классификация с закрытым перечнем меток;
- короткий диалог с двумя или тремя ходами;
- ограниченное рассуждение: арифметика, извлечение условия, выбор действия по правилам.
Не смешивайте результаты разных версий. Сравнение Phi-4-mini-instruct с SmolLM3-3B после разных шаблонов, температур и квантований будет показывать не только качество моделей, но и качество настройки эксперимента.
Gemma 3 позиционируется как семейство с текстовыми и мультимодальными вариантами, контекстом до 128 000 токенов и поддержкой более 140 языков в карточке модели. Phi-4-mini-instruct также заявляет контекст до 128 000 токенов, но это не означает, что конкретное мобильное устройство сможет эффективно обрабатывать такой объём. Контекстное окно — верхняя граница архитектуры, а не обещание одинаковой скорости и памяти. (huggingface.co)
Needle не следует включать в общий тест открытых вопросов. Если ей дать вопрос «объясните принцип работы базы данных», низкий результат ничего не скажет о её качестве как маршрутизатора. Для неё правильные проверки — выбор функции, извлечение аргументов, отказ от неизвестного действия и поведение при неполной схеме.
Третья метрика: runtime и конечное устройство
Разделяйте три уровня совместимости:
- веса открыты и доступны для загрузки;
- существует runtime для вашей платформы;
- готовое приложение можно легально и технически распространять.
Needle поддерживается экосистемой Cactus, где заявлены tool calling, потоковая генерация, RAG и работа с мобильными и edge-устройствами. Для браузерного эксперимента опубликована ONNX-версия, но это отдельный экспорт с собственными ограничениями и не равнозначно официальному универсальному runtime для каждой платформы. (github.com)
SmolLM имеет маршруты через Transformers, ONNX, GGUF и другие локальные инструменты, однако для iOS и Android всё равно придётся отдельно проверять размер бинарника, поддержку ускорения и лицензирование конкретного файла. Phi хорошо представлен в материалах Microsoft: для семейства есть примеры с ONNX Runtime, MLX, llama.cpp и локальными API. (github.com)
Gemma запускается через Transformers и совместимые серверные или локальные среды, но доступ к официальным файлам на Hugging Face требует принять условия Google. Для приложения это означает дополнительную юридическую проверку до публикации, особенно если веса будут распространяться вместе с клиентом. (huggingface.co)
Опытный ориентир: сначала выберите формат, который реально поддерживает целевое устройство, и только потом планируйте fine-tuning. Модель, которую удалось запустить на Mac, не обязательно можно без изменений встроить в iOS-приложение или edge-шлюз.
Шаг 1. Зафиксируйте четыре deployment-цели
Не начинайте с загрузки всех четырёх моделей. Запишите, что именно должно работать:
- сверхмалый маршрутизатор инструментов — Needle;
- мобильная текстовая функция — SmolLM или Gemma 3 270M IT;
- локальный помощник — Gemma 3 1B IT или Phi-4-mini-instruct;
- небольшой сервер с более сильными ответами — Phi-4-mini-instruct или SmolLM3-3B после проверки памяти.
Это не абсолютный рейтинг, а начальная гипотеза. Если локальный помощник должен работать на русском языке, используйте собственный набор русскоязычных запросов: официальные языковые заявления не заменяют проверку вашей терминологии, длины ответов и формата инструкций.
Шаг 2. Выберите конкретную версию и формат весов
Запишите в журнале эксперимента:
- точное имя репозитория;
- дату фиксации версии;
- тип весов;
- формат квантования;
- chat template;
- runtime;
- максимальный контекст;
- условия лицензии.
Не пишите в отчёте просто «тестировали Gemma» или «сравнили Phi». Формулировка должна выглядеть как «Gemma 3 270M IT в формате X» или «Phi-4-mini-instruct в формате Y». Именно это позволяет повторить результат после обновления модели.
Шаг 3. Подготовьте единый тестовый набор
Для tool calling создайте минимум пять классов запросов:
- корректный вызов с одним обязательным параметром;
- корректный вызов с двумя параметрами разных типов;
- неизвестный инструмент;
- отсутствующий обязательный параметр;
- лишний или конфликтующий параметр.
Для текста добавьте по 20–30 заранее проверенных примеров на суммаризацию, классификацию, короткий диалог и правила. Число примеров в вашем наборе является параметром эксперимента, поэтому фиксируйте его и не меняйте между моделями.
Шаг 4. Измерьте не только скорость
Как тестировать производительность маленькой модели на реальном устройстве? Запускайте один и тот же сценарий не менее чем в трёх режимах: холодный старт, повторный запрос после загрузки и серия последовательных запросов. Записывайте:
- время загрузки весов;
- время до первого токена;
- скорость генерации;
- пик используемой памяти;
- размер KV-cache;
- процент корректного JSON;
- долю неверных инструментов;
- нагрев и троттлинг;
- поведение при отсутствии сети.
Скорость из рекламного материала нельзя переносить на ваш телефон или Mac. Например, Cactus заявляет для Needle высокую скорость prefill и decode на потребительских устройствах, но это показатель конкретной реализации и оборудования, а не универсальная характеристика любой сборки. (cactuscompute.com)
Шаг 5. Проведите короткий fine-tuning и повторную приёмку
Для Needle дообучение имеет смысл, когда у вас фиксированный набор инструментов и понятные схемы аргументов. Для SmolLM, Gemma и Phi fine-tuning оправдан, если prompt engineering и constrained decoding не закрывают задачу, а датасет действительно отражает будущие запросы.
Mac удобен как промежуточная станция: на нём можно подготовить данные, запустить LoRA или другой лёгкий сценарий адаптации, сравнить несколько форматов и проверить конвертацию. Но не переносите результат напрямую в продакшен. После обучения повторите тесты на финальном iOS-, Android-, Linux- или edge-устройстве.
Для длительных экспериментов, нескольких версий и параллельной оценки заранее рассчитайте время аренды и объём диска. Если нужно быстро поднять отдельные Mac-среды под разные ветки эксперимента, изучите варианты аренды Mac mini и отдельно сопоставьте их с требованиями MLX, Python, Transformers и вашим CI/CD.
Лицензия и распространение: где чаще всего ошибаются
У Needle в официальном репозитории указана лицензия MIT. У SmolLM репозиторий Hugging Face указывает Apache-2.0. У Phi-4-mini-instruct указана MIT-лицензия. У Gemma применяется собственная лицензия Google, а доступ к файлам модели регулируется условиями Gemma. Поэтому нельзя свести все четыре проекта к формуле «это open source и можно делать что угодно». (github.com)
Перед выпуском приложения проверьте:
- нужно ли показывать уведомление об авторстве;
- распространяются ли условия на производные модели;
- можно ли включать веса в коммерческий продукт;
- есть ли ограничения для высокорисковых сценариев;
- какие компоненты runtime имеют отдельные лицензии;
- нужно ли пользователю отдельно принимать условия доступа.
Если модель используется для команд устройства, добавьте защитный слой вне LLM: список разрешённых действий, проверку JSON Schema, подтверждение опасных операций и журналирование отказов. Маленькая модель не отвечает за безопасность команды, которую затем выполнит приложение.
Итоговый выбор по сценарию
Для сверхмалого tool router выбирайте Needle. Она не должна вести разговор и объяснять решение — её задача быстро выдать корректный структурированный вызов.
Для мобильной генерации текста начинайте со SmolLM или компактной Gemma. Needle здесь не подходит по назначению, а Phi-4-mini может оказаться избыточной по размеру для простого локального ответа.
Для локального помощника сравнивайте Gemma и Phi на собственном датасете. Phi-4-mini-instruct сильнее ориентирована на универсальные инструкции и function calling, а Gemma предлагает широкую экосистему и компактные варианты, но требует отдельной проверки условий распространения.
Для небольшого локального сервера выбирайте между SmolLM3-3B, Gemma подходящего размера и Phi-4-mini-instruct по памяти, latency и качеству именно ваших задач. Не переносите результаты benchmark без проверки версии, prompt template и квантования.
Для более точной приёмки полезно заранее подготовить чек-лист локального запуска на Mac и отдельный план: данные → fine-tuning → конвертация → тест runtime → проверка на конечном устройстве. Если вы выбираете Gemma и Phi для Mac-разработки, а Needle нужен для мобильного маршрутизатора, не обязательно держать все модели на одной машине: разделение сред упростит контроль версий и повторяемость.
На практике локальный запуск на собственном компьютере часто упирается в занятый диск, нехватку единой тестовой среды, длительное ожидание fine-tuning и невозможность параллельно проверять несколько сборок. Облачный API, напротив, уменьшает локальные требования, но добавляет сетевую задержку, стоимость запросов и ограничения по приватности. Для временного проекта или серии сравнительных прогонов аренда Mac у Kvmkit может быть рациональнее покупки отдельного компьютера: вы получаете изолированную среду для микротюнинга, конвертации и тестирования, а после завершения эксперимента не оплачиваете простаивающее оборудование. Для долгой стабильной нагрузки или задач, которым нужны физические интерфейсы устройства, собственный Mac всё же останется более предсказуемым вариантом.
CI/CD на M4 Mac mini — без лишних хлопот
Xcode, Fastlane, CocoaPods, and SPM are first-class on macOS. Mac mini M4 unified memory keeps signing and archiving smooth; ~4W standby power suits 24/7 build nodes.