Skip to content

레이블링 엔진으로 이전하기

potato label migrate-config로 icl_labeling, judge_calibration, pre_annotation, 솔로 모드 설정을 레이블링 엔진으로 옮기고, 옮긴 뒤 무엇이 달라지는지 확인합니다.

Potato의 기존 기계 레이블링 기능은 2.11에서도 계속 동작하며, labeling_engine 블록을 추가하기 전에는 동작이 바뀌지 않습니다. 이제 키 세 개가 시작할 때 그에 대응하는 레이블링 엔진 기능을 알려 주는 안내 메모를 출력하며, 이 키들은 3.0에서 제거될 예정입니다. 메모는 stderr로 출력되고 NOTE:로 시작하며 경고가 아니므로, potato validate --strict가 이 때문에 실패하지는 않습니다.

표에는 세 키와 각각이 무엇으로 바뀌는지가 나와 있습니다.

기존 키엔진의 대응 기능
icl_labelingllm 소스. 이전 규칙을 위한 threshold_legacy 계약과 그 옆의 selective_risk 계약
judge_calibrationk_sample 신뢰도를 쓰는 judge 소스. 블라인드 표본은 보정 요청이 됨
pre_annotationstatic 소스

솔로 모드, 판정자 정렬, 대화형 AI 어시스턴트(ai_support)는 지원 중단되지 않았습니다. 솔로 모드는 전문가 한 명이 자체 인터페이스에서 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 블록이 있거나 변환할 것이 없으면 명령은 오류와 함께 종료합니다.

변환표

각 기존 블록은 다음과 같이 엔진의 소스, 계약, 사람 설정에 대응합니다.

기존 블록소스계약사람
confidence_routing.tiers가 있는 solo_mode단계마다 소스 하나씩, 단계 순서대로N개 중 하나 선택 스키마마다 selective_risk, error: 1 - end_human_annotation_agreementpools: [solo]
labeling_models가 있는 solo_mode모델마다 소스 하나씩, 첫 번째가 캐스케이드위와 같음pools: [solo]
solo_mode.jury배심원마다 소스 하나씩, 그리고 캐스케이드인 jury 소스위와 같음
icl_labelingllm 소스인 ai_support 엔드포인트이전 confidence_threshold의 threshold_legacy, 그리고 10%의 selective_riskcalibration_rate = 이전 검증 sample_rate
judge_alignmentjudge 소스인 판정자 엔드포인트(스키마가 하나이면 루브릭 포함)판정 대상 스키마마다 no_worse_than_human, epsilon: 0.15overlap: 0.3
judge_calibrationk_sample 신뢰도를 쓰는 judge 소스인 각 모델sampling.sample_size → budgets.human_labels
field 또는 predictions_file이 있는 pre_annotation캐스케이드 맨 앞의 static 소스
active_learning.llmllm 소스
ai_budget.cap_usdbudgets.model_usd

이전 후 동작의 변화

엔진은 사람 레이블을 기존 기능과 다르게 다루며, 변환된 설정의 메모에 어디가 다른지 나와 있습니다. 네 가지 변화를 예상하세요.

  • 고정 임계값이 검정된 임계값이 됩니다. 솔로 모드의 라우팅 임계값과 icl_labeling의 신뢰도 임계값은 고정된 수치 이상인 기계 레이블을 수락했습니다. selective_risk는 dev 레이블로 임계값을 고르고, 따로 떼어 둔 레이블에 대한 검정을 통과한 것만 수락합니다. 따라서 처음에는 수락되는 레이블이 더 적겠지만, 수락된 레이블에는 명시된 오류 상한이 붙습니다.
  • 검증 표본이 균일해집니다. icl_labeling은 신뢰도가 가장 낮은 예측부터 검증했는데, 이 방식은 오류를 빨리 찾지만 편향된 정확도 추정치를 냅니다. 엔진의 보정 요청은 포함 확률을 기록한 무작위 표본입니다.
  • 인라인 판정이 블라인드가 됩니다. judge_alignment.inline은 사람이 레이블을 다는 동안 판정자의 판정을 보여 주었기 때문에, 일치도가 판정에 끌려간 레이블로 측정되었습니다. 엔진의 보정 요청은 기계의 답을 절대 보여 주지 않습니다.
  • 사전 주석은 신뢰하기 전에 검정합니다. static 소스의 레이블은 계약이 인증한 곳에서만 수락되며, 그 밖의 곳에서는 사람이 검증 요청에서 그 레이블을 보게 됩니다.

더 읽어보기

구현에 관한 자세한 내용은 소스 문서를 참고하세요.