Ollaya: запускаем open-source decision-модели локально
Ollaya — это Ollama для decision-моделей: запускайте Laya, decider, NLI и GLiClass локально за миллисекунды без облака и платных API.
Когда LLM — это молоток, а задача — не гвоздь
Представьте: в вашем агентском пайплайне нужно решить — эскалировать тикет в службу поддержки или нет. Достаточность, срочность, тон — всё это можно свести к одному вопросу с вариантами ответа. Зачем для этого гнать текст через GPT-4 с его латентностью в секунды и ценой за миллион токенов?
Многие AI-приложения используют большие языковые модели для задач, которые вовсе не требуют генерации текста. Агенту может просто понадобиться решить, какой инструмент вызвать, релевантен ли документ, насколько срочен запрос или нужна ли эскалация.
Именно для таких задач и появился класс моделей под названием decision models — и проект Ollaya, который делает их такими же простыми в использовании, как Ollama для LLM.
Что такое Jev и decision-модели
Чтобы понять Ollaya, нужно сначала разобраться с тем, что такое Jev-стиль принятия решений.
TypeSafe AI’s Jev подходит к подобным задачам иначе. Вместо того чтобы генерировать ответ токен за токеном, он принимает состояние приложения и структурированные вопросы и возвращает типизированные решения: варианты выбора, оценки, суждения «да/нет» и вероятности. TypeSafe AI описывает это как подход «System One Model»: использование AI как быстрого слоя принятия решений, а не универсального генератора текста.
Ollaya — это open-source runtime для decision-моделей, небольших моделей, которые принимают текст или JSON плюс типизированный вопрос и возвращают калиброванные вероятности вместо сгенерированного текста.
Decision-модель читает состояние (сообщение, письмо, тикет, любой JSON) плюс типизированные вопросы (выбор, оценка, да/нет) и возвращает калиброванные вероятности за один проход вперёд — за миллисекунды.
Главная претензия к Jev: сам Jev не является полностью открытым. Его архитектура, веса модели и полный процесс обучения не находятся в открытом доступе. Ollaya решает эту проблему, предоставляя аналогичный интерфейс поверх полностью открытых моделей.
Ollaya: архитектура и принцип работы
Ollaya запускает open decision-модели локально: загружает и обслуживает Laya, decider, NLI и GLiClass через TypeSafe-совместимый API.
Проект устроен максимально прагматично:
Один бинарник, знакомые команды
Команды ollaya serve, run, pull, list, ps, show, rm, cp, stop и create работают так же, как в Ollama. Если вы уже пользовались Ollama — кривая обучения практически нулевая.
Умная работа с весами
Ollaya публикует только небольшие ONNX-графы размером около 3 МБ каждый. Эти графы читают оригинальные файлы весов (обычно model.safetensors) из Hugging Face-репозитория автора, привязанные к конкретному коммиту и верифицированные по sha256. Ollaya никогда не перехостирует веса.
Это элегантное решение: проект остаётся лёгким и уважает права авторов оригинальных моделей.
TypeSafe-совместимый API
Эндпоинты POST /v1/systemone, /v1/decisions и GET /v1/models полностью совместимы с TypeSafe. Официальный SDK работает без изменений при установке TYPESAFE_BASE_URL=http://localhost:11435.
Это означает: если у вас уже есть код, работающий с Jev, вы переключаетесь на Ollaya заменой одной переменной окружения.
Аппаратная поддержка
Аппаратное обеспечение: ONNX Runtime на CPU и CUDA на GPU NVIDIA. Точность: fp16 на GPU и fp32 на CPU, выбирается при загрузке модели. Точность вывода: экспорты fp32 дают то же решение, что и PyTorch-эталон, на 100% из 2 383 вопросов на чекпоинт.
graph LR
A["Запрос: текст/JSON + вопросы"] --> B["Ollaya Daemon\n(порт 11435)"]
B --> C{"Роутер Laya"}
C -->|"English"| D["laya:en\nModernBERT-large"]
C -->|"Multilingual"| E["laya:multilingual\nmmBERT"]
C -->|"High accuracy"| F["decider:2b\nQwen3.5"]
D --> G["Калиброванные вероятности"]
E --> G
F --> G
G --> H["Ваш код / агент / MCP-клиент"]
Какие модели поддерживает Ollaya
CLI поставляется с библиотекой моделей: Laya, decider, NLI, GLiClass, Qwen3Guard, Kev и Von.
Рассмотрим ключевые модели подробнее:
Laya — флагманский энкодер
Laya — англоязычная decision-модель на основе ModernBERT-large (421M параметров). Самая быстрая: 8–10 мс для пяти вопросов на RTX 4090.
Роутер Laya определяет язык и скрипт каждого запроса, затем отвечает через laya:en или laya:multilingual.
decider — самый точный
decider — наиболее точная open decision-модель, которую поставляет Ollaya на сегодняшний день.
Доступны варианты decider:latest, decider:2b и decider:0.8b от Mapika (лицензия Apache-2.0). Это декодерные decision-модели на базе Qwen3.5. Каждый вопрос отвечается за один проход вперёд, считывая логиты букв вариантов ответа в слоте — без генерации текста.
decider:2b набирает 0.591 на типизированных решениях — лучший результат среди всех моделей в библиотеке.
По скорости: на RTX 4090 медианный запрос с пятью вопросами занимает около 155 мс для 0.8b и 190 мс для 2b. Это медленнее энкодеров, но всё равно быстрее размещённого Jev.
Сравнительная таблица моделей
| Модель | Параметры | Скорость (RTX 4090) | Точность | Лицензия |
|---|---|---|---|---|
| laya:en | 421M (ModernBERT) | 8–10 мс / 5 вопросов | Высокая | Apache-2.0 |
| laya:multilingual | ~322M (mmBERT) | ~10–15 мс | Хорошая | Apache-2.0 |
| decider:0.8b | 0.8B (Qwen3.5) | ~155 мс | 0.57 typed | Apache-2.0 |
| decider:2b | 2B (Qwen3.5) | ~190 мс | 0.591 typed | Apache-2.0 |
| Jev (TypeSafe, hosted) | Закрыт | 236–276 мс | 0.883 | Проприетарный |
laya:en. Если задача требует высокой точности и у вас есть GPU с 24 ГБ памяти — decider:2b даст лучший результат среди open-source вариантов, при этом всё ещё опережая hosted Jev по скорости.Практика: установка и первые запросы
Вот как выглядит реальный рабочий процесс с Ollaya:
Установка
curl -fsSL https://ollaya.cobanov.dev/install.sh | sh
Запуск модели
# Запустить сервер (или он стартует автоматически)
ollaya serve
# Загрузить и запустить модель с пресетом триажа
ollaya run laya --preset triage "I was charged twice this month and want a refund."
# Или более сложный пример с decider
ollaya run decider --preset triage "My order never arrived and support ignores me. Refund me today or I'm switching to your competitor."
Вызов через Python SDK (совместимость с TypeSafe)
import os
os.environ["TYPESAFE_BASE_URL"] = "http://localhost:11435"
# Официальный TypeSafe SDK работает без изменений
from typesafe_sdk import TypeSafeClient
client = TypeSafeClient()
result = client.decisions.create(
state="Customer asked for a refund after 3 failed deliveries.",
questions=[
{"type": "choice", "query": "Priority level?", "options": ["low", "medium", "high", "critical"]},
{"type": "score", "query": "Sentiment score?"},
]
)
print(result)
Создание кастомной модели через Modelfile
Директивы FROM, QUESTIONS, CALIBRATION, PARAMETER precision и LICENSE позволяют зафиксировать набор вопросов в модели, которую можно запускать по имени.
FROM laya
QUESTIONS ./triage.json
PARAMETER precision fp32
ollaya create triage -f Modelfile
ollaya run triage "Customer message here..."
Интеграция с MCP-агентами
Команда ollaya mcp обслуживает модели для Claude Code, Claude Desktop, Cursor и других MCP-клиентов (claude mcp add ollaya -- ollaya mcp).
claude mcp add ollaya -- ollaya mcp
ollaya serve на своём сервере и направляете запросы туда. Данные не покидают периметр, стоимость — $0 за запрос, латентность — 10 мс вместо 1–2 секунд.Ollaya vs Jev: честное сравнение
Сайт Ollaya приводит цифры: 8–10 мс для Laya на RTX 4090 против 236–276 мс для размещённого TypeSafe Jev, без платы за токены и с данными, никогда не покидающими машину.
Но важно быть честными: TypeSafe Jev является закрытым, размещённым и требует включения в список ожидания, поэтому open-source реимплементации начали появляться уже в первые дни.
Преимущество Jev на сегодня — точность. Kev-9B набирает 0.822 на новых источниках против 0.857 у Jev, его доля уверенных ошибок составляет 4.0% против 3.7%. Разрыв есть, но он сокращается.
Ключевое отличие: laya/jev и аналоги дают zero-shot классификатор, не требующий обучения. Вы можете с помощью prompt-инжиниринга быстро получить достаточно надёжный и дешёвый decision-движок, на котором удобно итерировать.
| Характеристика | TypeSafe Jev | Ollaya + Laya | Ollaya + decider:2b |
|---|---|---|---|
| Лицензия | Проприетарный | Apache-2.0 | Apache-2.0 |
| Размещение | Облако (waitlist) | Локально | Локально |
| Латентность | 236–276 мс | 8–10 мс | ~190 мс |
| Стоимость | Платный API | $0 | $0 |
| Конфиденциальность | Данные в облаке | Данные на месте | Данные на месте |
| Точность (typed) | ~0.883 | Ниже | 0.591 |
| Офлайн-работа | ❌ | ✅ | ✅ |
Для каких задач подходит Ollaya
Подходящие сценарии: семантическая маршрутизация, триаж, ранжирование, оценка по рубрикам, модерация, верификация и низколатентные решения внутри ограниченных рабочих процессов.
А вот где стоит проявить осторожность: размещённая Jev-модель работает только с текстом. Проекты, работающие с браузером, аудио, изображениями и робототехникой, используют извлечённый текст или структурированные наблюдения либо отдельные модели восприятия.
Ollaya особенно ценна для:
- Агентских пайплайнов — принятие решений о маршрутизации между инструментами без дорогих LLM-вызовов
- Модерации контента — быстрая классификация без отправки данных во внешние сервисы
- Triaging систем поддержки — определение срочности и типа тикета в реальном времени
- Локального / on-premise развёртывания — там, где данные не должны покидать периметр
- Стоимостной оптимизации — замена дорогих API-вызовов на локальный инференс
В конечном счёте вы можете взять задачу, которая сейчас решается через LLM, стоит деньги и утекает данные в облако, и заменить её локальной моделью, которая отвечает за миллисекунды типизированными выводами, с которыми ваш код может работать напрямую.
Заключение
Ollaya заполняет важную нишу в экосистеме локального AI. Если Ollama сделала LLM доступными для каждого разработчика с ноутбуком, то Ollaya делает то же самое для класса моделей, о котором многие ещё не слышали — decision models.
Jev подчёркивает важную идею в AI: не каждому приложению нужна генерация текста. Для многих агентских рабочих процессов требуемый вывод — это просто решение, вероятность или классификация. Open-source проекты Laya, Kev, Von, Nimble, SemIf, Rizzo Flow и NanoJev исследуют разные способы сделать этот подход доступным локально. По мере того как AI-агенты становятся сложнее, небольшие decision-модели могут стать важным слоем между сырыми данными и большими языковыми моделями.
Ollaya — сегодня лучший способ попробовать этот подход без регистрации, ожидания и кредитной карты. Один curl-команды — и вы уже запускаете decision-модели локально.
Попробуйте прямо сейчас:
curl -fsSL https://ollaya.cobanov.dev/install.sh | sh
ollaya run laya --preset triage "Ваш тестовый текст здесь"