Дообучение Embedding-модели под домен заказчика

Дообучение Embedding-модели под домен заказчика

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Дообучение Embedding-модели под домен заказчика

Представьте: вы внедрили RAG-пайплайн с современной embedding-моделью — BAAI/bge-m3 или OpenAI text-embedding-3. На общих запросах всё работает, но как только доходит до профильных документов — медицинских протоколов, судебных решений или технических стандартов — точность поиска падает. Модель путает термины домена, context recall застревает на 0.6-0.7, а в top-K лезут семантически похожие, но тематически нерелевантные документы. Мы решаем эту проблему дообучением модели на ваших данных. Без замены инфраструктуры. Наш подход: генерация синтетических пар через LLM, fine-tuning с MultipleNegativesRankingLoss и тщательная оценка. Результат — прирост NDCG на 15-30%. За 5 лет мы выполнили более 30 проектов по кастомизации NLP-моделей.

«Domain-specific fine-tuning of embedding models can improve retrieval metrics by 15-30% without changing infrastructure» — из отчёта о проекте

Когда необходимо дообучение embedding-модели?

Симптомы, которые говорят о необходимости fine-tuning:

  • Общая модель путает специфические термины: MeSH terms в медицине, юридические конструкции в праве, технические аббревиатуры.
  • Context recall RAG-системы застрял ниже 0.75, даже после оптимизации чанкинга и поискового индекса.
  • Высокая доля ложных срабатываний — семантически похожие, но тематически нерелевантные документы попадают в top-K.

Если вы заметили эти признаки, fine-tuning даст прирост метрик на 15-30% без изменения архитектуры.

Почему fine-tuning выгоднее замены модели?

Замена на более крупную модель (например, с 768 до 1536 размерности) увеличивает latency и стоимость хранения векторов. Fine-tuning той же модели на доменных данных — дешевле и быстрее. Мы используем MultipleNegativesRankingLoss — он эффективнее triplet loss для задач retrieval. Экономия на инфраструктуре может достигать 30%, а затраты на API для генерации данных окупаются за счёт точности.

Как мы дообучаем: стек и конфигурация

Используем sentence-transformers, PyTorch, Hugging Face Transformers. Базовая модель — BAAI/bge-m3 или intfloat/multilingual-e5-large. Обучаем на A100 (80GB) с batch size 32, learning rate 2e-5, warmup 10%.

Генерация обучающих пар с LLM

Для создания датасета без ручной разметки применяем GPT-4o-mini. Пример генерации:

from openai import OpenAI import json client = OpenAI() def generate_queries_for_document(doc_text: str, n: int = 5) -> list[str]: response = client.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "user", "content": f"""Сгенерируй {n} поисковых запросов...""" }], response_format={"type": "json_object"}, ) return json.loads(response.choices[0].message.content)["queries"] 

Типично: 1000 документов × 5 запросов = 5000 пар за ~2 часа и 5-15 долларов на API.

Пошаговый процесс fine-tuning

  1. Анализ домена и сбор репрезентативных документов. Определяем ключевые темы и типы запросов.
  2. Генерация синтетических пар запрос-документ. Используем LLM (GPT-4o-mini) для создания до 5000 пар.
  3. Ручное ревью и коррекция (опционально). Привлекаем экспертов домена для повышения качества.
  4. Fine-tuning. Запускаем обучение на A100 с MultipleNegativesRankingLoss.
  5. Оценка. Сравниваем метрики на тестовой выборке до и после.
  6. Деплой. Заменяем файл весов — инфраструктура не меняется.

Объёмы данных: минимальные и оптимальные

Тип набора Количество пар (запрос-документ) Ожидаемый прирост NDCG@10
Минимальный 300–500 5–10%
Оптимальный 2000–5000 15–30%

Из нашей практики: юридические документы

Мы работали с крупной юридической компанией. Их задача — поиск по судебным решениям и нормативным актам. Базовая модель BAAI/bge-m3 давала NDCG@10 = 0.68. Мы дообучили на 8000 пар (6500 синтетических через GPT-4o-mini, 1500 ручных от экспертов). Результаты:

Метрика До FT После FT
NDCG@10 0.68 0.84
Recall@5 0.61 0.79
MRR@5 0.65 0.82
Latency (inference) без изменений без изменений

+24% к NDCG без изменения инфраструктуры — только обновление весов модели. Клиент получил систему поиска, которая находит нужные документы вдвое точнее.

Что входит в работу

  • Анализ ваших данных и выявление проблем retrieval.
  • Подготовка обучающего датасета (синтетическая + ручная разметка при необходимости).
  • Fine-tuning модели на выбранном стеке.
  • Оценка на ваших тестовых запросах.
  • Деплой дообученной модели в вашу инфраструктуру (Docker, SageMaker, Triton).
  • Документация и обучение команды.

Закажите оценку вашего проекта — мы подберём оптимальную стратегию дообучения.

Сроки

  • Генерация датасета: 3-7 дней.
  • Fine-tuning: 2-4 часа (на A100) до суток при большом объёме.
  • Оценка и сравнение: 2-3 дня.
  • Итого от 1 до 3 недель в зависимости от сложности.

Как оценить качество после дообучения?

Используем InformationRetrievalEvaluator из sentence-transformers:

evaluator = InformationRetrievalEvaluator( queries=test_queries, corpus=test_corpus, relevant_docs=relevance_labels, precision_recall_at_k=[1,5,10], ndcg_at_k=[10], ) 

Сравниваем базовую и дообученную модель. Результаты визуализируем и отдаём заказчику.

Чтобы избежать типичных ошибок, мы используем достаточный объём данных, отделяем тестовую выборку и нормализуем эмбеддинги на inference. Благодаря 5-летнему опыту в NLP и более чем 30 успешным проектам по дообучению мы гарантируем результат.

Свяжитесь с нами — мы оценим ваш проект и предложим оптимальное решение. Работаем под ключ: от анализа данных до деплоя. Получите консультацию — это бесплатно.