Разметка данных для дообучения 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

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

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

Типы аннотации

Direct annotation — разметчик создаёт пару (инструкция, идеальный ответ) с нуля. Самое высокое качество, самый высокий cost.

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 — для больших объёмов с профессиональными аннотаторами. Существенно дороже, но Quality Control включён.

Inter-annotator Agreement

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

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

Calibration сессии

Перед стартом полноценной аннотации: совместная разметка 20-50 примеров всей командой, обсуждение расхождений, уточнение guidelines. Это критически снижает варианс между аннотаторами. Без калибровки даже опытные аннотаторы дают kappa < 0.5 на сложных задачах.