# Обучение на 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` — матрица ошибок.