docs: оценка LLM, cross-validation стратегия, приоритеты

This commit is contained in:
Repinoid
2026-05-26 22:02:46 +03:00
parent 8d25ae7972
commit f895d9ec7c
+57
View File
@@ -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 | Серверная логика, не блокирует клиент |