Протоколирование совещаний — важная часть корпоративной коммуникации: протоколы позволяют быстро восстановить ключевые моменты, не переслушивая часовые записи. Нас зовут Андрей Ситников и Максим Шкут, мы работаем DS в команде департамента анализа данных и моделирования ВТБ, занимаемся задачей автоматического протоколирования встреч. Мы реализуем ее с помощью LLM-модели Qwen. В этой статье расскажем, как мы оптимизировали inference, сохранив качество генерации протоколов.
Эта статья – саммари нашего выступления на Data Fest 2025. Запись выступления вы можете найти по ссылке (таймкод – 04:15:03).
Постановка задачи
Протоколирование — это NLP-задача извлечения ключевых данных из стенограмм встреч. В качестве источника стенограмм мы используем нашу ASR-систему на базе [Wav2Vec 2.0](https://arxiv.org/abs/2006.11477). Далее стенограмма подается в LLM, которая на ее основе генерирует структурированный протокол встречи.
Для решения этой задачи мы использовали Qwen 2.5 Instruct, так как:
Модель понимает контекст даже при наличии ошибок в стенограмме;
Поддерживает формат инструкций, что важно для управления генерацией;
Обладает расширенным контекстом.
Система генерирует два типа протоколов:
1. Общий — включает тип встречи, название, краткое содержание, хэштеги, выводы.
2. По таймкодам — дополнительно структурирован по хронологии с краткими описаниями сегментов.
Вот пример JSON-протокола:
```json
{
"Тип": "Рабочее совещание для совместного решения производственных вопросов",
"Название": "Решение проблем с туннелем и настройка правил",
"Содержание": "Сотрудники обсуждают и решают проблемы с туннелем и настройкой правил для трафика...",
"Хештэги": "#сетевая_инфраструктура #настройка_туннеля #решение_проблем",
...
}
```
Проблема: слишком затратное использование 32B модели в проде
Базовая модель Qwen 2.5 32B отлично справлялась с задачей, но требовала 80 ГБ VRAM, доступных только на H100. Однако в проде у нас A100 с 40 ГБ видеопамяти. Возникла задача: оптимизировать модель для inference без потери качества.
Подход к оптимизации
Мы рассмотрели три варианта:
Младшая модель Qwen 2.5 14B.
Квантизованная Qwen 2.5 32B AWQ INT4.
Квантизованная Qwen 2.5 32B SmoothQuant INT8.
Подготовка датасета
Для обучения/дистилляции собрали датасет:
> 4000 стенограмм совещаний.
> 8000 пар “prompt + стенограмма → эталонный протокол” (через Qwen 32B).
Нормализовали структуру, исправили ошибки ASR.
Методология
Квантизация: выбор между AWQ и SmoothQuant
AWQ
Учитывает активации при квантизации весов.
Хорошо работает для INT4.
Требует калибровки.
Не все слои поддаются квантизации.
SmoothQuant
Перераспределяет значения между весами и активациями.
Эффективен против выбросов.
Лучше для INT8.
Требует частичной переделки модели.
Дистилляция
Для Qwen14B использовали LoRA: обучение низкоранговых адаптеров при замороженных весах.
Для квантизованных моделей — QLoRA, совмещающая LoRA и квантизацию.
Оценка моделей
Метрика: косинусная близость эмбеддингов содержания между предсказанием и эталоном. Использовали Universal Sentence Encoder, так как он поддерживает русский язык. Температура генерации = 0.
Результаты до/после обучения:
Модель |
До обучения (метрика качества – косинусная близость эмбеддингов содержания между эталоном и предиктом) |
После обучения |
Время inference (мин) |
Qwen 14B |
81.4 |
86.7 |
22 |
Qwen 32B |
86.8 |
88.0 (AWQ), 89.2 (SQ INT 8) |
20 (AWQ), 43 (SQ INT 8) |
Качественный анализ
Несмотря на формальные метрики, мы провели ручную экспертизу:
SmoothQuant:
Дает лучшую метрику, но работает в два раза дольше.
Не дает ощутимых преимуществ в качестве содержания.
AWQ:
Быстрая, но качество почти не меняется.
Иногда искажает смысл.
14B:
Генерирует дополнительную информацию, имеющуюся в стенограмме, но отсутствующую в эталоне.
Лучше справляется с таймкодами и хэштегами.
Пример: 14B может выделить важную тему, упомянутую мимолетно, но не зафиксированную в эталоне — это может ухудшить метрику, но улучшить практическую ценность.
Выводы
Модель Qwen 2.5 14B показала лучшее соотношение скорости, качества и полноты информации. Автоматическая оценка (даже на основе эмбеддингов) не заменяет ручной анализ. Квантизация требует осторожного подхода — выгода в ресурсах может не компенсировать падение качества или скорости.
В результате мы перешли на Qwen 14B как основную inference-модель в продакшене.
На митапе также прозвучало несколько интересных вопросов, кратко ответим на них:
По итогу работы модели получается ASR-транскрипт с таймкодами и спикерами?
По итогу работы ASR-модели получается транскрипт с таймкодами и спикерами?
Да. Диаризация встроена в систему видеосвязи. Мы получаем полную структурированную стенограмму с таймкодами, разметкой спикеров и текстом, нормализованным по пунктуации и орфографии.
Почему для оценки качества текстов относительно эталонных вы выбрали именно косинусную близость между эмбеддингами?
Потому что это простая и интерпретируемая метрика, которая хорошо отражает смысловое сходство между фразами. Мы фокусируемся именно на содержании, а не на точном совпадении слов, но планируем добавить другие метрики, чтобы учитывать стиль и структуру.
Планируете ли вы в будущем автоматизировать процесс ручной проверки протоколов — например, с помощью дополнительной модели или алгоритма, который сможет оценивать качество результатов без участия человека?
Пока нет, мы продолжаем использовать human-in-the-loop, так как это обеспечивает более стабильное и надёжное качество оценки протоколов.
В перспективе возможно частичное автоматизирование процесса с помощью подсказок модели.
Почему выбрали именно Qwen?
Модель open-source, хорошо работает с длинным контекстом и стабильно отдаёт структурированный JSON-выход.