Как разметка данных влияет на fine-tuning LLM

Качество ответов вашей LLM после дообучения оставляет желать лучшего? Часто причина кроется не в архитектуре, а в данных. Мы разрабатываем и реализуем проекты по разметке данных для fine-tuning под ключ, обеспечивая высокое качество аннотаций и последующую поддержку.
Часто задаваемые вопросы

Вы запустили fine-tuning своей LLM, а качество ответов оказалось ниже ожидаемого. Чаще всего причина не в архитектуре, а в данных. 70% проблем с fine-tuning связаны с качеством разметки, а не с выбором модели или гиперпараметрами. Неправильно собранный датасет приводит к падению метрик на 20‑30% по сравнению с хорошо размеченным. Разметка для дообучения принципиально отличается от классической ML‑разметки: здесь не присваивается метка, а создаётся идеальный ответ модели. Качество аннотаций напрямую определяет качество обученной модели. За 5 лет мы реализовали свыше 50 проектов — от поддержки клиентов до многошаговых агентов, и гарантируем профессиональный подход к каждому.

Типы аннотации

Выбор способа зависит от объёма, бюджета и требуемого качества. Ниже — сравнение основных подходов.

Тип аннотации Скорость Качество Стоимость Риски
Direct annotation 5‑10 пар/час Очень высокое Высокая Усталость аннотатора
Edit-based 15‑30 пар/час Высокое Средняя Принятие плохого ответа
Ranking/Preference 20‑40 пар/час Среднее Низкая Неконсистентность критериев
AI-assisted 30‑50 пар/час Высокое Низкая Зависимость от базовой модели

Direct annotation — разметчик создаёт пару (инструкция, идеальный ответ) с нуля. Самое высокое качество, самый высокий cost. Используем для критичных к качеству доменов (юриспруденция, медицина).

Edit-based annotation — разметчик улучшает ответ базовой модели. В 2‑3 раза быстрее, чем с нуля. Риск: разметчик принимает плохой ответ с минорными правками. Чтобы этого избежать, включаем обязательное поле «обоснование изменений».

Ranking/Preference annotation — разметчик ранжирует несколько ответов модели (используется для RLHF и DPO). Проще, чем создание с нуля, но требует чёткого понимания критериев качества. Без них kappa между аннотаторами редко превышает 0.4.

AI-assisted annotation — сильная модель (GPT‑4) генерирует ответы, люди проверяют и корректируют. Оптимальный баланс качества и скорости для большинства задач. На практике даёт 90% качества direct при 30% стоимости.

Как выбрать тип аннотации?

Если ваша задача — обучить модель отвечать на типовые вопросы (поддержка, FAQ), выбирайте AI-assisted с финальной вычиткой. Для творческих задач (генерация кода, креатив) — direct annotation. Для задач с ранжированием (рекомендательные системы) — ranking/Preference. Если бюджет ограничен, можно комбинировать: 20% direct для обучения аннотаторов и 80% edit-based для основного объёма. Получите консультацию по подбору типа аннотации для вашего проекта — мы поможем с выбором.

Руководство по аннотации (Annotation Guidelines)

Ключевой документ, без которого аннотаторы будут давать несогласованные результаты. Включаем в него:

  • критерии качества (точность, полнота, тон, длина, структура);
  • примеры хорошего ответа с разбором;
  • примеры плохого ответа с объяснением ошибок;
  • список запрещённых фраз («Я просто языковая модель…», «Я не могу…»);
  • правила обработки неоднозначных запросов.

Мы разрабатываем guidelines под каждый проект и проводим calibration сессии перед стартом. Пример guidelines для Customer Support Assistant:

## Руководство по аннотации: Customer Support Assistant

### Критерии качества хорошего ответа:
1. Точность: Ответ соответствует политикам компании и фактически верен
2. Полнота: Решает проблему пользователя, не оставляя открытых вопросов
3. Тон: Профессиональный, эмпатичный, без извинений за несуществующие проблемы
4. Длина: Достаточная, но не избыточная (100-300 слов оптимально)
5. Структура: Абзацы, без списков для простых ответов

