Files
grabber-ai/docs/training-windows.md
T

4.0 KiB
Raw Blame History

Обучение на 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).

Установка (один раз)

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 и имя карты):

.venv\Scripts\python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
:: True NVIDIA GeForce RTX 5070 Ti

Обучение

.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. Когда появится новый снимок:

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 — матрица ошибок.