Як розмітка даних впливає на fine-tuning LLM

Ви запустили fine-tuning своєї LLM, а якість відповідей виявилася нижчою, ніж очікувалося. Найчастіше причина не в архітектурі, а в даних. 70% проблем з fine-tuning пов'язані з якістю розмітки, а не з вибором моделі чи гіперпараметрами. Неправильно зібраний датасет призводить до падіння метрик на 20

Напрямки 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

Ви запустили 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+. Вартість розраховується індивідуально. Ми працюємо як з разовими проєктами, так і з довгостроковим аутсорсингом анотації. Отримайте консультацію для оцінки вашого проєкту — оцінимо обсяг роботи, підберемо оптимальний метод анотації та розрахуємо терміни.