Docker-сервис, выбор основы и сравнение моделей, сборщик датасета
docker / build (push) Failing after 39s
docker / build (push) Failing after 39s
- Docker: Dockerfile (CPU), compose с FlareSolverr, настройка через DUB_* переменные, токен доступа к /predict, tools/pack_models.py, workflow Gitea Actions, docs/docker.md - Модель грузится офлайн (config.json рядом с весами); общий код вынесен в src/spans.py, сервису не нужны sklearn/matplotlib/pandas - Обучение: профили tiny2/base/large/modern, запуски в models/runs, реестр и честное сравнение на одной тестовой выборке (src/runs.py), пункт меню «Модели» - Датасет: язык и аудио-параметры дорожек, 18+ по строкам «Аудио», ручные метки по ссылкам, переиндексация сохранённого HTML, параллельная сборка, сбалансированная выборка - Тексты страниц (data/pages) больше не хранятся в git Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d155b8584b
commit
efc9a4f56a
411 files changed
+87495
-27363
No files matched your search
@@ -46,6 +46,33 @@ CUDA, GroupKFold-сплиты, ранний stopping (patience 3), метрик
|
||||
64, до 20 эпох; base — lr 3e-5, batch 32, до 10 эпох; AdamW, weight_decay
|
||||
0.01, linear warmup 10%, grad clip 1.0, seed 42.
|
||||
|
||||
## Выбор основы и сравнение моделей (меню, пункты 2 и 7)
|
||||
|
||||
`python tools/collect.py` → «2 Переобучить»: после вопроса «сегментатор + основные модели» предлагается
|
||||
список основ. Каждая обучается отдельным запуском в `models/runs/<время>_<профиль>/` (`python -m src.train
|
||||
--runs`), **`models/best`, `reports/final_*` и `summary.md` при этом не меняются**.
|
||||
|
||||
| профиль | основа | замечания |
|
||||
|---|---|---|
|
||||
| `tiny2` | rubert-tiny2, 30M | самая быстрая, подходит для ONNX/CPU |
|
||||
| `base` | ruBert-base, 178M | текущий рабочий выбор |
|
||||
| `large` | ruBert-large, 427M | помещается в 16 ГБ (bf16, batch 16); обучение ~3× дольше base, инференс на CPU медленнее |
|
||||
| `modern` | RuModernBERT-base, 149M | новая архитектура; ONNX-экспорт проекта (`token_type_ids`) её не принимает |
|
||||
|
||||
Кросс-валидация (5 прогонов) на итоговую модель не влияет, нужна только для оценки устойчивости; без неё
|
||||
обучение примерно в 6 раз короче. Флаги CLI: `--folds 0`, `--lr`, `--batch`, `--epochs-override`, `--tag`.
|
||||
|
||||
Пункт «7 Модели» (и конец пункта 2) сравнивает **все** модели (`models/best`, запуски, `best_backup_*`,
|
||||
`models/tiny2`) на **одной и той же текущей тестовой выборке**: каждая оценивается заново, в своём входном
|
||||
формате (без «[RUS AC3 …]» для моделей, обученных без аудио-контекста). Цифры кэшируются в
|
||||
`<модель>/eval.json` под отпечатком выборки. Таблица показывает joint exact с 95% интервалом и парное
|
||||
сравнение с `models/best`: сколько строк новая модель починила и сколько сломала, значима ли разница
|
||||
(знаковый критерий). Разница в пределах шума так и помечается. Звёздочка у модели означает, что она обучена
|
||||
на другом разбиении и часть текущих тестовых строк могла видеть — её цифры завышены. Выбранная модель
|
||||
копируется в `models/best` (прежняя уходит в `models/best_backup_*`, откат — тем же пунктом); перед заменой
|
||||
выводятся предупреждения (другая основа нужна в кэше Hugging Face на машине сервиса, вес, ONNX).
|
||||
Запуски и архивные копии можно удалять из того же меню (каждая 0.1–1.4 ГБ).
|
||||
|
||||
## Переобучение на свежем датасете
|
||||
|
||||
Сборщик (`deepseek-harness/default-workspace/dataset.py`) дописывает
|
||||
|
||||
Reference in new issue
Block a user