Мой блог
Needle 2: компактная модель для вызова функций на локальных устройствах

Компания Cactus Compute представила Needle 2 — открытую модель с 45 миллионами параметров, предназначенную для вызова функций (tool calling), управления устройствами и структурированного извлечения данных. Весь программный продукт поставляется в виде единого бинарного файла размером 14 мегабайт, которому для работы полноценной сессии требуется около 28 мегабайт оперативной памяти. Веса модели обучены и развертываются в формате CQ2-bit с использованием технологии Cactus Quants. Модель упакована в собственный движок компании на C++, поэтому пользователям не нужно устанавливать среду выполнения или загружать что-либо в момент инференса.
Заявленная скорость генерации (декодирования) составляет 500 токенов в секунду на одноплатном компьютере Raspberry Pi 5, от 400 до 1500 токенов в секунду на гарнитурах Meta Quest 3S и Apple Vision Pro, а также от 300 до 700 токенов в секунду на бюджетных смартфонах стоимостью до 200 долларов. Разработчики формулируют концепцию предельно четко и узко: преобразование неструктурированной фразы в типизированную сигнатуру функции не требует ни универсальных знаний об окружающем мире, ни развернутого текста. Именно поэтому здесь достаточно 45 миллионов параметров, и именно поэтому модель ориентирована на железо, полностью лишенное дискретных графических процессоров (GPU) и нейропроцессорных модулей (NPU).
Практическая применимость и сценарии развертывания
Пригодна ли новинка для реального использования? Безусловно, Needle 2 поставляется в виде предварительно собранных бинарников и статической библиотеки для macOS, различных дистрибутивов Linux (x86-64, ARM64, ARMv7, RISC-V, MIPS32el), Windows, Android, iOS, watchOS, tvOS и WebAssembly. Представители Cactus сообщают, что приложение Pebble Index 01 уже задействует Needle локально для обработки голосовых команд без подключения к интернету.
Целевая аудитория и сферы применения:
- Компании: любые команды, выпускающие прошивки или приложения для ограниченных по ресурсам устройств. Сюда относятся посевные стартапы в сфере носимой электроники и интернета вещей (IoT), производители потребительской электроники среднего сегмента, разработчики робототехники и крупные изготовители оборудования, нуждающиеся в надежном автономном резервном механизме. Облачные SaaS-команды извлекут из этого решения минимум пользы.
- Отрасли: «умный дом», носимые гаджеты, бюджетные мобильные устройства, бортовые автомобильные системы управления, сервисная робототехника, торговые киоски и POS-терминалы, сетевые маршрутизаторы, IP-камеры, а также регламентированные сферы, где аудиоданные не должны покидать локальное устройство.
- Сценарии: преобразование голоса в действие на устройствах без экрана, автономное управление бытовой техникой, извлечение полей из квитанций и счетов, тегирование перечислений (enum), а также локальная маршрутизация с передачей запроса в облако исключительно при низком уровне уверенности модели.
Архитектура: Простая сеть внимания
В основе Needle 2 лежит архитектура, получившая название Simple Attention Network (простая сеть внимания). Этот подход заменяет стандартный модуль прямой связи (FFN) на многослойный персептрон Адамара (Hadamard MLP), сохраняет механизм внимания GQA (Grouped-Query Attention), добавляет ключе-значимую память engram на основе хешированных n-граммных таблиц, а также использует многолинейные гиперсвязи. Нейросеть насчитывает 27 слоев при ширине скрытого слоя в 512 элементов. Базовое исследование опубликовано на платформе arXiv под названием «Контролируемое исследование трансформеров только с механизмом внимания» (A Controlled Study of Attention-Only Transformers).
Для предварительного обучения применялся собственный корпус объемом 115 миллиардов токенов, а на этап дообучения ушло еще 38 миллиардов токенов. Исследовательская группа отмечает для сравнения, что модель LFM2.5-230M обучалась на 19 триллионах токенов. При этом Needle 2 расходует 70 мегафлопс (MFLOPs) на один токен, причем 35 миллионов из 45 миллионов параметров активно задействованы в матричных умножениях (matmul-active). Для сравнения: LFM2.5 230M тратит 460 мегафлопс, FunctionGemma 270M — 540 мегафлопс, а Apple FM находится на отметке около 6000 мегафлопс.
Движок, грамматика, поиск и оценка уверенности
Веса модели никогда не распаковываются в оперативную память. 2-битные коды разворачиваются прямо внутри векторных регистров и объединяются в целочисленные скалярные произведения, благодаря чему вся арифметическая цепочка исполняется в формате int8. При запуске единый бинарный файл опрашивает центральный процессор и выбирает оптимальный уровень ядра: SDOT, NEON, AVX2, векторные инструкции RISC-V, wasm SIMD или скалярный вариант.
Побайтовая грамматика, скомпилированная из пользовательских JSON-схем, строго ограничивает каждый генерируемый токен. Поскольку сопоставитель заранее «знает», какие токены легитимны еще до появления логитов, движок пропускает до 98 процентов проекций словаря на структурных токенах. Модуль внимания использует скользящее окно размером 256 токенов, а системный диалог и объявления инструментов зафиксированы в качестве стационарных приемников ключей-значений (KV sinks). Объем памяти остается на уровне около 28 мегабайт вне зависимости от общей длины беседы.
Если объявлено пять инструментов или меньше, они отображаются напрямую. При превышении этого лимита контрастирующий поисковый модуль (contrastive retrieval head) однократно векторизует каждую схему, оценивает входящий запрос для каждого шага диалога и отбирает только пять наиболее релевантных вариантов. Невыбранные инструменты становятся недоступными, а не просто маловероятными.
Каждый ответ сопровождается показателем уверенности, который рассчитывается как минимум между откалиброванной апостериорной головой и вероятностью декодирования токенов вызова. Запросы не по теме возвращают пустой вызов []. Контракт работы строится вокруг порогового значения: модель выполняет действие при превышении порога, либо запрашивает повтор или передает задачу наверх при его недоборе.
Результаты тестирования
Команда Cactus оценила производительность на пяти публичных бенчмарках для вызова функций, используя строгие критерии точного совпадения (ordered strict exact match), где имена, порядок вызовов и каждый аргумент должны сходиться идеально. Needle 2 запускалась сквозным образом через поставляемый движок в конфигурации CQ2-bit с активным поиском, в то время как базовые модели работали в формате f16 под управлением vLLM.
- Mobile Actions (961 тест): Needle 2 — 63.7, LFM2.5 230M — 69.1, FunctionGemma 270M — 64.0, Apple FM — 57.6
- DroidCall (200 тестов): Needle 2 — 17.0, LFM2.5 230M — 11.0, FunctionGemma 270M — 17.5, Apple FM — пропуск
- Seal-Tools in-domain (700 тестов): Needle 2 — 32.6, LFM2.5 230M — 26.9, FunctionGemma 270M — 16.3, Apple FM — пропуск
- Seal-Tools OOD (654 теста): Needle 2 — 28.7, LFM2.5 230M — 17.0, FunctionGemma 270M — 15.6, Apple FM — пропуск
- BFCL v4 одношаговый (3641 тест, общий результат): Needle 2 — 42.6, LFM2.5 230M — 60.8, FunctionGemma 270M — 46.1, Apple FM — 61.7
Needle 2 лидирует в обоих подмножествах бенчмарка Seal-Tools и показывает точность имен функций 98.3 процента на Mobile Actions. Она уступает в BFCL v4, что разработчики объясняют спецификой распределения: их собственный обучающий корпус ориентирован на действия потребительских устройств, а не на общие или корпоративные API. Доля корректно сформированных ответов по всем 3641 строке BFCL составляет 93.4 процента. Команда заранее подчеркивает два фактора: базовые модели в формате f16 давали им определенное преимущество, равно как и узкая специализация задач играла на руку Needle.
Основные выводы
- Needle 2 представляет собой модель вызова функций с 45 миллионами параметров, упакованную в бинарный файл размером 14 мегабайт и потребляющую около 28 мегабайт оперативки за сеанс.
- Формат CQ2-bit закладывается непосредственно в процессе предварительного обучения, а не применяется постфактум, поэтому развертываемая модель полностью совпадает с обученной.
- Новинка опережает конкурентов в тестах Seal-Tools как для доменных (32.6), так и для внедоменных (28.7) задач, но отстает в общем зачете BFCL v4 (42.6).
- Скользящее окно на 256 токенов в сочетании с закрепленными приемниками инструментов превращает объем оперативной памяти в фиксированный предел, а не в растущую кривую.
- Метрики уверенности и отказы в виде пустых вызовов превращают проблему перехода от периферийных вычислений к облачным в осознанное продуктовое решение.
Источник: marktechpost.com

