docs: оценка LLM, cross-validation стратегия, приоритеты
This commit is contained in:
@@ -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 | Серверная логика, не блокирует клиент |
|
||||
|
||||
Reference in New Issue
Block a user