Быстрый старт
pip install "transformers>=5.18" "peft>=0.21" torch accelerate
from decide import decide # decide.py лежит в этом репозитории print(decide( state=("Регламент: командировочные расходы до 5 000 ₽ в сутки согласует руководитель, " "свыше — финансовый директор. Без чеков расходы не возмещаются.\n" "Заявка: Иванов, Казань, 3 суток, гостиница 4 200 ₽/сутки, чеки приложены."), question="Кто согласует заявку?", options=["Руководитель.", "Финансовый директор.", "Отказать: нет чеков.", "Недостаточно данных — передать человеку."],))# {'choice': 'Руководитель.', 'confidence': 0.93, 'auto': True,# 'probs': {'Руководитель.': 0.93, 'Финансовый директор.': 0.01, 'Отказать: нет чеков.': 0.0,# 'Недостаточно данных — передать человеку.': 0.06}}
Внутри decide.py — всего 40 строк: системный промпт, JSON {state, question, options} в чат-шаблоне Qwen, логиты последней позиции по токенам букв A, B, C…, деление на температуру 1,4, softmax.
Порог. auto: True, если уверенность ≥ 0,9. Порог подобран на калибровочной выборке; на отложенных тестах решения выше него были верны в 95–96% случаев; ниже порога отдавайте решение человеку.
Совет. Числа, суммы и сроки считайте кодом и передавайте модели готовым фактом («сумма превышает лимит: да»). Модель читает регламент, но не считает.
Результаты
Все тесты — отложенные выборки, проверенные на пересечения с обучением. Вероятности — один прямой проход, softmax по буквам вариантов; температура подобрана на отдельной калибровочной выборке.
Автоматизация при 95% — какую долю решений можно отдать модели, если требовать 95% точности среди них (решения берутся по убыванию уверенности).
Уверенные ошибки — доля ответов с уверенностью > 0,9, которые оказались неверными.
1. Русские задачи решений (6520 задач)
Открытые русские наборы и бизнес-регламенты новых типов, которых не было в обучении.
Table with columns: Qwen3.5-4B (база), tev1-4B, Kev-4B, YandexGPT-5-Lite-8B, GigaChat3.1-10B-A1.8B, ru-decision-4b | Qwen3.5-4B (база) | tev1-4B | Kev-4B | YandexGPT-5-Lite-8B | GigaChat3.1-10B-A1.8B | ru-decision-4b |
|---|
| Открытые русские наборы (TERRa, RCB, DaNetQA, отзывы, заголовки, MASSIVE) | 75,6 | 76,3 | 77,6 | 77,2 | 75,9 | 86,3 |
| Новые русские наборы (Кинопоиск, RuSciBench, CEDR, PARus, ruOpenBookQA, ruWorldTree) | 79,0 | 78,2 | 71,4 | 80,2 |
YandexGPT и GigaChat — без дообучения, по вероятностям букв ответа.
2. Задачи, которых не видела ни одна модель
8 русских наборов (Banking77-ru, жалобы граждан — ведомство и срочность, токсичность в поддержке, Georeview, RuCoLA, RWSD, ruHateSpeech), 260 реалистичных задач, написанных вручную, и публичная часть JevBench (231, англ.). Калибровка — одна для всех моделей.
Table with columns: Qwen3.5-4B, tev1-4B, Kev-4B, Plumb-4B, Imajev-4B, YandexGPT-5-Lite-8B, GigaChat3.1-10B, ru-decision-4b | Qwen3.5-4B | tev1-4B | Kev-4B | Plumb-4B | Imajev-4B | YandexGPT-5-Lite-8B | GigaChat3.1-10B | ru-decision-4b |
|---|
| Banking77-ru (77 классов) | 83,8 | 78,2 | 76,2 | 90,0 | 90,4 | 84,2 | 86,0 | 93,1 |
| Жалобы граждан: ведомство |
Итог честный: на задачах, которых не видел никто, модель лучшая в среднем по русским наборам, но не лидер по автоматизации и заметно слабее на реалистичных задачах с компенсациями (см. «Ограничения»).
3. Английский
Тест рецепта tev1 (1000 задач) и перенос политик (300):
Table with columns: Qwen3.5-4B, tev1-4B, Kev-4B, ru-decision-4b | Qwen3.5-4B | tev1-4B | Kev-4B | ru-decision-4b |
|---|
| Основной (1000) | 781 | 879 | 816 | 883 |
| Перенос политик (300) | 166 | 300 | 233 | 293 |
Обучение
- LoRA r16, alpha 32, все линейные слои; 1 эпоха, lr 1e-4 (cosine), 100 112 задач, ~5,5 ч на одной RTX 4090; выбран чекпойнт шага 7200 из 7801 по валидации.
- Функция потерь: кросс-энтропия по логитам букв вариантов + 0,3 × кросс-энтропия по всему словарю на токене правильной буквы.
- Данные:
- открытые русские наборы: TERRa, RCB, DaNetQA, отзывы, заголовки, MASSIVE ru-RU, Кинопоиск, RuSciBench (GRNTI/OECD), CEDR, PARus, ruOpenBookQA, ruWorldTree;
- синтетические бизнес-регламенты: 24 типа правил, 5 стилей записи, факты полями и живым текстом, контрастные пары; ответ вычисляется кодом. Варианты «недостаточно данных — передать человеку» и «нужен точный расчёт — передать на проверку»;
- 12 тыс. задач из Open-Jev community-hard-mix (redistributable);
- 20 тыс. английских задач по открытому рецепту tev1.
Ограничения
- Синтетические регламенты вымышлены: на ваших регламентах проверьте качество на собственной разметке (300–500 примеров достаточно).
- Не считает: многошаговую арифметику выносите в код.
- Перестраховка. Если регламент и обращение даны одним свободным текстом, модель часто выбирает «передать человеку»: на реалистичных задачах про компенсации — в большинстве случаев (верно 13%). Без варианта «передать человеку» там 48%. Лучше передавать факты отдельными полями и использовать порог уверенности вместо этого варианта.
- Не используйте как единственное основание для решений о людях (найм, кредиты, увольнения).
- Устойчивость к prompt injection внутри
state специально не измерялась.
Внедрить у себя
Модель — открытая, пользуйтесь свободно. Если нужно встроить её в ваши процессы: разметить ваши кейсы, дообучить на ваших регламентах, поднять у себя в контуре и посчитать, какую долю потока можно автоматизировать, — напишите в айфи.студио или в Telegram @aify_tech. Первый разбор задачи бесплатный.
Цитирование
@misc{ru-decision-4b, title = {ru-decision-4b: модель решений для русского языка}, author = {айфи.студио}, year = {2026}, url = {https://huggingface.co/6E6E/ru-decision-4b}}
Лицензии данных
TERRa, RCB, DaNetQA (MIT); ai-forever: ru-reviews, CEDR (Apache-2.0), headline, kinopoisk, RuSciBench (MIT); MERA (MIT);
MASSIVE (Apache-2.0 / CC BY 4.0, © Amazon, FitzGerald et al., 2022); Open-Jev community-hard-mix redistributable (CC0 / CC BY 4.0);
английская часть — источники рецепта tev1 под своими лицензиями. Базовая модель Qwen3.5-4B — Apache-2.0.