DUB-AI: multi-task модель (тип озвучки + автор-спан + 18+), обучение/инференс/ONNX/сервис, тесты и документация

This commit is contained in:
DUB-AI committed 2026-10-27 16:43:36 +07:00
commit 8dbca3f4a3
2873 files changed
+44479

No files matched your search

+77
View File
@@ -0,0 +1,77 @@
# Обучение на Windows с GPU (RTX 5070 Ti)
## Почему cu128
RTX 5070 Ti — архитектура Blackwell (compute capability `sm_120`). Колёса
PyTorch с PyPI для Windows по умолчанию CPU-only, а старые CUDA-сборки не
знают sm_120. Нужны колёса с индекса cu128 (torch >= 2.7; проверено на
torch 2.11.0+cu128).
## Установка (один раз)
```bat
cd C:\Users\shats\Dev\DUB-AI
python -m venv .venv
.venv\Scripts\python -m pip install --upgrade pip
:: torch с GPU-поддержкой (Blackwell)
.venv\Scripts\python -m pip install torch --index-url https://download.pytorch.org/whl/cu128
:: остальное
.venv\Scripts\python -m pip install -r requirements.txt
```
Проверка (ожидаемый вывод — `True` и имя карты):
```bat
.venv\Scripts\python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
:: True NVIDIA GeForce RTX 5070 Ti
```
## Обучение
```bat
.venv\Scripts\python -m src.prepare_data :: данные -> data/processed
.venv\Scripts\python -m src.train :: обе модели: 5-fold CV + финальные
.venv\Scripts\python -m src.train --models base :: только ruBert-base
.venv\Scripts\python -m src.train --epochs-override 5 --folds 3 :: быстрый прогон
```
Время на RTX 5070 Ti (3742 строки, max_len=128): rubert-tiny2 — ~2 мин
полный цикл; ruBert-base — ~7 мин. Автоматически: bf16 autocast на
CUDA, GroupKFold-сплиты, ранний stopping (patience 3), метрики и графики в
`reports/`, чекпоинты в `models/`, лучшая модель — `models/best`.
Гиперпараметры — в `MODEL_CONFIGS` (src/train.py): tiny2 — lr 1e-4, batch
64, до 20 эпох; base — lr 3e-5, batch 32, до 10 эпох; AdamW, weight_decay
0.01, linear warmup 10%, grad clip 1.0, seed 42.
## Переобучение на свежем датасете
Сборщик (`deepseek-harness/default-workspace/dataset.py`) дописывает
`labels.csv`. Когда появится новый снимок:
```bat
copy /Y <путь>\labels.csv data\labels.csv
.venv\Scripts\python -m src.prepare_data
.venv\Scripts\python -m src.train
```
## Troubleshooting
| Симптом | Причина | Решение |
|---|---|---|
| `torch.cuda.is_available()` = False | установлен CPU-torch | переустановить с `--index-url .../whl/cu128` |
| `CUDA error: no kernel image is available` | колёса без sm_120 (старый cu126 и т.п.) | то же — нужны именно cu128 |
| `CUDA driver version is insufficient` | старый драйвер NVIDIA | обновить драйвер (нужен 5xx+) |
| Память GPU занята другими приложениями (WDDM) | Windows держит ~4 ГБ VRAM под систему | batch уже мал (32-64 на коротких seq хватает); при нехватке уменьшить `batch` в MODEL_CONFIGS |
| Хочется обучить без GPU | — | `base` медленно, но `tiny2` обучаема на CPU за десятки минут: тот же запуск, torch можно ставить CPU-версией |
## Что сохраняется после обучения
* `models/<имя>/model.pt` — веса; `dub_config.json` — конфигурация;
`label_maps.json` — классы; файлы токенизатора; `train_config.json` —
гиперпараметры и финальные метрики.
* `models/best/` — копия лучшей модели (используется инференсом по умолчанию).
* `reports/summary.md` — таблица сравнения; `final_<имя>.json` — метрики;
`history_<имя>.png` — кривые; `confusion_<имя>.png` — матрица ошибок.