Вы запустили 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+. Стоимость рассчитывается индивидуально. Мы работаем как с разовыми проектами, так и с долгосрочным аутсорсингом аннотации. Получите консультацию для оценки вашего проекта — оценим объём работы, подберём оптимальный метод аннотации и рассчитаем сроки.







