Перейти к содержанию

BiOT Competency Assessment (2 мая 2026)

Первый объективный замер архитектуры Lyumi на стандартизированном корпусе — казахстанский сертификационный экзамен БиОТ (82 вопроса, 70 валидных).

TL;DR

  • Lyumi Sonnet — 90.0% accuracy на 70 валидных вопросах, 80.0% NPA citation correctness
  • Сравнялись с Gemini 2.5 Pro по accuracy (90.0% / 90.0%), опередили по NPA на 80 pp
  • +11.4 pp в accuracy и +78.6 pp в NPA vs vanilla Sonnet 4 — чистый эффект архитектуры retrieval+SQL+reasoning
  • Промпт сам по себе не добавляет знаний — проверено ablation'ом (Sonnet+prompt = 77.1% vs vanilla 78.6%)
  • Ansamble ceiling 94.3% (Lyumi ∪ Gemini) — слепые пятна не пересекаются

Корпус

82 MCQ из материала подготовки Камала к сертификации БиОТ. hse_copilot/evals/exam_qa_v1.jsonl. Каждый вопрос — выбор A/B/C/D + ground truth + npa_reference.

Очистка: 12 вопросов без чёткого ответа (correct_answer = '?') исключены. n=70 валидных.

Распределение по типу НПА: - ТК РК — 30 вопросов (43%) - Приказ МТСЗН №1019 (обучение/инструктаж) — 16 - ЗРК-188 (гражданская защита) — 6 - Приказы 1054 и 1057, 927, ПП 276, ППБ 55 — 14 - Прочее — 4

Конфигурации (6)

vanilla — базовые frontier LLM

  1. vanilla_sonnet_4 — Anthropic Claude Sonnet 4
  2. vanilla_opus_47 — Anthropic Claude Opus 4.7
  3. vanilla_gemini_25p — Google Gemini 2.5 Pro

ablation — вклад промпта

  1. lyumi_promptonly_sonnet — Sonnet 4 + LYUMI_SYSTEM_PROMPT (35K), без retrieval
  2. lyumi_promptonly_opus — Opus 4.7 + LYUMI_SYSTEM_PROMPT, без retrieval

production — полный pipeline

  1. lyumi_sonnet_4 — ChromaDB 164K (vanilla bge-m3) + BM25 + Cohere Rerank 4 Fast + SQL lookup (npa_values 14K) + LYUMI_SYSTEM_PROMPT + reasoning_validator (5 правил)

Не включен: lyumi_opus_47 — 54/82 empty response, Opus 4.7 в extended_thinking исчерпывает max_tokens=4000 на reasoning. Требуется bumping до 8000 или disable thinking.

Результаты (n=70)

Config Accuracy NPA cite Cost Latency
lyumi_sonnet_4 90.0% 80.0% prod 10.1 s
vanilla_gemini_25p 90.0% 0.0% $0.59 8.2 s
vanilla_opus_47 85.7% 10.0% $1.16 2.1 s
lyumi_promptonly_opus 82.9% 12.9% $22.88 ⚠️ 2.6 s
vanilla_sonnet_4 78.6% 1.4% $0.22 2.4 s
lyumi_promptonly_sonnet 77.1% 2.9% $4.11 4.4 s

Ablation: вклад каждого слоя (Sonnet 4)

vanilla Sonnet 4         78.6%   acc / 1.4% NPA
  ↓ +LYUMI prompt only
  prompt-only            77.1%   acc / 2.9% NPA   → ДЕЛЬТА: -1.5pp acc
  ↓ +retrieval +SQL +reasoning
  full Lyumi             90.0%   acc / 80.0% NPA  → ДЕЛЬТА: +12.9pp acc, +77.1pp NPA

Интерпретация: - Промпт сам по себе не добавляет HSE-знаний — он настраивает стиль, гендер, anti-hallucination, fact-якора. На МСЦ это нейтрально или слегка вредно (отвлекает модель). - Retrieval+SQL = +12.9 pp accuracy. Прямой эффект знаний из ChromaDB и npa_values. - NPA grounding +77.1 pp — без retrieval Sonnet не помнит номера статей (1–3% правильных), с retrieval — 80%.

Разрез по типу НПА

code_type n Lyumi Gemini Opus Sonnet
ТК РК 30 87% 93% 77% 70%
Приказ 1019 16 100% 94% 100% 88%
ЗРК-188 6 100% 83% 100% 100%
Приказ 1054 3 100% 100% 100% 100%
Приказ 1057 3 100% 100% 100% 100%
Приказ 927 3 100% 100% 100% 67%
ПП 276 2 100% 100% 100% 100%
ППБ 55 1 100% 100% 100% 100%
прочее 6 50% 50% 50% 50%

Где Lyumi уступает: ТК РК (главный кодекс, 43% корпуса). Gemini знает ТК ПО ПАМЯТИ, Lyumi достаёт через retrieval — иногда контекст из чанков сбивает в смежную статью.

Где Lyumi доминирует: специализированные приказы (1019, 927, зрк-188 — все 100%). Эти НПА плохо представлены в обучении frontier LLM, их знание = прямое следствие ChromaDB базы.

