📈 GH Trending Explorer 🎲 Surprise me

← all repos

slavabars / decision-cascade

git clone https://github.com/slavabars/decision-cascade.git v0.7.0 · 3d ago

Local decision engine with typed, calibrated outputs (Noul/Choice/Score): cheap→strong cascade, ECE/Brier calibration, SystemOne protocol interop. Apache-2.0.

—
stars, 24h
+70
stars, 7 days · #714
+70
stars, 30 days · #3,507
70
★ total · +70% this week
0
forks · 0 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguagePython
LicenseApache-2.0
Created2026-10-13 (7d ago)
Last push2d ago
Watchers1
OwnerUser

GitHub topics

Links

README excerpt
# decision-cascade
Machine-native система принятия решений в духе **Jev (TypeSafe AI)**, но с
открытым исходным кодом, локальным исполнением и полным циклом
«обучение → калибровка → оценка → деплой».
Вместо того чтобы заставлять LLM генерировать текст ответа, модель **решает**:
state-состояние превращается в признаки, а головы решений возвращают
**типизированные, вероятностные и калибруемые** ответы — Noul (да/нет),
Choice (выбор из опций) и Score (оценка на шкале) — без единого токена генерации.
## Что это за подход
### Машинные решения, а не генерация текста
Обычный LLM-бот «думает» свободным текстом и выдаёт ответ естественным языком.
Такой ответ невозможно:
- проверять на корректность (нет машиночитаемого контракта);
- калибровать (вероятность в тексте не измерить);
- агрегировать (парсинг выводов хрупок).
Движок принимает решения как **функция состояния → вероятность**:
 [code] 
Результат — строгий датакласс с `confidence`, валидируемым распределением
(сумма = 1.0 ± 1e-6) и версией схемы. Это «System 1»-мышление: быстрое,
дискретное, вероятностное решение по состоянию — без глубокого рассуждения.
### Почему это надёжнее
- **Типизированные выходы** — каждый вопрос имеет заявленный тип и схему
 (Noul/Choice/Score), клиент проверяет ответ по контракту (`SCHEMA_VERSION = "1"`).
- **Вероятности, а не слова** — модель обязана выдать распределение; его можно
 мерять на калибровку (Expected Calibration Error, Brier score) и править.
- **Параллельная оценка** — все вопросы обрабатываются одним прогоном: один
 forward энкодера + N голов. Низкая задержка и дешёвая инференция.
- **Без авторегрессии** — нет цикла генерации токенов, поэтому latency
 детерминированна и мала (на CPU см. раздел «Оценка»).
- **Обучаемые головы** — головы можно дообучать под свои домены: SFT на разметке
 и RLCD (reinforcement learning for calibrated decisions, GRPO-подобный) для
 прямой оптимизации калибровки.
## Позиционирование
### Хостед Jev против локального decision-cascade
| Критерий | Jev (платный SaaS) | decision-cascade |
|----------|--------------------|---------------------------|
| Цена | Подписка/кредиты API | Бесплатно, открытый исходный код |
| Где работают данные | Облако вендора | Локально: ваш сервер, ваши данные |
| Модель | Закрытая, фиксированная | Выбирается вами: от gpt2 (CPU) до gemma-4-12B (GPU) |
| Выходной контракт | API вендора | Ваш: типизированный SDK, версиируемая схема |
| Приватность | Обращения уходят вовне | Ничего не покидает машину (после дистанционной загрузки весов) |
| Vendor lock-in | Есть | Нет: деплой через простые shell/systemd |
| Калибровка | Чёрный ящик | Встроенные метрики ECE/Brier + CLI |
| Обучение под домен | Нет | SFT + RLCD прямо в репозитории |
| Задержка | Сетевая (RTT + инференс вендора) | Локальная, настраиваемая (обрезка входа `DECISION_MAX_LENGTH`); см. «Оценка» |
| Внедрение | Только через их API | HTTP + Python SDK в вашем стеке |
Латентность измеряется прямо в репозитории (`eval/latency`) и сильно зависит
от модели