Презентация
This commit is contained in:
5
presentation/.gitignore
vendored
Normal file
5
presentation/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*
|
||||||
|
|
||||||
|
!**/
|
||||||
|
!.gitignore
|
||||||
|
!*.tex
|
||||||
273
presentation/presentation.tex
Normal file
273
presentation/presentation.tex
Normal file
@@ -0,0 +1,273 @@
|
|||||||
|
\documentclass[aspectratio=169]{beamer}
|
||||||
|
|
||||||
|
\usepackage[T2A]{fontenc}
|
||||||
|
\usepackage[utf8]{inputenc}
|
||||||
|
\usepackage[russian]{babel}
|
||||||
|
\usepackage{booktabs}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
|
||||||
|
\usetheme{Madrid}
|
||||||
|
\usecolortheme{default}
|
||||||
|
|
||||||
|
\setbeamertemplate{navigation symbols}{}
|
||||||
|
\setbeamertemplate{footline}[frame number]
|
||||||
|
|
||||||
|
\title{Подбор оптимальной конфигурации модульной системы автоматического протоколирования совещаний с помощью генетических алгоритмов}
|
||||||
|
\author{Тищенко А.\,А.}
|
||||||
|
\institute{СПбПУ, ИКНиКБ, ВШ ТИИИ\\гр. 5130201/20101\\[6pt]Руководитель: проф., д.т.н. Большаков А.\,А.}
|
||||||
|
\date{2026}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
% ===== 1. Title =====
|
||||||
|
\begin{frame}
|
||||||
|
\titlepage
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 2. Introduction =====
|
||||||
|
\begin{frame}{Автоматическое протоколирование совещаний}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Протоколирование совещаний --- фиксация решений и договорённостей
|
||||||
|
\item Автоматизация стала возможна благодаря развитию моделей ASR, диаризации и LLM
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.4cm}
|
||||||
|
\textbf{Три этапа пайплайна:}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item \textbf{Транскрибация} --- преобразование аудио в текст
|
||||||
|
\item \textbf{Диаризация} --- определение говорящих
|
||||||
|
\item Суммаризация --- формирование протокола (не рассматривается)
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\vspace{0.4cm}
|
||||||
|
В данной работе рассматриваются \textbf{этапы~1 и~2}: оптимизация выбора моделей и их параметров.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 3. Problem statement =====
|
||||||
|
\begin{frame}{Постановка задачи}
|
||||||
|
\textbf{Цель:} найти конфигурацию $\mathbf{x}^*$, минимизирующую:
|
||||||
|
\[
|
||||||
|
f(\mathbf{x}) = 0{,}4 \cdot \text{WER}(\mathbf{x}) + 0{,}4 \cdot \text{DER}(\mathbf{x}) + 0{,}2 \cdot T(\mathbf{x})
|
||||||
|
\]
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item WER --- ошибка транскрибации (\%)
|
||||||
|
\item DER --- ошибка диаризации (\%)
|
||||||
|
\item $T$ --- нормализованное время инференса
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\textbf{Аппаратные ограничения:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item GPU Tesla T4 (16~ГБ VRAM), 16~ГБ ОЗУ
|
||||||
|
\item Вычислительный бюджет: $\sim$10 часов
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 4. Configuration space =====
|
||||||
|
\begin{frame}{Пространство конфигураций}
|
||||||
|
\small
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{l l l}
|
||||||
|
\toprule
|
||||||
|
\textbf{Параметр} & \textbf{Тип} & \textbf{Значения} \\
|
||||||
|
\midrule
|
||||||
|
Модель транскрибации & категориальный & 5 моделей \\
|
||||||
|
beam\_size & дискретный & \{1, 3, 5, 7, 10\} \\
|
||||||
|
vad\_threshold & дискретный & \{0.3, 0.4, 0.5, 0.6, 0.7\} \\
|
||||||
|
Модель диаризации & категориальный & 3 модели \\
|
||||||
|
min\_speech\_duration & дискретный & \{0.25, 0.5, 0.75, 1.0, 1.5\}~с \\
|
||||||
|
clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\vspace{0.2cm}
|
||||||
|
\begin{columns}
|
||||||
|
\column{0.48\textwidth}
|
||||||
|
\textbf{Транскрибация (5 моделей):}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Whisper large-v3 / medium
|
||||||
|
\item Faster-Whisper large-v3
|
||||||
|
\item GigaAM-CTC / RNN-T
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\column{0.48\textwidth}
|
||||||
|
\textbf{Диаризация (3 модели):}
|
||||||
|
\begin{itemize}
|
||||||
|
\item pyannote 3.1
|
||||||
|
\item pyannote Community-1
|
||||||
|
\item Sortformer (NeMo)
|
||||||
|
\end{itemize}
|
||||||
|
\end{columns}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\centering
|
||||||
|
Всего конфигураций: $5 \times 5 \times 5 \times 3 \times 5 \times 5 = \mathbf{9375}$
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 5. Computational constraints =====
|
||||||
|
\begin{frame}{Вычислительные ограничения}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Полный перебор 9375 конфигураций $\times$ 5~мин $= \sim$\textbf{780 часов}
|
||||||
|
\item Необходимы эвристические методы оптимизации
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\textbf{Сокращение затрат:}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item 1 вариант датасета (raw) --- сравнение конфигураций, а не устойчивости к шуму
|
||||||
|
\item Половина датасета ($\sim$45~мин аудио) --- $\sim$5~мин на оценку
|
||||||
|
\item Суммаризация исключена: LLM-инференс $\sim$20--40~мин/оценку
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
Итог: $\sim$5~мин на одну оценку конфигурации, бюджет 10 часов.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 6. GA design =====
|
||||||
|
\begin{frame}{Генетический алгоритм}
|
||||||
|
\textbf{Хромосома:} вектор из 6 генов (индексы допустимых значений)
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\begin{columns}
|
||||||
|
\column{0.48\textwidth}
|
||||||
|
\textbf{Операторы:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Турнирная селекция ($k=3$)
|
||||||
|
\item Равномерный кроссовер
|
||||||
|
\item Мутация: $p=0{,}15$ на ген\\(70\% --- соседнее значение,\\30\% --- случайное)
|
||||||
|
\item Элитизм: 2 лучшие особи
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\column{0.48\textwidth}
|
||||||
|
\textbf{Параметры:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Популяция: 15 особей
|
||||||
|
\item Поколений: 25
|
||||||
|
\item Веса: $\alpha=0{,}4$, $\beta=0{,}4$, $\gamma=0{,}2$
|
||||||
|
\end{itemize}
|
||||||
|
\end{columns}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 7. Optimizations =====
|
||||||
|
\begin{frame}{Оптимизации вычислений}
|
||||||
|
\textbf{1. Модульное кэширование}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Транскрибация и диаризация --- \textbf{независимые} модули
|
||||||
|
\item Кэш транскрибации: ключ = (модель, beam\_size, vad\_threshold)
|
||||||
|
\item Кэш диаризации: ключ = (модель, min\_speech\_dur, clustering\_thr, vad\_thr)
|
||||||
|
\item Изменение параметров одного модуля не требует пересчёта другого
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.4cm}
|
||||||
|
\textbf{2. Пакетное планирование по моделям}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Загрузка модели в GPU: 30--60~с для крупных моделей
|
||||||
|
\item Конфигурации группируются по модели перед запуском
|
||||||
|
\item Модель загружается \textbf{один раз} для всего пакета
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 8. Convergence =====
|
||||||
|
\begin{frame}{Результаты: сходимость}
|
||||||
|
\begin{columns}
|
||||||
|
\column{0.55\textwidth}
|
||||||
|
\includegraphics[width=\textwidth]{../report/img/convergence.png}
|
||||||
|
|
||||||
|
\column{0.42\textwidth}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Быстрое улучшение в поколениях 0--4
|
||||||
|
\item Плато после 10-го поколения
|
||||||
|
\item Среднее сходится к лучшему --- популяция концентрируется в области оптимума
|
||||||
|
\end{itemize}
|
||||||
|
\end{columns}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 9. Best configurations =====
|
||||||
|
\begin{frame}{Результаты: лучшие конфигурации}
|
||||||
|
\small
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{c l l c c c}
|
||||||
|
\toprule
|
||||||
|
\textbf{\#} & \textbf{Транскрибация} & \textbf{Диаризация} & \textbf{WER} & \textbf{DER} & $f(\mathbf{x})$ \\
|
||||||
|
\midrule
|
||||||
|
1 & GigaAM-RNN-T & Sortformer & 5.32\% & 19.07\% & 11.25 \\
|
||||||
|
2 & GigaAM-CTC & Sortformer & 6.54\% & 19.07\% & 11.30 \\
|
||||||
|
3 & GigaAM-RNN-T & pyannote C.-1 & 5.32\% & 20.50\% & 11.60 \\
|
||||||
|
4 & GigaAM-CTC & pyannote C.-1 & 6.54\% & 20.50\% & 11.66 \\
|
||||||
|
5 & F.-Whisper l.-v3 & Sortformer & 7.59\% & 19.01\% & 11.84 \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\textbf{Лучшая:} GigaAM-RNN-T + Sortformer\\
|
||||||
|
beam\_size=1, vad\_thr=0.5, min\_speech\_dur=0.5~с, clustering\_thr=0.6
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 10. WER vs DER scatter =====
|
||||||
|
\begin{frame}{Результаты: распределение конфигураций}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.56\textwidth]{../report/img/wer_der_scatter.png}
|
||||||
|
|
||||||
|
\small Алгоритм сконцентрировал поиск в области малых WER и DER.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 11. Model frequency =====
|
||||||
|
\begin{frame}{Результаты: частота моделей в топ-20}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.82\textwidth]{../report/img/model_frequency.png}
|
||||||
|
|
||||||
|
\vspace{0.2cm}
|
||||||
|
\small GigaAM-RNN-T доминирует в транскрибации, Sortformer --- в диаризации.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 12. Comparison =====
|
||||||
|
\begin{frame}{Сравнение стратегий поиска}
|
||||||
|
\begin{table}
|
||||||
|
\centering
|
||||||
|
\begin{tabular}{l c c c c}
|
||||||
|
\toprule
|
||||||
|
\textbf{Стратегия} & \textbf{Оценок} & $f(\mathbf{x}^*)$ & \textbf{WER} & \textbf{DER} \\
|
||||||
|
\midrule
|
||||||
|
Полный перебор & 9375 & --- & --- & --- \\
|
||||||
|
Случ. поиск (15) & 15 & 13.03 & 6.99\% & 23.35\% \\
|
||||||
|
Случ. поиск (93) & 93 & 11.81 & 5.57\% & 20.27\% \\
|
||||||
|
Случ. поиск (375) & 375 & 11.32 & 5.57\% & 19.15\% \\
|
||||||
|
\textbf{ГА (25 пок.)} & \textbf{93 мод.} & \textbf{11.25} & \textbf{5.32\%} & \textbf{19.07\%} \\
|
||||||
|
\bottomrule
|
||||||
|
\end{tabular}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
\begin{itemize}
|
||||||
|
\item ГА с 93 модульными вычислениями лучше случайного поиска с 375 оценками
|
||||||
|
\item $93 / 9375 \approx 1\%$ пространства поиска
|
||||||
|
\item Оценочное время: $\sim$4 часа вместо 780 часов --- \textbf{ускорение $>$100$\times$}
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% ===== 13. Conclusion =====
|
||||||
|
\begin{frame}{Заключение}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Разработан ГА для оптимизации конфигурации модулей транскрибации и диаризации
|
||||||
|
\item Модульное кэширование сокращает вычисления в 2.6 раза
|
||||||
|
\item Пакетное планирование устраняет избыточные загрузки моделей
|
||||||
|
\item Сходимость за 4--10 поколений (93 модульных вычисления)
|
||||||
|
\item Лучшая конфигурация: WER~=~5.32\%, DER~=~19.07\%
|
||||||
|
\item Ускорение $>$100$\times$ по сравнению с полным перебором
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.4cm}
|
||||||
|
\textbf{Дальнейшая работа:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Расширение на этап суммаризации (дипломная работа)
|
||||||
|
\item Апробация на полном датасете
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
@@ -506,4 +506,23 @@ clustering\_threshold & дискретный & \{0.3, 0.45, 0.6, 0.75, 0.9\} \\
|
|||||||
\printbibliography[heading=bibintoc]
|
\printbibliography[heading=bibintoc]
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section*{Приложение 1. Исходный код файла ga.py}
|
||||||
|
\addcontentsline{toc}{section}{Приложение 1. Исходный код файла ga.py}
|
||||||
|
\label{app:ga}
|
||||||
|
\lstinputlisting[language=Python]{../ga/ga.py}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section*{Приложение 2. Исходный код файла run\_pipeline.py}
|
||||||
|
\addcontentsline{toc}{section}{Приложение 2. Исходный код файла run\_pipeline.py}
|
||||||
|
\label{app:run-pipeline}
|
||||||
|
\lstinputlisting[language=Python]{../ga/run_pipeline.py}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section*{Приложение 3. Исходный код файла generate\_plots.py}
|
||||||
|
\addcontentsline{toc}{section}{Приложение 3. Исходный код файла generate\_plots.py}
|
||||||
|
\label{app:generate-plots}
|
||||||
|
\lstinputlisting[language=Python]{../ga/generate_plots.py}
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|||||||
Reference in New Issue
Block a user