### Что НЕ должно быть в ответе:
- "Я просто языковая модель..."
- "Я не могу..."
- Повторение вопроса пользователя
- Неуместные извинения
- Устаревшая информация о продукте

### Примеры ХОРОШЕГО ответа:
[примеры]

### Примеры ПЛОХОГО ответа:
[примеры с объяснением]

Платформы для аннотации

Label Studio (open-source):

from label_studio_sdk import Client
ls = Client(url='http://localhost:8080', api_key='...')
# Создание проекта для LLM аннотации
project = ls.start_project(
    title='Customer Support Fine-tuning',
    label_config='''
<View>
    <Text name="instruction" value="$instruction"/>
    <TextArea name="response" toName="instruction" placeholder="Write ideal response..." rows="10" maxSubmissions="1"/>
    <Rating name="quality" toName="instruction" maxRating="5" icon="star" size="medium"/>
</View>
'''
)
# Загрузка задач
tasks = [{"instruction": ex.instruction, "input": ex.input} for ex in unannotated_examples]
project.import_tasks(tasks)

Scale AI / Appen — для больших объёмов с профессиональными аннотаторами. Существенно дороже, но Quality Control включён. Используем их для проектов с объёмом от 50 000 пар.

Как контролировать качество аннотаций?

Основной метрикой является inter-annotator agreement (IAA) — согласованность между аннотаторами. Чем выше, тем надёжнее данные. Для контроля качества мы закладываем перекрытие 10–20% задач, которые размечаются двумя специалистами независимо. Считаем Cohen's Kappa — меру согласия, используемую в NLP.

Пример расчёта Cohen's Kappa
from sklearn.metrics import cohen_kappa_score

def compute_iaa(annotations_a: list, annotations_b: list) -> float:
    """Cohen's Kappa для согласованности аннотаторов"""
    # Для ranking задач (1-5 rating)
    kappa = cohen_kappa_score(annotations_a, annotations_b)
    print(f"Cohen's Kappa: {kappa:.3f}")
    # < 0.4: низкое согласие, пересмотр guidelines
    # 0.6-0.8: хорошее согласие
    # > 0.8: отличное согласие
    return kappa

Низкая согласованность (< 0.4) — сигнал, что guidelines неоднозначны. Мы дорабатываем документ, проводим дополнительную calibration сессию и повторно замеряем IAA.

Calibration сессии перед стартом полноценной аннотации: совместная разметка 20‑50 примеров всей командой, обсуждение расхождений, уточнение guidelines. Это критически снижает варианс между аннотаторами. Без калибровки даже опытные аннотаторы дают kappa < 0.5 на сложных задачах. После калибровки — стабильно 0.7+.

Почему важны calibration сессии?

Потому что без них разброс между аннотаторами может свести на нет все усилия по сбору данных. Одна calibration сессия снижает количество переделок на 40% и повышает итоговую точность модели на 15‑20%. Это экономит до 30% бюджета проекта. Оптимизация разметки снижает затраты на 35–40% по сравнению с традиционными методами. Закажите пилотную калибровку — мы покажем эффект на ваших данных.

Что входит в нашу работу по разметке данных?

Ниже — основные этапы и их длительность.

Этап Длительность Результат
Анализ задачи и разработка guidelines 3‑5 дней Документ annotation guidelines
Подбор типа аннотации 1 день Рекомендация с обоснованием
Calibration сессия и обучение 2‑3 дня Обученные аннотаторы
Разметка с контролем качества от 2 недель Датасет с перекрытием и IAA
Итоговый датасет и документация 2 дня JSONL с метаданными, статистика IAA

Сроки зависят от объёма и сложности: от 2 недель для 1000 пар до 2‑3 месяцев для 50 000+. Стоимость рассчитывается индивидуально. Мы работаем как с разовыми проектами, так и с долгосрочным аутсорсингом аннотации. Получите консультацию для оценки вашего проекта — оценим объём работы, подберём оптимальный метод аннотации и рассчитаем сроки.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139