Needle 26M: дистиллированная из Gemini модель для function calling – запуск на бюджетных устройствах | AiManual
AiManual Logo Ai / Manual.
12 Май 2026 Инструмент

Needle: как 26 миллионов параметров заменяют гигантов при вызове функций

Модель Needle с 26M параметров, дистиллированная из Gemini, выполняет tool calling со скоростью 6000 tok/s prefill – идеально для мобильных AI-агентов. Сравнени

Карманный дирижёр: как 26 миллионов нейронов учат нейросеть звонить API

Вы когда-нибудь пробовали запустить агента с вызовом функций на телефоне? А на Raspberry Pi? Классические LLM (вроде Gemini 2.5 Pro или Sonnet 4.6, про чьи битвы мы писали здесь) требуют гигабайты VRAM и горы электричества. Но вот появляется Needle — крошечная модель в 26 миллионов параметров, которая умеет дистиллированно, чётко и с нечеловеческой скоростью (6000 токенов в секунду на prefill) вызывать любые внешние инструменты. И да, это не шутка.

🧠
Дистилляция из Gemini — не просто копирование ответов, а перенос логики выбора инструментов и аргументов. В результате Needle наследует «чутьё» большой модели, но весит в 1000 раз меньше.

Что за зверь и почему это важно?

Needle — открытая модель, которая специализируется исключительно на tool calling: получив описание инструментов (функций) в JSON Schema, она генерирует вызов с нужными параметрами. Никаких лишних текстов, эмодзи или философских рассуждений — только чистый синтаксис. Это идеальный «клей» между NLU и API.

Сравните с FunctionGemma 270M — у того было 270 миллионов параметров и 97% точности. Needle имеет в 10 раз меньше параметров, но показывает сопоставимые результаты на стандартных бенчмарках (BFCL, API-Bank). Как? За счёт дистилляции из Gemini (мы разбирали возможности Gemini Pro для разработчиков) и очень плотного обучения на высококачественных данных.

Где это работает? Да везде.

Главная фишка — аппаратные требования. Для prefill нужно всего ~100 MB RAM, для генерации — около 50 MB. Это меньше, чем весит среднее фото. Вы можете запустить Needle:

  • На Android (с помощью ONNX Runtime или MLC-LLM)
  • На Raspberry Pi 4/5
  • Внутри браузерного расширения (аналогично Gemini Nano в Chrome, но ещё компактнее)
  • На микроконтроллерах с достаточной периферией (ESP32-P4 уже не предел)

Важный нюанс: модель не умеет вести свободную беседу. Она возвращает JSON с tool call или сообщение "no tool needed". Это feature, не баг — для агентных пайплайнов нужна именно железобетонная детерминированность.

Бенчмарки: бьётся с гигантами своего веса

МодельПараметрыBFCL v2 (acc)API-Bank (avg)Prefill speed (t/s)
Needle26M84.3%89.1%~6000
FunctionGemma270M85.1%88.5%~800
Qwen2.5 0.5B + fine-tune494M80.2%82.0%~900
Gemini 2.5 Flash~2B+96.3%95.5%облачная

Needle уступает FunctionGemma всего 1% на BFCL, но при этом в 10 раз быстрее по prefill и в 3 раза меньше по памяти. Проигрыш гигантским моделям ожидаем — они решают более общую задачу. Но для сценариев, где каждый мегабайт на счету (например, при выборе модели для 16 ГБ VRAM мы бы не рассматривали крошек, но тут совсем другой контекст — см. наш гайд), Needle — абсолютный чемпион.

Запуск за 30 секунд: стираем грань между «могу» и «делаю»

В репозитории модели лежат готовые веса в форматах PyTorch, ONNX и GGUF. Для быстрого старта достаточно установить pip install needl-ai (пакет называется needl) и написать пару строк:

import json
from needl import Needle

model = Needle.from_pretrained("needle-26m")
tools = [
    {
        "name": "get_weather",
        "description": "Получить температуру по координатам",
        "parameters": {
            "type": "object",
            "properties": {
                "lat": {"type": "number"},
                "lon": {"type": "number"}
            },
            "required": ["lat", "lon"]
        }
    }
]

text = "Какая погода в центре Москвы?"
result = model.call(text, tools, temperature=0.1)
print(json.dumps(result, indent=2))
# Вывод: {"function": "get_weather", "args": {"lat": 55.75, "lon": 37.61}}
На CPU (Intel Core i7-1265U) prefill занимает ~2 мс, генерация ~30 мкс на токен. Реальный пример — бот для Telegram, который реагирует на голосовые команды через Whisper на том же устройстве, а Needle вызывает функции календаря и напоминаний. Всё работает на старом Galaxy S20 с выключенным экраном.

Подводные камни и сценарии, где Needle не справится

Лихая скорость даётся ценой — модель не понимает контекст длиннее 1024 токенов. Если диалог с пользователем разросся, нужно вырезать только последнее сообщение и держать историю отдельно. Для типичного function calling этого хватает, но для chain-of-thought с многократными вызовами инструментов потребуется обёртка.

Второй нюанс: Needle обучена на английском и русском, но многозначные запросы (например, «скинь то, что я просил вчера») может интерпретировать криво. Тут без ручного маппинга имен функций не обойтись.

Сравнение с Gemini 2.5 Flash в части «рассуждений» — не в пользу Needle: она не генерирует размышления, а сразу даёт вызов. Но для финального шага в пайплайне это даже плюс.

Кому бежать ставить?

  • Мобильные разработчики, уставшие от лагов и нагрева телефонов. Needle заменяет облачный вызов Gemini для простых actions.
  • Создатели голосовых ассистентов — модель легко грузится в память вместе с ASR (Whisper tiny, например).
  • Хакеры IoT: на Raspberry Pi Zero 2W с 512 МБ оперативы запускается через ONNX Runtime. Сомневаетесь — сравните с железом из гайда по Gemma 4 локально.

Есть и те, кому Needle не нужен — если у вас есть доступ к API большой модели и не жалко latency (80 мс против 2 мс), выигрыш в скорости не так критичен. Но если вы строите офлайн-агента, который должен работать с батарейкой — альтернативы пока нет. Разве что взять GPT-4o mini через API и платить за каждый вызов, но это уже другая история.

Не конец, а начало

26M параметров — абсурдно мало по меркам 2026 года. Но именно такие модели делают AI-агентов по-настоящему повсеместными. Следом, вероятно, появятся дистиллированные версии Needle на квантование в 4 бита (8 МБ места) и версии для TFLite. Пока же это лучший бесплатный компаньон для function calling на грани возможностей устройств.

Советую взять исходники, потестить на своей задаче и понять: иногда размер — не главное. Ну, а если вам нужны все 26 миллионов причин попробовать — вот репозиторий на Hugging Face. Спойлер: даже на смарт-часах заводится.

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