Skip to content

Переход на движок разметки

Перенесите конфигурации icl_labeling, judge_calibration, pre_annotation и Solo Mode на движок разметки командой potato label migrate-config и узнайте, что изменится.

Старые функции машинной разметки Potato продолжают работать в 2.11, и поведение ничем не меняется, пока вы не добавите блок labeling_engine. Три ключа теперь выводят при запуске информационное примечание с их эквивалентом в движке разметки, и их планируется удалить в 3.0. Примечания пишутся в stderr, начинаются с NOTE: и не являются предупреждениями, поэтому potato validate --strict из-за них не падает.

В таблице перечислены три ключа и то, чем становится каждый:

Старый ключЭквивалент в движке
icl_labelingисточник llm с контрактом threshold_legacy для старого правила и контрактом selective_risk рядом с ним
judge_calibrationисточники judge с уверенностью k_sample, чья слепая выборка становится калибровочными запросами
pre_annotationисточник static

Solo Mode, согласование судьи и интерактивный ИИ-ассистент (ai_support) не объявлены устаревшими. Solo Mode представляет собой работу одного эксперта с LLM через собственный интерфейс, а согласование судьи является отчётом. Когда движок включён, оба также записывают свои предсказания моделей в хранилище движка, чтобы движок мог их откалибровать и сертифицировать.

potato label migrate-config

potato label migrate-config переводит старые ключи в блок labeling_engine:

bash
potato label migrate-config config.yaml --out config-engine.yaml

Команда читает YAML, не загружая данных, добавляет эквивалентный блок labeling_engine и записывает результат с заголовком из примечаний, которые объясняют каждый перевод. Блок записывается с enabled: false, поэтому переведённая конфигурация ведёт себя как исходная, пока вы не включите движок. Прочитайте примечания, проверьте источники и контракты, затем задайте enabled: true и assignment_strategy: engine. Команда завершается с ошибкой, если в конфигурации уже есть блок labeling_engine или если переводить нечего.

Таблица перевода

Каждый старый блок сопоставляется источникам, контрактам и настройкам людей движка так:

Старый блокИсточникиКонтрактыЛюди
solo_mode с confidence_routing.tiersпо источнику на уровень, в порядке уровнейselective_risk на каждую схему «один из N», error: 1 - end_human_annotation_agreementpools: [solo]
solo_mode с labeling_modelsпо источнику на модель, первый образует каскадкак вышеpools: [solo]
solo_mode.juryпо источнику на члена жюри плюс источник jury как каскадкак выше
icl_labelingэндпоинт ai_support как источник llmthreshold_legacy с прежним confidence_threshold и selective_risk на 10%calibration_rate = прежний sample_rate проверки
judge_alignmentэндпоинт судьи как источник judge (с рубрикой, если схема одна)no_worse_than_human, epsilon: 0.15, на каждую оцениваемую схемуoverlap: 0.3
judge_calibrationкаждая модель как источник judge с уверенностью k_samplesampling.sample_size → budgets.human_labels
pre_annotation с field или predictions_fileисточник static, первый в каскаде
active_learning.llmисточник llm
ai_budget.cap_usdbudgets.model_usd

Изменения в поведении после перехода

Движок обращается с человеческими метками иначе, чем старые функции, и примечания в переведённой конфигурации указывают, где именно. Ожидайте четырёх изменений:

  • Фиксированные пороги становятся проверенными. Пороги маршрутизации Solo Mode и порог уверенности icl_labeling принимали машинные метки выше фиксированного числа. selective_risk выбирает порог на dev-метках и принимает только то, что проходит тест на отложенных метках, поэтому поначалу ожидайте меньше принятых меток, зато с заявленной границей ошибки на принятых.
  • Проверочные выборки становятся равномерными. icl_labeling сначала проверял наименее уверенные предсказания, что быстро находит ошибки, но даёт смещённую оценку точности. Калибровочные запросы движка образуют случайную выборку с записанными вероятностями включения.
  • Встроенное судейство становится слепым. judge_alignment.inline показывал вердикт судьи, пока люди размечали, поэтому согласие измерялось на заякоренных метках. Калибровочные запросы движка никогда не показывают машинный ответ.
  • Предразметку проверяют, прежде чем ей доверять. Метки источника static принимаются только там, где их сертифицирует контракт, а в остальных случаях люди видят их в запросах на проверку.

Дополнительные материалы

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