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

+39
View File
@@ -0,0 +1,39 @@
# Аудит датасета: data/labels.csv
строк в CSV: 3286
строк после подготовки: 3742 (train 3097 / test 645)
источники: {'kinozal': 97, 'rutracker': 2038, 'nnm': 1607}
уникальных нормализованных текстов: 2327
групп (релиз ∪ одинаковый текст): 492
удалено: пустой текст 0, мусорный studio 16, не-озвучка (оригинал/субтитры) 2, противоречивые дубли 0 (групп-противоречий: 0)
спан автора найден: 2745 (73.4%), не найден: 11
аугментировано морфологических вариантов: 458
дорожек 18+: 164 (из них без упоминания «18» в тексте: 2)
## Распределение translation_type
- проф. многоголосый: 1267
- проф. дубляж: 941
- авт. одноголосый: 654
- проф. двухголосый: 334
- одноголосый: 232
- неизвестно: 116
- люб. многоголосый: 90
- многоголосый: 46
- люб. двухголосый: 26
- люб. одноголосый: 23
- двухголосый: 6
- проф. одноголосый: 5
- авт. многоголосый: 1
- авт. двухголосый: 1
## Спан не найден (примеры)
- [rutracker] studio=«datynet; : Куценко» text=«Одноголосый закадровый datynet; перевод: Куценко»
- [rutracker] studio=«datynet и Yuka_chan; :Куценко» text=«Любительский (двухголосый закадровый) datynet и Yuka_chan; перевод:Куц»
- [rutracker] studio=«Дубляж, Blu-ray CEE_ _2009г» text=«Профессиональный (дублированный) |Дубляж, Blu-ray CEE_[МОСФИЛЬМ]_2009г»
- [rutracker] studio=«AC3, 6ch , 448 кбит/с Ист-Вест *» text=«Русский (Дублированный), AC3, 6ch (L, C, R, Ls, Rs +LFE), 448 кбит/с |»
- [rutracker] studio=«R5, - Карусель, - Пучков ака Гоблин, - Гаврилов, - Горчаков, - Живов» text=«Многоголосый закадровый - R5, Многоголосый закадровый - Карусель, Авто»
- [rutracker] studio=«ТК Россия, / озвучен в 2009 году» text=«Профессиональный (многоголосый закадровый) |ТК Россия, (Илья Хвостиков»
- [rutracker] studio=«den904 & DeadSno Janetta» text=«Любительский (двухголосый закадровый) den904 & DeadSno перевод Janetta»
- [rutracker] studio=«студия Кадр , по заказу РТР, 1995 г» text=«Профессиональный (дублированный): студия "Кадр" (при уч. студии "Нота"»
- [nnm] studio=«Колобок , по переводу Куценко, с ненормативной лексикой» text=«AC3, 2 ch, 192 Kbps - русский (DVO Колобок (DeadSno & den904), по пере»
- [nnm] studio=«BDАмальгама» text=«Opus, 6 ch, 325 Kbps - Русский (DUB, BD"Амальгама")»
- [nnm] studio=«Red Head Sound) - серии 1-4 , серия 5» text=«AC3, 6 ch, 640 Kbps, AC3, 2 ch, 384 Kbps - русский (DUB, Red Head Soun»
+121
View File
@@ -0,0 +1,121 @@
{
"history": [
{
"epoch": 0,
"loss": 1.9333822628919115,
"type_accuracy": 0.9322033898305084,
"type_macro_f1": 0.8828544949026877,
"span_exact": 0.6186440677966102,
"age_accuracy": 0.9322033898305084,
"age_f1": 0.0,
"joint_exact": 0.5677966101694916
},
{
"epoch": 1,
"loss": 0.24824116919982306,
"type_accuracy": 0.9915254237288136,
"type_macro_f1": 0.9910647803425168,
"span_exact": 0.9067796610169492,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9067796610169492
},
{
"epoch": 2,
"loss": 0.08354356657079559,
"type_accuracy": 0.9915254237288136,
"type_macro_f1": 0.9880174291938998,
"span_exact": 0.9322033898305084,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.923728813559322
},
{
"epoch": 3,
"loss": 0.04380707801418736,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.8898305084745762,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.8898305084745762
},
{
"epoch": 4,
"loss": 0.029564618628392828,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.9322033898305084,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9322033898305084
},
{
"epoch": 5,
"loss": 0.018955964604987108,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.940677966101695,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.940677966101695
},
{
"epoch": 6,
"loss": 0.015981034682865474,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.9491525423728814,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9491525423728814
},
{
"epoch": 7,
"loss": 0.014083279886263166,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.9576271186440678,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9576271186440678
},
{
"epoch": 8,
"loss": 0.013096656467012585,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.9576271186440678,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9576271186440678
},
{
"epoch": 9,
"loss": 0.011878273613314996,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.9576271186440678,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9576271186440678
}
],
"test": {
"type_accuracy": 0.993798449612403,
"type_macro_f1": 0.9659482465100442,
"span_exact": 0.9503875968992248,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9457364341085271
},
"cv_mean": {
"type_accuracy": 0.9882854262615155,
"type_macro_f1": 0.9273855988567016,
"span_exact": 0.9272035433662025,
"age_accuracy": 0.9996140858658948,
"age_f1": 0.9925925925925926,
"joint_exact": 0.9183191869516328
},
"train_seconds": 403.2
}
+121
View File
@@ -0,0 +1,121 @@
{
"history": [
{
"epoch": 0,
"loss": 3.1152229943173997,
"type_accuracy": 0.6101694915254238,
"type_macro_f1": 0.274492617868772,
"span_exact": 0.15254237288135594,
"age_accuracy": 0.9322033898305084,
"age_f1": 0.0,
"joint_exact": 0.11016949152542373
},
{
"epoch": 1,
"loss": 0.9134838200630025,
"type_accuracy": 0.940677966101695,
"type_macro_f1": 0.7953703703703703,
"span_exact": 0.5423728813559322,
"age_accuracy": 0.9322033898305084,
"age_f1": 0.0,
"joint_exact": 0.4661016949152542
},
{
"epoch": 2,
"loss": 0.28746094221764423,
"type_accuracy": 0.9915254237288136,
"type_macro_f1": 0.8734177215189873,
"span_exact": 0.6694915254237288,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.6610169491525424
},
{
"epoch": 3,
"loss": 0.13671151960783817,
"type_accuracy": 0.9915254237288136,
"type_macro_f1": 0.8734177215189873,
"span_exact": 0.6779661016949152,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.6694915254237288
},
{
"epoch": 4,
"loss": 0.08165701700651899,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.8135593220338984,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.8135593220338984
},
{
"epoch": 5,
"loss": 0.05431628873215077,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.7457627118644068,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.7457627118644068
},
{
"epoch": 6,
"loss": 0.0388407041021484,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.8220338983050848,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.8220338983050848
},
{
"epoch": 7,
"loss": 0.03193263996868057,
"type_accuracy": 0.9915254237288136,
"type_macro_f1": 0.9880174291938998,
"span_exact": 0.8220338983050848,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.8220338983050848
},
{
"epoch": 8,
"loss": 0.025923404485938398,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.7966101694915254,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.7966101694915254
},
{
"epoch": 9,
"loss": 0.023073244245445476,
"type_accuracy": 1.0,
"type_macro_f1": 1.0,
"span_exact": 0.8220338983050848,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.8220338983050848
}
],
"test": {
"type_accuracy": 0.9906976744186047,
"type_macro_f1": 0.9695441905226254,
"span_exact": 0.9178294573643411,
"age_accuracy": 1.0,
"age_f1": 1.0,
"joint_exact": 0.9147286821705426
},
"cv_mean": {
"type_accuracy": 0.9854002845265878,
"type_macro_f1": 0.937694613538328,
"span_exact": 0.8835509960332428,
"age_accuracy": 0.9965497660377561,
"age_f1": 0.9730338378482599,
"joint_exact": 0.8700977978108924
},
"train_seconds": 107.3
}
+9
View File
@@ -0,0 +1,9 @@
# ONNX parity (test split)
- строк: 645
- совпадение класса типа: 1.0000
- совпадение текста спана: 1.0000
- совпадение флага 18+: 1.0000
- макс. расхождение type_logits: 4.29e-06
Вердикт: **OK** (≥99% все критерии)
+8
View File
@@ -0,0 +1,8 @@
# Сравнение моделей
| модель | type acc | type macro-F1 | span exact | age acc | joint exact | время, с |
|---|---|---|---|---|---|---|
| tiny2 | 0.991 | 0.970 | 0.918 | 1.000 | 0.915 | 107.3 |
| base | 0.994 | 0.966 | 0.950 | 1.000 | 0.946 | 403.2 |
Лучшая модель: **base** -> `models/best`