Ви запустили fine-tuning своєї LLM, а якість відповідей виявилася нижчою, ніж очікувалося. Найчастіше причина не в архітектурі, а в даних. 70% проблем з fine-tuning пов'язані з якістю розмітки, а не з вибором моделі чи гіперпараметрами. Неправильно зібраний датасет призводить до падіння метрик на 20-30% порівняно з добре розміченим. Розмітка для дообучення принципово відрізняється від класичної ML-розмітки: тут не присвоюється мітка, а створюється ідеальна відповідь моделі. Якість анотацій безпосередньо визначає якість навченої моделі. Ми реалізували понад 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+. Вартість розраховується індивідуально. Ми працюємо як з разовими проєктами, так і з довгостроковим аутсорсингом анотації. Отримайте консультацію для оцінки вашого проєкту — оцінимо обсяг роботи, підберемо оптимальний метод анотації та розрахуємо терміни.