Coverage analysis — Lyumi vs Gemini

  • Обе правы: 60 / 70 (85.7%)
  • Только Lyumi: 3 (4.3%)
  • Только Gemini: 3 (4.3%)
  • Обе ошиблись: 4 (5.7%)
  • Union ceiling: 66/70 = 94.3%

Слепые пятна не пересекаются — потенциал ensemble (Lyumi+Gemini fallback) = 94%. Интересно как hedge для future architecture.

Конкретные кейсы

Lyumi выиграла у Gemini (3 случая)

  1. exam_018 — Обучение по ГО: Lyumi A + «ст. 79 п.4 пп.1 Закона РК 188-V». Gemini B (ошиблась).
  2. exam_046 — СБиОТ должностные инструкции: Lyumi B + ст. 202 п.4 подп.3 ТК РК. Gemini A.
  3. exam_079 — Дистанционная работа по Приказу 1019: Lyumi D. Gemini B.

Lyumi проиграла vanilla (3 случая)

  1. exam_003 — Испытательный срок для руководителей. Lyumi D, vanilla Sonnet B (правильно). retrieval выдал ст. 36 п.2 (общий случай), Lyumi применила буквально.
  2. exam_044 — Прочее/СБиОТ. Lyumi D, vanilla Sonnet A (прав.).
  3. exam_061 — ТК, вопрос с подвохом. Lyumi D, vanilla Sonnet и Gemini B.

Диагноз: 4.3% вопросов = retrieval ухудшил ответ (выдал смежный чанк, модель расслабилась). Кандидат на следующий sprint: режим «реранкер видит два опциона с близким скором → эскалируем к Opus».

Ограничения честно

  • n=70 — приемлемо для различения групп с разницей >10 pp, не достаточно для различения 90% от 90%
  • Корпус смещён в сторону ТК (43%) и Приказа 1019 (23%); на узких темах (электробезопасность и др.) n=1–2 — anecdotal
  • MCQ-формат не отражает real use case Lyumi (open-ended Q&A, фото, документы)
  • NPA correctness = regex match чисел, не semantic
  • $30 spend, из них $22.88 — overspend на promptonly Opus без prompt caching (записан фикс в memory)

Sales / positioning

Готовый ans­e­wer клиенту «чем ваш бот лучше ChatGPT»:

На казахстанском сертификационном экзамене БиОТ Люми показала 90% точности — на уровне Gemini 2.5 Pro и выше базового Claude. При этом в 80% ответов Люми правильно цитирует статью нормативного акта. Gemini это делает в 0%, vanilla Opus — в 10%. Без правильной ссылки HSE-ответ не имеет ценности для аудита и инспекций. Это прямое следствие нашей базы из 164 тысяч чанков нормативки РК.

Roadmap (отсюда)

  1. Улучшить retrieval/SQL на ТК РК (87% vs Gemini 93%) — главное слабое место. Докинуть структурированные подразделы ТК в npa_values.
  2. Opus 4.7 max_tokens fix — поднять до 8000 или disable extended_thinking для MCQ режима. Приоритет средний.
  3. 3 случая регрессии архитектуры (Lyumi worse than vanilla) — изучить retrieval traces, кандидат на «реранкер видит close call → эскалация Opus» фичу.
  4. 4 вопроса где все промахнулись — включить в G_reasoning eval set для следующего LoRA файн-тюна.
  5. 12 вопросов без ground truth — попросить разметить вручную, расширить корпус до n=82.
  6. Open-ended eval — следующий бы равняю был ответы Lyumi vs Gemini на open-ended вопросах (real use case), LLM-judge.

Артефакты

  • hse_copilot/evals/exam_qa_v1.jsonl — 82 BiOT MCQ
  • hse_copilot/eval_biot_vanilla.py — vanilla 3 конфигов
  • hse_copilot/eval_biot_lyumi_promptonly.py — ablation prompt-only
  • hse_copilot/eval_biot_lyumi.py — full Lyumi через docker exec на AX41
  • hse_copilot/eval_biot_combine.py — сборка финальной таблицы
  • research/2026-05-02-biot-vanilla/REPORT.html — полный investor-style отчёт с inline SVG графиками
  • research/2026-05-02-biot-vanilla/agg_corrected_n70.json — финальные числа на n=70
  • research/2026-05-02-biot-vanilla/selected_cases.json — отобранные кейсы
  • research/2026-05-02-biot-vanilla/raw_*.jsonl + biot_lyumi_results_*.jsonl — raw responses

Связи

  • [[lyumi/sprints/2026-05-02-reasoning-layer-deployed]] — reasoning_validator развёрнут в тот же день
  • [[lyumi/sprints/2026-05-02-reasoning-backtest]] — backtest reasoning_validator на prod логах (0/47 hits)
  • [[lyumi/migration_ax41]] — бот переехал 1 мая, инфра где этот eval бежал
  • [[lyumi/sprints/2026-05-01-sql-acgih-ax41]] — SQL grounding развёрнут 1 мая