Strands выпустила Decider 2B: малую открытую модель решений для ИИ-агентов

Команда Strands, ранее запустившая площадку strands-labs для экспериментов с агентным ИИ, выпустила Strands Decider 2B (strands-decider-2b), небольшую модель решений (decision model, её же называют system one model). Такая модель не пишет произвольный текст: она выбирает между заданными вариантами (например, «Эта строка про кофемашину? Да или нет», «На каком языке фраза: английский, зулу или нидерландский») и выставляет простые числовые оценки (например, насколько тональность фразы позитивна, от 0 до 1). Интерес к этому классу моделей, по словам авторов, вырос после запуска Jev компанией TypeSafe AI в начале этого месяца.
Авторы описывают компромисс так. Взамен гибкости модели решений быстрее и способнее при том же размере, всегда отвечают одним из предложенных вариантов и могут работать с очень малой задержкой. Кроме того, к каждому решению они выдают оценку надёжности («насколько можно быть уверенным, что это «да» верно»), которой, как пишут авторы, нет в API передовых LLM, и позволяют дёшево задавать несколько вопросов об одном и том же запросе. Обратная сторона: из-за генерации всех ответов за один параллельный проход модель заметно хуже рассуждающих моделей справляется со сложными задачами и не подходит для программирования, чат-ботов, суммаризации документов и других обычных задач LLM.
Strands Decider 2B, модель на 2 млрд параметров, пригодная для запуска на локальном CPU или GPU; авторы утверждают, что она отвечает на содержательные вопросы за десятки миллисекунд. Код выложен на GitHub в открытом доступе, веса, на Hugging Face, вместе со всеми обучающими данными и скриптами. Лицензия в тексте не указана.
Архитектура: берётся предобученная LLM-основа (torso) Qwen3.5-2B, у неё убирают языковую голову (LM head), лишая способности генерировать текст, и заменяют её «указательной головой» (pointer head). Она сопоставляет скрытое состояние в позиции каждого варианта со скрытым состоянием в позиции
Производительность. Авторы измеряют точность и калибровку (насколько можно доверять оценкам уверенности) на открытой части теста JevBench, калибровку, по метрике Бриера (Brier score). По этим показателям модель заняла 3-е место из 33 в классе 2B и 1-е из 30, если не считать модели чуть крупнее 2B. Конкретные значения метрик и названия моделей выше в тексте не приведены. Медианная задержка локального решения, около 115 мс на широко доступном оборудовании; время растёт примерно линейно с размером задачи. График построен на локальной Nvidia RTX 3090 для версии v18; на MacBook с M3 задержка для небольших задач, около 153 мс (медиана). На простых задачах JevBench модель отвечает верно в 100% случаев.
Почему 2B: авторы хотят, чтобы можно было пробовать и даже дообучать модель на уже имеющемся железе, а два миллиарда параметров считают золотой серединой, достаточно мало для экспериментов и достаточно много для полезной работы.
Применения. Авторы сообщают о раннем успехе в маршрутизации между моделями, выборе инструментов, оценке качества, защитных ограничениях (guardrails), памяти, управлении контекстом и классификации политик. Также они видели гибридных агентов, где LLM решает самые трудные вопросы, а модель решений, простые рутинные, что снижает стоимость и задержку, а также эксперименты с фиксированными языками рабочих процессов, игры, автоматизацию задач и прохождение лабиринтов.
Пример в репозитории (examples/strands/): агент работает локально, decider тоже локально, а основной LLM, модель по умолчанию из Amazon Bedrock. У агента есть демо-инструмент get_weather и намеренно «услужливый» системный промпт: на вопрос «Какая погода?» без города он угадывает город и вызывает инструмент. Перед вызовом Decider читает диалог и предложенный вызов и отвечает на два вопроса «да/нет»: подкреплены ли аргументы словами пользователя (нет) и не слишком ли рано вызывать инструмент. Несколько строк на Python превращают предсказания в решение, и агент переспрашивает, какой город имелся в виду. Это работает через систему вмешательств Strands: InterventionHandler с методом before_tool_call возвращает действие Proceed, Deny, Confirm (остановиться и спросить человека) или Guide (вернуть модели ход с обратной связью). Авторы подчёркивают, что пример, иллюстрация, а не рекомендация: вопросы, порог и политика подобраны вручную. Команда также работает над библиотеками для интеграции моделей решений и обещает скорые обновления репозитория.
Ключевые факты
- Strands Decider 2B, открытая модель на 2 млрд параметров: не генерирует текст, а выбирает из заданных вариантов и выдаёт числовые оценки с показателем надёжности; код на GitHub, веса на Hugging Face, данные и скрипты обучения приложены.
- Основа, Qwen3.5-2B без языковой головы; вместо неё pointer head (чуть больше миллиона параметров), основа дообучена LoRA-адаптером ранга 16; выпущена версия v19.
- По точности и калибровке на открытой части JevBench, 3-е место из 33 в классе 2B и 1-е из 30 без моделей чуть крупнее 2B; на простых задачах JevBench, 100% верных ответов.
- Медианная задержка решения около 115 мс на широко доступном оборудовании, около 153 мс для небольших задач на MacBook с M3; задержка растёт примерно линейно с размером задачи.
- Авторы прямо называют ограничения: модель заметно хуже рассуждающих моделей на сложных задачах и не годится для кодинга, чат-ботов и суммаризации.
Почему это важно
Модели решений (system one models), новый класс, к которому, по словам авторов, привлёк внимание запуск Jev от TypeSafe AI в начале месяца. Strands Decider 2B, первый вклад команды Strands в эту область: полностью открытый вариант, где доступны не только веса, но и обучающие данные, скрипты и описание изменений в каждой версии. Идея в том, что дешёвые и быстрые решения («да/нет», выбор инструмента, маршрутизация) можно выносить из дорогих вызовов LLM в локальную маленькую модель.
Кому это важно
Разработчикам ИИ-агентов, которые строят рабочие процессы на Strands Harness SDK или похожих системах и хотят снизить стоимость и задержку рутинных решений. Также исследователям и энтузиастам, которым нужна небольшая модель для экспериментов: по словам авторов, её можно запускать и даже обучать на уже имеющемся железе.
Как это применить
Проще всего начать с командной строки strands-decider: можно передать состояние и вопрос с вариантами ответа, а в выводе увидеть оценки вероятности по вариантам (в примере наибольшую получает вариант billing). В репозитории есть примеры внутри агента Strands (examples/strands/): перед вызовом инструмента модель отвечает на вопросы «да/нет» через InterventionHandler с методом before_tool_call. Код лежит на GitHub, актуальные снимки весов, на Hugging Face. Авторы упоминают гибридные схемы: LLM берёт трудные решения, Decider, простые. Лицензия кода и весов в тексте не названа, поэтому условия использования стоит проверить в репозитории.
Можно ли доверять
Источник, блог самих авторов модели, это презентация собственного релиза, а не независимая проверка. Рейтинг «3-е из 33» относится к точности и калибровке на открытой части JevBench; названия моделей выше и значения метрик в тексте не приведены, кто сделал JevBench, тоже не сказано. Сами авторы формулируют результат осторожно: точность и калибровка «конкурентны» среди известных им моделей этого класса. Цифра 115 мс относится к «широко доступному оборудованию», а график задержки построен на RTX 3090 для версии v18, тогда как выпущена v19. Заявление о «десятках миллисекунд» и медиана 115 мс в тексте между собой не сведены. Дата публикации и автор поста не указаны.
Риски и подводные камни
Модель не генерирует текст и заметно слабее рассуждающих моделей на сложных задачах, поэтому не заменит LLM для кодинга, чат-ботов или суммаризации. Выводы об успехах в маршрутизации, защитных ограничениях и других применениях авторы описывают как ранние. Пример с агентом, иллюстрация, а не рекомендация: вопросы, порог и политика подобраны вручную, и для реальных задач их придётся продумывать самостоятельно. Библиотеки интеграции ещё в работе, а сам класс моделей пока новый.