diff --git a/doc/session-2026-05-26.md b/doc/session-2026-05-26.md index 7079256..45bb5e5 100644 --- a/doc/session-2026-05-26.md +++ b/doc/session-2026-05-26.md @@ -530,3 +530,60 @@ python web/app.py Без жалобы LLM скажет: «топливная система, форсунки, MAP/MAF» С жалобой LLM скажет: «свечи/катушки — на холодную зазор меньше, искра слабее; после прогрева металл расширяется и контакт восстанавливается» + +--- + +## 22:00 — Оценка качества LLM и стратегия + +### Тестирование gpt-oss-120b + +**Данные:** P0301, P0303, ОЖ=50°C, RPM=1726, Нагрузка=25.1%, STFT=0%, Дроссель=50.2% + +**Результат:** модель проигнорировала русские метки («Нагрузка», «STFT») и выдумала: +- PID 0104 → «O₂-датчик 1, 0.32V — бедная смесь» (на самом деле: Calculated Load 25.1%) +- PID 0106 → «O₂-датчик 2, 0.64V» (на самом деле: STFT 0%) +- На этой галлюцинации построила весь диагноз про вакуумные утечки + +**Вывод:** gpt-oss-120b уверенно и красиво врёт. Не знает OBD2 PID-маппинг. + +### Тестирование qwen3-6-27b-fp8 + +**Результат:** +- Тоже ошиблась в PID-маппинге (0104=Throttle, 0106=IAT, 0111=MAF) +- НО проявила метакогницию: заметила расхождение меток с данными, перепроверяла +- Потратила все токены на CoT-размышления (вытекли в ответ) + +**Вывод:** умнее чем gpt-oss, но формат ответа сломан (CoT-утечка). + +### Общий вывод по LLM + +| Модель | PID-точность | Метакогниция | Формат | Вердикт | +|--------|-------------|-------------|--------|---------| +| gpt-oss-120b | ❌ 0% | ❌ уверенно врёт | ✅ | Опасен | +| qwen3-6-27b-fp8 | ❌ 0% | ✅ сомневается | ❌ CoT-утечка | Перспективен | + +**Корень проблемы:** ни одна LLM не обучалась на OBD2 PID-номерах. +Решение: не подавать PID-номера в промпт, только декодированные названия + PID-справочник в SYSTEM_PROMPT. + +### Стратегия качества LLM (на будущее) + +1. **Cross-Validation:** один запрос → две разные модели → сравнить + - Совпали → ✅ надёжно + - Разошлись → ⚠️ показать обе версии + - Одна призналась «не знаю» → отфильтровать + +2. **Промпт-самозащита:** «Если НЕ уверен в расшифровке — честно напиши "не знаю". НИКОГДА не выдумывай.» + +3. **Выбор модели — юзером:** `config.yaml` позволяет сменить модель/ключ/URL без кода. + Пользователь сам платит за качество: от бесплатного gpt-oss до Claude Opus. + +4. **Архитектурно готово:** `diagnose.py` уже параметризован — любой OpenAI-совместимый API. + +### Приоритеты + +| Приоритет | Задача | Почему | +|-----------|--------|--------| +| 🔴 **P0** | Физическое взаимодействие с ELM327 | Самое сложное, без этого ничего не работает | +| 🟡 **P1** | ScriptRunner v2 (защитное чтение) | Надёжность на уровне протокола | +| 🟢 **P2** | Трёхфазный флоу с жалобами | UX, можно потом | +| 🔵 **P3** | Cross-validation LLM | Серверная логика, не блокирует клиент |