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







