Розмітка даних для дообчання LLM

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розмітка даних для дообчання LLM
Середній
від 1 тижня до 3 місяців
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Розмітка даних для fine-tuning LLM

Розмітка даних для fine-tuning LLM принципово відрізняється від класичної розмітки для ML: тут не просто присвоюється мітка, а створюється ідеальна відповідь моделі. Якість анотацій безпосередньо визначає якість навченої моделі.

Типи анотації

Direct annotation — аннотатор створює пару (інструкція, ідеальна відповідь) з нуля. Найвища якість, найвищі витрати.

Edit-based annotation — аннотатор поліпшує відповідь базової моделі. В 2-3x швидше, ніж з нуля. Ризик: аннотатор приймає погану відповідь з мінорними правками.

Ranking/Preference annotation — аннотатор ранжирує кілька відповідей моделі (використовується для RLHF та DPO). Простіше, ніж створення з нуля, але потребує розуміння критеріїв якості.

AI-assisted annotation — сильна модель (GPT-4) генерує відповіді, люди перевіряють та коригують. Оптимальний баланс якості та швидкості для більшості завдань.

Керівництво з анотації (Annotation Guidelines)

Ключовий документ, без якого аннотатори дадуть неузгоджені результати:

## Керівництво з анотації: 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 — для великих обсягів з професійними аннотаторами. Істотно дорожче, але контроль якості включено.

Узгодженість між аннотаторами

Для контролю якості важливо перекриття: 10-20% завдань позначаються двома аннотаторами незалежно:

from sklearn.metrics import cohen_kappa_score

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

Сесія калібрування

Перед стартом повноцінної анотації: спільна розмітка 20-50 прикладів усією командою, обговорення розбіжностей, уточнення керівництва. Це критично зменшує дисперсію між аннотаторами. Без калібрування навіть досвідчені аннотатори дають kappa < 0.5 на складних завданнях.