Переход на движок разметки
Перенесите конфигурации 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:
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_agreement | pools: [solo] |
solo_mode с labeling_models | по источнику на модель, первый образует каскад | как выше | pools: [solo] |
solo_mode.jury | по источнику на члена жюри плюс источник jury как каскад | как выше | |
icl_labeling | эндпоинт ai_support как источник llm | threshold_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_sample | sampling.sample_size → budgets.human_labels | |
pre_annotation с field или predictions_file | источник static, первый в каскаде | ||
active_learning.llm | источник llm | ||
ai_budget.cap_usd | budgets.model_usd |
Изменения в поведении после перехода
Движок обращается с человеческими метками иначе, чем старые функции, и примечания в переведённой конфигурации указывают, где именно. Ожидайте четырёх изменений:
- Фиксированные пороги становятся проверенными. Пороги маршрутизации Solo Mode и порог уверенности
icl_labelingпринимали машинные метки выше фиксированного числа.selective_riskвыбирает порог на dev-метках и принимает только то, что проходит тест на отложенных метках, поэтому поначалу ожидайте меньше принятых меток, зато с заявленной границей ошибки на принятых. - Проверочные выборки становятся равномерными.
icl_labelingсначала проверял наименее уверенные предсказания, что быстро находит ошибки, но даёт смещённую оценку точности. Калибровочные запросы движка образуют случайную выборку с записанными вероятностями включения. - Встроенное судейство становится слепым.
judge_alignment.inlineпоказывал вердикт судьи, пока люди размечали, поэтому согласие измерялось на заякоренных метках. Калибровочные запросы движка никогда не показывают машинный ответ. - Предразметку проверяют, прежде чем ей доверять. Метки источника
staticпринимаются только там, где их сертифицирует контракт, а в остальных случаях люди видят их в запросах на проверку.
Дополнительные материалы
Подробности реализации смотрите в исходной документации.