Документация: кодек-строки, аудит дорожек, текущие метрики
docker / build (push) Successful in 39s

README: метрики модели 02.11.2026 (test 4 377 строк, e2e по трекерам), размер
датасета, kinozal-вкладки. dataset.md: размер снимка, колонки studio_source и
audio_raw. architecture.md: кодек-строки как позитивы сегментатора, E2E_MODEL.
collecting.md: tools/audit_tracks.py. training-windows.md: доразметка, сравнение
кандидата и постановка в models/best и Docker. plan.md: шаг «аудит дорожек».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Opus 5.5 committed 2026-11-02 21:55:43 +07:00
1 parent 588b1f1579
commit 89ffe4375b
6 files changed
+40 -18

No files matched your search

+16 -14
View File
@@ -76,19 +76,21 @@ docs/ документация
## Качество
Held-out test (645 строк, группировка по релизам и текстам; полная таблица и
графики — [reports/summary.md](reports/summary.md)):
Held-out test (4 377 строк, группировка по релизам и текстам; модель
`models/runs/20261102_190555_basecodec`, обучена 02.11.2026 на `labels.csv` со студиями из
кодек-строк; сравнение моделей — `python -m src.runs`):
| модель | type acc | type macro-F1 | span exact | 18+ acc | joint exact |
|---|---|---|---|---|---|
| rubert-tiny2 | 0.991 | 0.970 | 0.918 | 1.000 | 0.915 |
| **ruBert-base (models/best)** | **0.994** | 0.966 | **0.950** | **1.000** | **0.946** |
| модель | type acc | type macro-F1 | span exact | 18+ acc | lang acc | joint exact |
|---|---|---|---|---|---|---|
| **ruBert-base (models/best)** | **0.978** | **0.903** | **0.922** | **1.000** | **0.997** | **0.906** |
* joint exact — строка распознана полностью (тип + автор + 18+).
* E2E на сохранённых страницах релизов: rutracker — precision 0.83 / recall 0.98
по парам (тип, автор); kinozal-текстовые дампы содержат только тех-вкладку
без авторов (автор подгружался на сайте через JS), поэтому там автор
недоступен в принципе.
* Тест-сплит пересобирается вместе с датасетом, поэтому цифры разных снимков напрямую
не сравниваются (ранние 0.946 — на тесте из 645 строк). rubert-tiny2 на текущем
датасете не переобучалась.
* E2E по релизам (`tests/e2e_segmenter.py`, по 400 тестовых страниц на трекер, пары
тип + студия, precision / recall): kinozal 0.766 / 0.879, rutracker 0.877 / 0.870,
nnm 0.838 / 0.825.
* ONNX-экспорт эквивалентен PyTorch на 100% строк test — [reports/onnx_parity.md](reports/onnx_parity.md).
* Smoke на формулировках, которых нет в датасете: тип 9/10, 18+ 10/10,
автор 5/10 (полное извлечение автора на непривычных форматах записи —
@@ -99,14 +101,14 @@ Held-out test (645 строк, группировка по релизам и т
* Метки датасета сгенерированы регулярками (пайплайн deepseek-harness) — метрики
измеряют согласование с этой разметкой; ценность модели — обобщение на новые
формулировки без сопровождения регулярок.
* Источники несбалансированы (rutracker 1658 / nnm 1549 / kinozal 77 строк).
* Датасет: 55 324 строки из 27 900 релизов (kinozal 21 766 / nnm 18 363 / rutracker 15 195).
* Извлечение автора уверенно работает на форматах записи, представленных в
датасете (имя после типа через разделитель, в скобках у AVO/MVO/DVO-дорожек,
после тире); на непривычных форматах («Одноголосый закадровый (Фамилия)»)
модель может не выделить имя — span остаётся пустым, тип при этом верный.
* kinozal-страницы: авторы озвучки подгружаются на сайте JavaScript-ом; в
статическом HTML и текстовых дампах их нет — модель их не увидит (это
ограничение данных, не модели).
* kinozal-страницы: авторы озвучки лежат во вкладках, которые сайт подгружает
JavaScript-ом. По `url` сервис скачивает их сам (`fetch_html`, `showtab`); в
присланном `html`/`text` без этих вкладок студий может не быть.
* Классы с 1–8 примерами почти не выучиваются (видно в macro-F1 и confusion
matrix); морфологическая аугментация (458 вариантов: «многоголосое» и т.п.)
частично закрывает этот пробел.