Представьте: ваш отдел продаж тратит часы на расшифровку звонков, а распознавание медицинских терминов выдаёт 30% ошибок. Базовая модель Whisper Large v3 не справляется с доменной лексикой. Мы дообучаем Whisper на ваших данных — точность вырастает до 95%+ на целевых терминах. За 3–4 недели получаете готовую ASR-модель, интегрированную в ваш пайплайн. Наш опыт — 20+ проектов по ASR, 5+ лет в NLP. Гарантируем качество и прозрачность результатов.
Базовый Whisper Large v3 показывает WER 6–9% на стандартной русской речи, но на медицинских терминах, юридических формулировках или технических названиях продуктов ошибки вырастают до 25–40%. Дообучение под конкретный домен снижает WER до 3–8% на целевой лексике.
По данным Hugging Face Model Card, Whisper Large v3 обучен на 680k часов данных, но специализированная лексика покрыта слабо. — Источник: Hugging Face Whisper
Почему дообучение Whisper критично для вашего бизнеса?
Стандартные модели ASR ориентированы на общую речь. Если в вашей сфере используются редкие термины, аббревиатуры или профессиональный сленг, ошибки распознавания приводят к неверным данным, снижению качества аналитики и потерям времени на ручную коррекцию. Дообучение решает эти проблемы.
Когда дообучение необходимо
- Специфическая терминология с нулевым или малым покрытием в обучающих данных
- Сильный региональный или профессиональный акцент
- Низкое качество записи (телефония 8 kHz, шумные условия)
- Кодовое переключение (смесь русского с английским техническими терминами)
- Имена собственные: названия продуктов, брендов, людей
Сколько данных нужно для дообучения?
Минимальный объём для значимого улучшения: 10–30 часов размеченного аудио целевого домена. Для узкой специализации (один диктор, чистые условия) достаточно 2–5 часов. Чем больше данных, тем стабильнее результат.
Формат для обучения (HuggingFace datasets):
from datasets import Dataset, Audio
import pandas as pd
# Формат: audio path + transcript
data = pd.read_csv("transcripts.csv") # columns: audio_path, text
dataset = Dataset.from_pandas(data)
dataset = dataset.cast_column("audio_path", Audio(sampling_rate=16000))
Требования к данным:
- Частота дискретизации: 16 kHz
- Формат: WAV (предпочтительно) или FLAC
- Разметка: полный текст без сокращений нестандартных слов
- Длина сегментов: 5–30 секунд
Fine-tuning pipeline
Используем transformers + Seq2SeqTrainer:
from transformers import (
WhisperForConditionalGeneration,
WhisperProcessor,
Seq2SeqTrainer,
Seq2SeqTrainingArguments
)
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-large-v3")
processor = WhisperProcessor.from_pretrained("openai/whisper-large-v3", language="Russian")
training_args = Seq2SeqTrainingArguments(
output_dir="./whisper-medical-ru",
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=1e-5,
warmup_steps=500,
max_steps=4000,
gradient_checkpointing=True,
fp16=True,
evaluation_strategy="steps",
eval_steps=500,
save_steps=500,
generation_max_length=225,
predict_with_generate=True,
load_best_model_at_end=True,
metric_for_best_model="wer",
greater_is_better=False,
)
Стратегия обучения
Parameter-Efficient Fine-Tuning (PEFT) через LoRA позволяет дообучить только 1–2% параметров, сохраняя качество:
from peft import LoraConfig, get_peft_model
lora_config = LoraConfig(
r=32,
lora_alpha=64,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
bias="none"
)
model = get_peft_model(model, lora_config)
LoRA-адаптер занимает 50–100 MB против 3 GB базовой модели — удобно для хранения нескольких доменных версий.
Сравнение full fine-tuning и LoRA
| Параметр | Full fine-tuning | LoRA (PEFT) |
|---|---|---|
| Обучаемые параметры | 100% (3B) | 1–2% (30–60M) |
| Время обучения (20h данных, A100) | ~12 часов | ~4 часа |
| Память GPU | ~48 GB | ~16 GB |
| WER на домене | 4–8% | 5–10% |
| WER на общей речи | 7–11% | 6–9% |
| Размер чекпоинта | ~6 GB | ~100 MB |
| Переключение между доменами | Требуется новая модель | Простая замена адаптера |
Метрики качества
| Этап | WER на домене | WER на общей речи |
|---|---|---|
| Базовый large-v3 | 25–40% | 6–9% |
| После fine-tuning (full) | 4–8% | 7–11% |
| После LoRA fine-tuning | 5–10% | 6–9% |
Full fine-tuning даёт чуть лучший результат на домене, но риск деградации на общей речи. LoRA сохраняет баланс и в 10 раз быстрее обучается.
Инфраструктура для обучения
Минимальная конфигурация: 1x A100 80GB. Время обучения при 20 часах данных:
- 4 000 шагов, batch 16: ~8 часов на A100
- Для smaller бюджета — обучение на RTX 4090 с gradient checkpointing и fp16: те же 4 000 шагов займут ~24–36 часов
Стоимость обучения на облачном GPU рассчитывается индивидуально. Экономия от автоматизации расшифровки — до 2 млн ₽ в год при потоке 1000 часов аудио в месяц.
Сроки проекта
- Подготовка и разметка данных: 1–2 недели (зависит от наличия транскрипций)
- Обучение и подбор гиперпараметров: 3–5 дней
- Тестирование и валидация: 3–5 дней
- Итого: 3–4 недели
Что входит в работу
- Аудит ваших данных и целевых метрик
- Подготовка и препроцессинг аудиодатасета
- Выбор оптимальной стратегии (full fine-tuning или LoRA)
- Обучение модели и гиперпараметрическая оптимизация
- Интеграция в ваш пайплайн (REST API, библиотека, Docker-образ)
- Документация по эксплуатации
- Пост-обучение поддержка и дообучение на новых данных
Типичные ошибки при дообучении Whisper
- Использование необработанных аудиофайлов с шумами — ухудшает сходимость.
- Слишком короткие сегменты (менее 5 секунд) — модель не улавливает контекст.
- Переобучение: loss падает, но WER на валидации растёт — используйте early stopping.
- Забыли заморозить encoder при LoRA — тогда обучается вся модель, теряется эффективность.
Как мы гарантируем результат
Мы предоставляем отчёт с метриками до и после дообучения, model card и тестовый пример. Если WER не снижается до оговорённого порога — дорабатываем бесплатно.
Закажите пилотное дообучение на ваших данных — получите результат за 3 дня. Свяжитесь с нами для оценки вашего проекта.







