Дообучение Whisper под доменную лексику заказчика

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Дообучение Whisper под доменную лексику заказчика
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Дообучение Whisper под доменную лексику заказчика

Базовый Whisper Large v3 показывает WER 6–9% на стандартной русской речи, но на медицинских терминах, юридических формулировках или технических названиях продуктов ошибки вырастают до 25–40%. Дообучение под конкретный домен снижает WER до 3–8% на целевой лексике.

Когда дообучение необходимо

  • Специфическая терминология с нулевым или малым покрытием в обучающих данных
  • Сильный региональный или профессиональный акцент
  • Низкое качество записи (телефония 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 базовой модели — удобно для хранения нескольких доменных версий.

Метрики качества

Этап 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 сохраняет баланс.

Инфраструктура для обучения

Минимальная конфигурация: 1x A100 80GB. Время обучения при 20 часах данных:

  • 4 000 шагов, batch 16: ~8 часов на A100
  • Стоимость на AWS (p4d.24xlarge): ~$160

Для smaller бюджета — обучение на RTX 4090 с gradient checkpointing и fp16: те же 4 000 шагов займут ~24–36 часов.

Сроки проекта

  • Подготовка и разметка данных: 1–2 недели (зависит от наличия транскрипций)
  • Обучение и подбор гиперпараметров: 3–5 дней
  • Тестирование и валидация: 3–5 дней
  • Итого: 3–4 недели