Как уместить ИИ в умные очки и не сойти с ума от тормозов

15 июл 2026
11,065
711
63
3 недели

Представьте, что вы делаете софт для умных очков или часов. Вам нужно, чтобы девайс понимал голосовые команды: «выключи свет», «какая завтра погода в Питере?» или «забронируй столик». Обычно для этого дергают API больших языковых моделей вроде Gemini или GPT-4. Но тут начинаются проблемы: задержка в пару секунд убивает весь пользовательский опыт, а счета за токены растут быстрее, чем количество пользователей.

Команда из Cactus Compute решила пойти другим путем. Они взяли знания из огромной Gemini 1.5 и «перелили» их в крошечную модель Needle размером всего в 26 миллионов параметров. Для сравнения: это в сотни раз меньше, чем популярные «малыши» вроде Llama-3-8B или даже Qwen-0.5B.

Logo

Что умеет эта кроха

Needle — это не чат-бот, который будет рассуждать с вами о смысле жизни. Это узкоспециализированный инструмент для Function Calling (вызова функций). Она берет запрос пользователя на естественном языке и превращает его в структурированный JSON, который понимает ваш код.

Главная фишка здесь в скорости. На их собственной инфраструктуре модель выдает безумные 6000 токенов в секунду на префилле и 1200 на генерации. Но даже если запустить её локально на обычном MacBook, она работает практически мгновенно.

Вот несколько вещей, которые делают Needle интересным проектом:

Реклама
  • Модель обучалась на 200 миллиардах токенов. Это серьезный объем для такого размера.
  • Она заточена под работу на «границе» (edge computing) — телефонах, носимых устройствах и IoT.
  • В комплекте идет удобный Playground, где можно дообучить модель под свои специфические инструменты буквально в пару кликов.

Как это устроено внутри

Архитектура называется Simple Attention Network. Если заглянуть в схему, которую авторы оставили в репозитории, можно увидеть довольно изящное решение.

Модель состоит из энкодера на 12 слоев и декодера на 8 слоев. Интересно, что в энкодере нет привычных Feed-Forward сетей (FFN), там только Self-Attention и Gated Residual соединения. Это сильно экономит память и вычислительные ресурсы. Веса эмбеддингов и выходного линейного слоя связаны (tied weights), что тоже стандартный трюк для уменьшения размера модели без потери качества.

Авторы честно говорят: Needle — это эксперимент. Она обходит FunctionGemma-270m и Qwen-0.6B в задачах вызова функций, но пасует в обычных диалогах. У маленьких моделей мало «памяти» о мире, поэтому их легко сбить с толку сложным вопросом, не касающимся дела.

Быстрый старт и дообучение

Развернуть проект проще простого. После клонирования репозитория и запуска скрипта настройки, команда needle playground открывает веб-интерфейс. Там можно сразу потестировать модель на своих примерах.

Если нужно встроить Needle в Python-проект, код выглядит привычно:

from needle import SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer

# Загружаем веса и конфиг
params, config = load_checkpoint("checkpoints/needle.pkl")
model = SimpleAttentionNetwork(config)
tokenizer = get_tokenizer()

# Просим модель вызвать функцию
result = generate(
    model, params, tokenizer,
    query="Сколько градусов сейчас в Сочи?",
    tools='[{"name":"get_weather","description":"Узнать погоду в городе.","parameters":{"location":{"type":"string","description":"Название города."}}}]'
)
print(result)
# [{"name":"get_weather","arguments":{"location":"Сочи"}}]

Самое ценное — это простота дообучения (fine-tuning). Если у вас есть специфические API, Needle можно «натаскать» на них. Авторы рекомендуют подготовить хотя бы 120 примеров на каждый инструмент, чтобы избежать переобучения. В репозитории даже есть скрипт для генерации таких данных с помощью «старшей» Gemini.

Кому стоит попробовать

Я вижу Needle в проектах, где критична приватность и работа без интернета. Например, в системе умного дома, которая не должна отправлять ваши разговоры в облако, или в мобильном приложении для управления сложным интерфейсом голосом.

Конечно, 26 миллионов параметров накладывают ограничения. Вы не сможете попросить её написать эссе или перевести сложный технический текст. Но если ваша задача — понять, что пользователь хочет «сделать потише» или «записать встречу на четверг», Needle справится с этим быстрее и дешевле любой другой модели.

Проект открытый, веса лежат на Hugging Face, а лицензия MIT позволяет использовать его в коммерческих продуктах. Если вы давно искали способ добавить ИИ в микроконтроллер или старый смартфон — это отличный кандидат для тестов.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.