Skip to content

Контроль качества

Обеспечьте качество разметки в Potato проверками внимательности, эталонными примерами, настраиваемым пересечением разметчиков и отчётом по альфе Криппендорфа.

В Potato есть механизмы контроля качества, помогающие держать разметку надёжной: проверки внимательности, эталонные примеры, поддержка предразметки и метрики согласованности в реальном времени.

Four quality controls, one reliable dataset — Each control catches a different failure mode; combine themFour quality controls, one reliable dataset

Обзор

Контроль качества в Potato складывается из четырёх ключевых механизмов:

  1. Проверки внимательности — подтверждают вовлечённость разметчика объектами с известным ответом
  2. Эталонные примеры — отслеживают точность относительно объектов, размеченных экспертом
  3. Поддержка предразметки — заполняет формы предсказаниями модели
  4. Метрики согласованности — считают согласованность разметчиков в реальном времени

Проверки внимательности

Проверки внимательности — это объекты с заранее известным правильным ответом, подтверждающие, что разметчик работает внимательно, а не кликает наугад.

Конфигурация

yaml
attention_checks:
  enabled: true
  items_file: "attention_checks.json"
 
  # How often to inject attention checks
  frequency: 10              # Insert one every 10 items
  # OR
  probability: 0.1           # 10% chance per item
 
  # Optional: flag suspiciously fast responses
  min_response_time: 3.0     # Flag if answered in < 3 seconds
 
  # Failure handling
  failure_handling:
    warn_threshold: 2        # Show warning after 2 failures
    warn_message: "Please read items carefully before answering."
    block_threshold: 5       # Block user after 5 failures
    block_message: "You have been blocked due to too many incorrect responses."

Файл с объектами проверки внимательности

json
[
  {
    "id": "attn_001",
    "text": "Please select 'Positive' for this item to verify you are reading carefully.",
    "expected_answer": {
      "sentiment": "positive"
    }
  }
]

Эталонные примеры

Эталонные примеры — это объекты, размеченные экспертом и служащие мерой точности разметчика. По умолчанию эталоны молчаливые: результаты записываются для разбора администратором, но разметчик обратной связи не видит.

Конфигурация

yaml
gold_standards:
  enabled: true
  items_file: "gold_standards.json"
 
  # How to use gold standards
  mode: "mixed"              # Options: training, mixed, separate
  frequency: 20              # Insert one every 20 items
 
  # Accuracy requirements
  accuracy:
    min_threshold: 0.7       # Minimum required accuracy (70%)
    evaluation_count: 10     # Evaluate after this many gold items
 
  # Feedback settings (disabled by default)
  feedback:
    show_correct_answer: false
    show_explanation: false
 
  # Auto-promotion from high-agreement items
  auto_promote:
    enabled: true
    min_annotators: 3
    agreement_threshold: 1.0   # 1.0 = unanimous

Файл с эталонными объектами

json
[
  {
    "id": "gold_001",
    "text": "The service was absolutely terrible and I will never return.",
    "gold_label": {
      "sentiment": "negative"
    },
    "explanation": "Strong negative language clearly indicates negative sentiment.",
    "difficulty": "easy"
  }
]

Автоматическое повышение

Объекты могут автоматически становиться эталонными, когда несколько разметчиков сходятся во мнении:

yaml
gold_standards:
  auto_promote:
    enabled: true
    min_annotators: 3          # Wait for at least 3 annotators
    agreement_threshold: 1.0   # 100% must agree (unanimous)

Поддержка предразметки

Предразметка позволяет заранее заполнять формы предсказаниями модели — это удобно для активного обучения и сценариев исправления.

Конфигурация

yaml
pre_annotation:
  enabled: true
  field: "predictions"        # Field in data containing predictions
  allow_modification: true    # Can annotators change pre-filled values?
  show_confidence: true
  highlight_low_confidence: 0.7

Формат данных

Включите предсказания в объекты данных:

json
{
  "id": "item_001",
  "text": "I love this product!",
  "predictions": {
    "sentiment": "positive",
    "confidence": 0.92
  }
}

Метрики согласованности

Метрики согласованности разметчиков в реальном времени по альфе Криппендорфа доступны в админ-панели.

Конфигурация

yaml
agreement_metrics:
  enabled: true
  min_overlap: 2             # Minimum annotators per item
  auto_refresh: true
  refresh_interval: 60       # Seconds between updates

Как читать альфу Криппендорфа

Значение альфыТолкование
α ≥ 0,8Хорошая согласованность — надёжно для большинства задач
0,67 ≤ α ≤ 0,8Предварительная согласованность — выводы делать с осторожностью
0,33 ≤ α ≤ 0,67Низкая согласованность — пересмотрите инструкции
α ≤ 0,33Плохая согласованность — серьёзные проблемы

Интеграция с админ-панелью

Метрики контроля качества смотрите в админ-панели по адресу /admin:

  • Проверки внимательности: общая доля прохождений и провалов, статистика по каждому разметчику
  • Эталонные примеры: точность по каждому разметчику, разбор сложности по каждому объекту
  • Согласованность: альфа Криппендорфа по каждой схеме с толкованием
  • Автоматически повышенные объекты: список объектов, ставших эталонными по высокой согласованности

Эндпоинты API

Метрики контроля качества

http
GET /admin/api/quality_control

Возвращает статистику по проверкам внимательности и эталонным примерам.

Метрики согласованности

http
GET /admin/api/agreement

Возвращает альфу Криппендорфа по схемам с толкованием.

Полный пример

yaml
annotation_task_name: "Sentiment Analysis with Quality Control"
 
annotation_schemes:
  - name: sentiment
    annotation_type: radio
    labels: [positive, negative, neutral]
    description: "Select the sentiment of the text"
 
attention_checks:
  enabled: true
  items_file: "data/attention_checks.json"
  frequency: 15
  failure_handling:
 
gold_standards:
  enabled: true
  items_file: "data/gold_standards.json"
  mode: mixed
  frequency: 25
  accuracy:
 
agreement_metrics:
  enabled: true
  min_overlap: 2
  refresh_interval: 60

Решение проблем

Проверки внимательности не появляются

  1. Убедитесь, что путь в items_file верный (относительно каталога задачи)
  2. Проверьте, что у объектов есть обязательные поля (id, expected_answer)
  3. Убедитесь, что задан frequency или probability

Метрики согласованности показывают «No items with N+ annotators»

  1. Убедитесь, что объекты размечены несколькими пользователями
  2. При необходимости уменьшите min_overlap
  3. Проверьте, что разметка вообще сохраняется

Что почитать дальше

Детали реализации — в исходной документации.