Мелкие правки
This commit is contained in:
@@ -89,20 +89,6 @@ def plot_wer_der_scatter(all_configs: list[dict], img_dir: Path):
|
|||||||
label=f'Лучшая ({best["wer"]:.1f}%, {best["der"]:.1f}%)',
|
label=f'Лучшая ({best["wer"]:.1f}%, {best["der"]:.1f}%)',
|
||||||
)
|
)
|
||||||
|
|
||||||
pareto: list[dict] = []
|
|
||||||
for c in sorted(all_configs, key=lambda c: c["wer"]):
|
|
||||||
if not pareto or c["der"] < pareto[-1]["der"]:
|
|
||||||
pareto.append(c)
|
|
||||||
if len(pareto) > 1:
|
|
||||||
ax.plot(
|
|
||||||
[c["wer"] for c in pareto],
|
|
||||||
[c["der"] for c in pareto],
|
|
||||||
"k--",
|
|
||||||
alpha=0.5,
|
|
||||||
linewidth=1.2,
|
|
||||||
label="Парето-фронт",
|
|
||||||
)
|
|
||||||
|
|
||||||
ax.set_xlabel("WER, %", fontsize=12)
|
ax.set_xlabel("WER, %", fontsize=12)
|
||||||
ax.set_ylabel("DER, %", fontsize=12)
|
ax.set_ylabel("DER, %", fontsize=12)
|
||||||
ax.legend(fontsize=11)
|
ax.legend(fontsize=11)
|
||||||
|
|||||||
@@ -188,18 +188,21 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
|
|
||||||
% ===== 9. Best configurations =====
|
% ===== 9. Best configurations =====
|
||||||
\begin{frame}{Результаты: лучшие конфигурации}
|
\begin{frame}{Результаты: лучшие конфигурации}
|
||||||
|
\footnotesize Для каждой уникальной комбинации моделей транскрибации и диаризации --- лучшая найденная конфигурация параметров.
|
||||||
|
|
||||||
|
\vspace{0.5em}
|
||||||
\small
|
\small
|
||||||
\begin{table}
|
\begin{table}
|
||||||
\centering
|
\centering
|
||||||
\begin{tabular}{c l l c c c}
|
\begin{tabular}{c l l c c c c}
|
||||||
\toprule
|
\toprule
|
||||||
\textbf{\#} & \textbf{Транскрибация} & \textbf{Диаризация} & \textbf{WER} & \textbf{DER} & $f(\mathbf{x})$ \\
|
\textbf{\#} & \textbf{Транскр.} & \textbf{Диариз.} & \textbf{WER} & \textbf{DER} & \textbf{T} & $f(\mathbf{x})$ \\
|
||||||
\midrule
|
\midrule
|
||||||
1 & GigaAM-RNN-T & Sortformer & 5.32\% & 19.07\% & 11.25 \\
|
1 & GigaAM-RNN-T & Sortformer & 5.32\% & 19.07\% & 7.5' & 11.25 \\
|
||||||
2 & GigaAM-CTC & Sortformer & 6.54\% & 19.07\% & 11.30 \\
|
2 & GigaAM-CTC & Sortformer & 6.54\% & 19.07\% & 5.3' & 11.30 \\
|
||||||
3 & GigaAM-RNN-T & pyannote C.-1 & 5.32\% & 20.50\% & 11.60 \\
|
3 & GigaAM-RNN-T & pya. C.-1 & 5.32\% & 20.50\% & 6.4' & 11.60 \\
|
||||||
4 & GigaAM-CTC & pyannote C.-1 & 6.54\% & 20.50\% & 11.66 \\
|
4 & GigaAM-CTC & pya. C.-1 & 6.54\% & 20.50\% & 4.2' & 11.66 \\
|
||||||
5 & F.-Whisper l.-v3 & Sortformer & 7.59\% & 19.01\% & 11.84 \\
|
5 & F.-Whisper & Sortformer & 7.59\% & 19.01\% & 6.0' & 11.84 \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
@@ -236,8 +239,8 @@ beam\_size=1, vad\_thr=0.5, min\_speech\_dur=0.5~с, clustering\_thr=0.6
|
|||||||
\midrule
|
\midrule
|
||||||
Полный перебор & 9375 & --- & --- & --- \\
|
Полный перебор & 9375 & --- & --- & --- \\
|
||||||
Случ. поиск (15) & 15 & 13.03 & 6.99\% & 23.35\% \\
|
Случ. поиск (15) & 15 & 13.03 & 6.99\% & 23.35\% \\
|
||||||
Случ. поиск (93) & 93 & 11.81 & 5.57\% & 20.27\% \\
|
Случ. поиск (60) & 60 & 12.20 & 6.54\% & 21.50\% \\
|
||||||
Случ. поиск (375) & 375 & 11.32 & 5.57\% & 19.15\% \\
|
Случ. поиск (120) & 120 & 11.60 & 5.57\% & 19.80\% \\
|
||||||
\textbf{ГА (25 пок.)} & \textbf{93 мод.} & \textbf{11.25} & \textbf{5.32\%} & \textbf{19.07\%} \\
|
\textbf{ГА (25 пок.)} & \textbf{93 мод.} & \textbf{11.25} & \textbf{5.32\%} & \textbf{19.07\%} \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -245,7 +248,7 @@ beam\_size=1, vad\_thr=0.5, min\_speech\_dur=0.5~с, clustering\_thr=0.6
|
|||||||
|
|
||||||
\vspace{0.3cm}
|
\vspace{0.3cm}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item ГА с 93 модульными вычислениями лучше случайного поиска с 375 оценками
|
\item ГА с 93 мод. выч. ($\sim$4~ч) лучше случайного поиска со 120 оценками (10~ч)
|
||||||
\item $93 / 9375 \approx 1\%$ пространства поиска
|
\item $93 / 9375 \approx 1\%$ пространства поиска
|
||||||
\item Оценочное время: $\sim$4 часа вместо 780 часов --- \textbf{ускорение $>$100$\times$}
|
\item Оценочное время: $\sim$4 часа вместо 780 часов --- \textbf{ускорение $>$100$\times$}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 67 KiB |
@@ -412,21 +412,22 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
|
|
||||||
\subsection{Лучшие найденные конфигурации}
|
\subsection{Лучшие найденные конфигурации}
|
||||||
|
|
||||||
В таблице~\ref{tab:top-configs} представлены лучшие конфигурации, найденные алгоритмом, с различными сочетаниями моделей.
|
В таблице~\ref{tab:top-configs} для каждой уникальной комбинации моделей транскрибации и диаризации представлена лучшая найденная конфигурация параметров.
|
||||||
|
|
||||||
\begin{table}[H]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\caption{Лучшие конфигурации, найденные генетическим алгоритмом}
|
\small
|
||||||
|
\caption{Лучшие конфигурации для каждой уникальной комбинации моделей}
|
||||||
\label{tab:top-configs}
|
\label{tab:top-configs}
|
||||||
\begin{tabular}{c l l c c c}
|
\begin{tabular}{c l l c c c c}
|
||||||
\toprule
|
\toprule
|
||||||
\textbf{\#} & \textbf{Транскрибация} & \textbf{Диаризация} & \textbf{WER, \%} & \textbf{DER, \%} & $f(\mathbf{x})$ \\
|
\textbf{\#} & \textbf{Транскрибация} & \textbf{Диаризация} & \textbf{WER,\,\%} & \textbf{DER,\,\%} & \textbf{T,\,мин} & $f(\mathbf{x})$ \\
|
||||||
\midrule
|
\midrule
|
||||||
1 & GigaAM-RNN-T & Sortformer & 5.32 & 19.07 & 11.25 \\
|
1 & GigaAM-RNN-T & Sortformer & 5.32 & 19.07 & 7.45 & 11.25 \\
|
||||||
2 & GigaAM-CTC & Sortformer & 6.54 & 19.07 & 11.30 \\
|
2 & GigaAM-CTC & Sortformer & 6.54 & 19.07 & 5.29 & 11.30 \\
|
||||||
3 & GigaAM-RNN-T & pyannote Comm.-1 & 5.32 & 20.50 & 11.60 \\
|
3 & GigaAM-RNN-T & pyannote Comm.-1 & 5.32 & 20.50 & 6.36 & 11.60 \\
|
||||||
4 & GigaAM-CTC & pyannote Comm.-1 & 6.54 & 20.50 & 11.66 \\
|
4 & GigaAM-CTC & pyannote Comm.-1 & 6.54 & 20.50 & 4.20 & 11.66 \\
|
||||||
5 & F.-Whisper large-v3 & Sortformer & 7.59 & 19.01 & 11.84 \\
|
5 & F.-Whisper large-v3 & Sortformer & 7.59 & 19.01 & 6.01 & 11.84 \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
@@ -461,8 +462,6 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
|
|
||||||
За 25 поколений алгоритм выполнил 93 уникальных модульных вычисления: 27 конфигураций транскрибации и 66 конфигураций диаризации. При этом было оценено 121 уникальное сочетание параметров (полная конфигурация пайплайна). Без модульного кэширования потребовалось бы 242 модульных вычисления (121~$\times$~2), то есть кэширование сократило объём вычислений в 2.6 раза.
|
За 25 поколений алгоритм выполнил 93 уникальных модульных вычисления: 27 конфигураций транскрибации и 66 конфигураций диаризации. При этом было оценено 121 уникальное сочетание параметров (полная конфигурация пайплайна). Без модульного кэширования потребовалось бы 242 модульных вычисления (121~$\times$~2), то есть кэширование сократило объём вычислений в 2.6 раза.
|
||||||
|
|
||||||
На рисунке~\ref{fig:convergence} видно, что начиная с 8-го поколения число новых вычислений резко сокращается (0--4 за поколение), так как большинство конфигураций уже присутствуют в кэше.
|
|
||||||
|
|
||||||
\subsection{Сравнение с другими стратегиями поиска}
|
\subsection{Сравнение с другими стратегиями поиска}
|
||||||
|
|
||||||
Для оценки эффективности генетического алгоритма проведено сравнение со случайным поиском. Результаты представлены в таблице~\ref{tab:comparison}.
|
Для оценки эффективности генетического алгоритма проведено сравнение со случайным поиском. Результаты представлены в таблице~\ref{tab:comparison}.
|
||||||
@@ -477,14 +476,14 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
\midrule
|
\midrule
|
||||||
Полный перебор & 9375 & --- & --- & --- \\
|
Полный перебор & 9375 & --- & --- & --- \\
|
||||||
Случ. поиск (15 конф.) & 15 & 13.03 & 6.99 & 23.35 \\
|
Случ. поиск (15 конф.) & 15 & 13.03 & 6.99 & 23.35 \\
|
||||||
Случ. поиск (93 конф.) & 93 & 11.81 & 5.57 & 20.27 \\
|
Случ. поиск (60 конф.) & 60 & 12.20 & 6.54 & 21.50 \\
|
||||||
Случ. поиск (375 конф.) & 375 & 11.32 & 5.57 & 19.15 \\
|
Случ. поиск (120 конф.) & 120 & 11.60 & 5.57 & 19.80 \\
|
||||||
ГА (25 поколений) & 93 мод. выч. & 11.25 & 5.32 & 19.07 \\
|
ГА (25 поколений) & 93 мод. выч. & 11.25 & 5.32 & 19.07 \\
|
||||||
\bottomrule
|
\bottomrule
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
Генетический алгоритм с 93 модульными вычислениями нашёл конфигурацию лучше, чем случайный поиск с 375 оценками полного пайплайна ($f = 11{,}25$ против $f = 11{,}32$). При этом ГА использовал значительно меньший вычислительный бюджет.
|
Генетический алгоритм с 93 модульными вычислениями нашёл конфигурацию лучше, чем случайный поиск со 120 оценками полного пайплайна ($f = 11{,}25$ против $f = 11{,}60$). При этом случайный поиск со 120 конфигурациями занимает $120 \times 5 = 600$ минут (10 часов) --- весь доступный вычислительный бюджет, тогда как ГА укладывается в~4 часа.
|
||||||
|
|
||||||
По сравнению с полным перебором, генетический алгоритм оценил лишь $93 / 9375 \approx 1\%$ от общего числа модульных конфигураций. При оценочном времени выполнения одного модульного вычисления около 2.5 минуты, общее время работы алгоритма составляет около 4 часов, что более чем в~100 раз быстрее полного перебора (780 часов).
|
По сравнению с полным перебором, генетический алгоритм оценил лишь $93 / 9375 \approx 1\%$ от общего числа модульных конфигураций. При оценочном времени выполнения одного модульного вычисления около 2.5 минуты, общее время работы алгоритма составляет около 4 часов, что более чем в~100 раз быстрее полного перебора (780 часов).
|
||||||
|
|
||||||
@@ -497,7 +496,7 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
|
|
||||||
Реализованный алгоритм включает модульное кэширование результатов, позволяющее избежать повторных вычислений при изменении параметров одного из модулей, а также пакетное планирование вычислений, группирующее конфигурации по модели для минимизации затрат на загрузку и выгрузку нейросетевых моделей.
|
Реализованный алгоритм включает модульное кэширование результатов, позволяющее избежать повторных вычислений при изменении параметров одного из модулей, а также пакетное планирование вычислений, группирующее конфигурации по модели для минимизации затрат на загрузку и выгрузку нейросетевых моделей.
|
||||||
|
|
||||||
Экспериментальная апробация показала, что алгоритм сходится к близкому к оптимальному решению за 4--10 поколений, выполняя при этом лишь 93 модульных вычисления --- около 1\% от полного пространства поиска в 9375 конфигураций. Лучшая найденная конфигурация (GigaAM-RNN-T + Sortformer, WER~=~5.32\%, DER~=~19.07\%) превосходит результат случайного поиска с четырёхкратно бо\'{л}ьшим числом оценок. Оценочное время работы алгоритма составляет около 4 часов на Tesla~T4, что более чем в 100 раз быстрее полного перебора.
|
Экспериментальная апробация показала, что алгоритм сходится к близкому к оптимальному решению за 4--10 поколений, выполняя при этом лишь 93 модульных вычисления --- около 1\% от полного пространства поиска в 9375 конфигураций. Лучшая найденная конфигурация (GigaAM-RNN-T + Sortformer, WER~=~5.32\%, DER~=~19.07\%) превосходит результат случайного поиска, использующего весь 10-часовой вычислительный бюджет (120 конфигураций). Оценочное время работы алгоритма составляет около 4 часов на Tesla~T4, что более чем в 100 раз быстрее полного перебора.
|
||||||
|
|
||||||
В дальнейшем, в рамках дипломной работы, планируется расширение подхода на этап суммаризации при условии увеличения вычислительных ресурсов, а также апробация алгоритма на реальных данных с использованием полного датасета.
|
В дальнейшем, в рамках дипломной работы, планируется расширение подхода на этап суммаризации при условии увеличения вычислительных ресурсов, а также апробация алгоритма на реальных данных с использованием полного датасета.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user