Files
llm/docs/runbooks/evals.md
T

90 lines
2.7 KiB
Markdown

# Evals
Цель: проверять качество моделей, RAG и будущих адаптеров воспроизводимым способом.
## Validate Eval Files
```powershell
python scripts/validate_evals.py
```
## Run 1C Smoke Eval Without Model
Prompt-only режим проверяет, что eval-набор читается и превращается в отчет.
```powershell
python scripts/run_1c_smoke_eval.py --print
```
Отчет пишется в:
```text
reports/evals/1c-smoke.report.json
```
Папка `reports` не коммитится.
## Run 1C Smoke Eval Against vLLM
После запуска inference:
```powershell
python scripts/run_1c_smoke_eval.py --base-url http://docker-gpu.cin.su:8000 --model qwen3-4b-instruct
```
Runner сохраняет ответы и считает автоматические проверки, если критерий задан структурно.
Строковые критерии остаются ручными.
Поддерживаемые автоматические типы:
- `contains`
- `not_contains`
- `regex`
- `max_sentences`
- `refuses`
- `requires_metadata`
Для GGUF/llama.cpp:
```powershell
python scripts/run_1c_smoke_eval.py --base-url http://docker-gpu.cin.su:8080 --model devstral-1c-q4
```
Перед evals удобно проверить endpoint:
```powershell
python scripts/check_inference_endpoint.py --base-url http://docker-gpu.cin.su:8000 --expected-model qwen3-4b-instruct --print
python scripts/check_inference_endpoint.py --base-url http://docker-gpu.cin.su:8080 --expected-model devstral-1c-q4 --print
```
## Run Live Evals For Available Models
Единая команда проверяет endpoint-ы активного GPU-профиля и запускает smoke eval только для моделей этого профиля:
```powershell
python scripts/run_live_model_evals.py --profile text --print
```
Отчет пишется в:
```text
reports/evals/live-model-evals.json
```
По умолчанию live eval использует продуктовый 1С system prompt:
```text
plugins/1c/prompts/system.md
```
Если endpoint недоступен, соответствующая модель получает статус `blocked`.
Для полной ручной проверки взаимоисключающих профилей используйте:
```powershell
python scripts/run_live_model_evals.py --all-targets --print
```
## Promotion Rule
Модель или адаптер нельзя переводить из `draft/staging` в `production`, пока smoke-evals не пройдены и отчет не просмотрен.