사전 레이블과 재학습으로 하는 루프 안의 모델 레이블링
학습된 모델의 답을 사전 레이블로 보여 주고, 신뢰도가 가장 낮은 사전 레이블부터 검토하고, 어노테이터가 답을 고칠 때마다 모델을 재학습시킵니다.
v2.14.0의 새 기능
이 튜토리얼은 감성 연구 하나를 루프 안의 모델 사이클로 끝까지 돌립니다. 모델은 처음 모인 레이블로 학습하고, 모델의 예측은 어노테이터에게 사전 레이블로 나타나며, 검토자는 신뢰도가 가장 낮은 사전 레이블을 고치고, 그 수정은 다음 실행에 쓰입니다. 이 튜토리얼은 첫 모델 학습하기처럼 첫 모델을 학습시켜 본 뒤 어노테이터가 모델과 함께 작업하게 하려는 연구 책임자를 위한 것입니다. 한 단계를 뺀 모든 단계가 sklearn-text로 노트북에서 실행됩니다. 획득 단계는 작은 트랜스포머를 학습시키며 CPU에서 몇 분이 걸립니다.
감성 프로젝트
프로젝트는 Potato의 모델 학습 예제이며, 합성 상품 리뷰 160개와 sentiment라는 radio 스키마 하나로 이루어져 있습니다. 사전 레이블은 사람이 항목에 레이블을 달기 전에 모델이 그 항목에 제안한 레이블 하나입니다. 되쓰기는 학습 실행의 예측을 어노테이션 페이지의 사전 레이블로 바꾸는 단계입니다. 튜토리얼이 끝나면 프로젝트는 처음 120개 레이블로 분류기를 학습시키고, 나머지 리뷰에 사전 레이블을 게시하고, 신뢰도가 가장 낮은 리뷰를 먼저 내보내고, 새 레이블이 들어올 때마다 재학습하고, 홀드아웃 분할을 데이터셋 버전으로 보관합니다.
사전 레이블은 어노테이션을 빠르게 하지만 어노테이터를 모델의 답 쪽으로 끌어당기기도 합니다. 내 레이블로 학습한 모델로 하는 모델 지원 레이블링은 이 거래가 가치 있는 때를 다루고, 사전 레이블이 달린 데이터에서 검토와 무심코 승인을 구분하는 방법은 사전 레이블을 읽지 않고 받아들이는 어노테이터를 다룹니다. 아래 설정은 처음부터 어노테이터 일부를 모든 사전 레이블에서 홀드아웃합니다. 홀드아웃된 답으로 연구는 그 끌어당김을 측정할 수 있습니다.
프로젝트 설정
Potato를 설치합니다. sklearn-text에는 기본 패키지 외에 필요한 것이 없습니다.
pip install --upgrade potato-annotationPotato 저장소의 examples/ai-assisted/model-training/을 새 폴더로 복사합니다. 폴더에는 리뷰 160개가 든 data/reviews.json과 시뮬레이터가 보고 답하는 레이블인 data/gold.json이 있습니다. 예제의 config.yaml을 이 설정으로 바꿉니다.
annotation_task_name: "Review Sentiment (model in the loop)"
data_files:
- "data/reviews.json"
item_properties:
id_key: "id"
text_key: "text"
task_dir: "."
output_annotation_dir: "annotation_output"
require_password: false
admin_api_key: "demo-admin-key"
num_annotators_per_item: 1
assignment_strategy: llm_confidence
annotation_schemes:
- annotation_type: "radio"
name: "sentiment"
description: "Is this review positive or negative?"
labels:
- "positive"
- "negative"
sequential_key_binding: true
ai_support:
holdout:
fraction: 0.2
salt: "review-sentiment"
datasets:
enabled: true
model_training:
enabled: true
writeback:
schemas: ["sentiment"]
include_unlabeled: true
min_confidence: 0.6예제 설정에 추가한 블록은 각각 한 가지 일을 합니다.
- **
assignment_strategy: llm_confidence**는 모든 항목을 사전 레이블의 신뢰도가 낮은 것부터 내보냅니다. 예측이 없는 항목은 대기열 순서대로 마지막에 옵니다. - **
ai_support.holdout**은 어노테이터-항목 쌍의 20%에서 사전 레이블을 포함한 모든 형태의 AI 지원을 막습니다. 연구 도중에fraction이나salt를 바꾸면 그룹이 다시 섞이므로, 홀드아웃은 어노테이션이 시작되기 전에 설정하십시오. - **
datasets.enabled**는 마지막 단계에서 실행의 분할을 데이터셋 버전으로 저장할 수 있게 합니다. - **
writeback.schemas**는 예측을 어노테이터에게 보여 줄 스키마를 지정합니다. 이 목록은 기본적으로 비어 있으며, 목록에 스키마를 지정하기 전에는 학습을 켜도 어노테이션 페이지가 달라지지 않습니다. - **
include_unlabeled: true**는 각 실행이 아직 아무도 레이블을 달지 않은 리뷰도 예측하게 합니다. 이 설정이 없으면 실행은 홀드아웃된 val 항목과 test 항목만 예측하는데, 그 항목에는 이미 사람의 레이블이 있습니다. - **
min_confidence: 0.6**은 신뢰도가 0.6 미만인 예측을 어노테이터에게 보이지 않게 합니다. Potato는 그 예측을 실행과 함께 그래도 저장합니다.
writeback.field는 기본값인 predictions를 유지하며, 이는 사전 레이블이 쓰이는 항목 필드입니다. 기본값에서는 pre_annotation 블록이 필요 없습니다. 서버를 시작하기 전에 설정을 확인하십시오.
potato validate config.yaml
potato start config.yaml -p 8000시드 세트에 레이블 달기
내 레이블로 학습하는 모델에는 먼저 레이블이 필요합니다. sklearn-text는 학습 분할에 항목이 10개 미만이면 학습을 거부합니다. http://localhost:8000에서 리뷰 몇 개에 레이블을 달거나, 시뮬레이션 어노테이터 3명이 정답 파일을 보고 각자 리뷰 40개에 레이블을 달게 하십시오.
python -m potato.simulator --server http://localhost:8000 --users 3 \
--strategy gold_standard --competence good=1.0 --max-annotations 40 \
--gold-file data/gold.json --sequential --fast-mode --no-export--competence good=1.0은 모든 시뮬레이션 어노테이터에게 리뷰의 80–90%에 맞게 답하는 good 프로필을 줍니다. num_annotators_per_item: 1에서는 어노테이터 3명이 서로 다른 리뷰 120개를 채우고 모델용으로 40개를 레이블 없이 남깁니다.
학습시키고 되쓰기 보고서 읽기
관리자 키로 http://localhost:8000/admin/training을 열고, sklearn-text와 sentiment 스키마를 고른 뒤 Train now를 클릭합니다. 같은 실행을 명령줄에서도 시작할 수 있습니다.
curl -X POST -H "X-API-Key: demo-admin-key" -H "Content-Type: application/json" \
http://localhost:8000/admin/training/api/runs \
-d '{"trainer": "sklearn-text", "schemas": ["sentiment"]}'실행은 몇 초가 걸립니다. Potato는 레이블이 달린 리뷰를 train, val, test로(기본값은 70%, 15%, 15%) 나누고, train으로 분류기를 맞추고, val과 test로 분류기에 점수를 매깁니다. 그다음 상태 경로가 점수와 되쓰기 보고서를 보고합니다.
curl -H "X-API-Key: demo-admin-key" http://localhost:8000/admin/training/api/status이 튜토리얼의 한 실행은 아래를 반환했으며, 여기서 중요한 필드만 남겼습니다.
{
"metrics": {
"heldout_metric": "val macro_f1",
"heldout_score": 0.7333,
"n_train": 76.0,
"val_n": 20.0,
"test_n": 24.0,
"test_macro_f1": 0.8222
},
"writeback": {
"n_read": 84,
"n_written": 78,
"n_skipped_low_confidence": 6,
"n_skipped_train_split": 0,
"n_skipped_rejected": 0,
"n_skipped_schema_not_enabled": 0,
"summary": "Published 78 prediction(s) as prelabels."
}
}실행은 val 리뷰와 test 리뷰 44개에 아무도 레이블을 달지 않은 40개를 더해 리뷰 84개를 예측했습니다. 예측 6개는 0.6 하한에 못 미쳤고 나머지 78개가 사전 레이블이 되었습니다. 시뮬레이션 어노테이터는 무작위로 실수하고 서로 다른 리뷰에 레이블을 달기 때문에 점수와 개수는 실행마다 다를 것입니다. 각 제외 카운터는 되쓰기의 네 가지 검사 중 하나를 가리키며, 네 검사는 설정에 순서대로 나열되어 있습니다.
되쓰기는 사람의 레이블을 바꾸지 않습니다. 예측은 항목 데이터에 들어가고, 어노테이션은 각 어노테이터 자신의 상태에 남습니다. 새 사용자 이름으로 로그인하면 결과를 볼 수 있습니다. 다음 리뷰는 모델의 답이 선택된 채 도착합니다.
새 어노테이터는 모델의 답이 선택된 것을 보고 그 답을 확인하거나 바꿉니다
사전 레이블은 어노테이터가 사전 레이블을 보기만 하는 동안에는 저장되지 않습니다. 사전 레이블은 어노테이터가 사전 레이블을 고치거나 다음 리뷰로 넘어갈 때 어노테이터의 답이 됩니다. 따라서 답하지 않은 리뷰는 완료로 계산되지 않으며, 모델의 답이 사람의 레이블로 학습에 되돌아가지도 않습니다.
어노테이터에게 사전 레이블을 보여 주기 전에 홀드아웃 점수를 읽으십시오. 리뷰 20개에서 val 점수가 macro-F1 0.73이면 틀린 사전 레이블이 들어올 여지가 많습니다. 업스트림 되쓰기 레퍼런스에는 나머지 제외 카운터와 각 어노테이션 유형이 사전 레이블을 보여 주는 방식이 나와 있습니다.
신뢰도가 가장 낮은 사전 레이블 검토하기
llm_confidence에서 다음 어노테이터는 게시된 사전 레이블의 신뢰도가 낮은 순서로 정렬된 레이블 없는 리뷰 40개를 받습니다. 두 번째 전략은 레이블링이 아니라 품질 관리를 위해 사전 레이블을 내보냅니다. assignment_strategy: model_review는 사전 레이블이 있는 항목만 신뢰도가 낮은 것부터 내보내며 예측이 없는 항목은 뺍니다. 모델 출력을 검토하는 단계에서는 model_review로 바꾸고, 모든 항목에 아직 레이블이 필요한 동안에는 llm_confidence를 유지하십시오. 업스트림 모델 검토 레퍼런스가 두 대기열을 설명합니다.
모델 검토 보고서는 대기열과 모델이 빠뜨린 것을 보여 줍니다.
curl -H "X-API-Key: demo-admin-key" http://localhost:8000/admin/model-review위 실행의 보고서이며, 목록은 줄였습니다.
{
"n_items": 160,
"n_prelabelled": 78,
"queue": ["review_062", "review_024", "review_044", "review_122", "..."],
"worst_first": ["review_062", "review_024", "review_044", "..."],
"n_empty": 82,
"empty_prediction_ids": ["review_006", "review_007", "review_008", "..."],
"provenance": {
"review_062": {
"sentiment": {
"run_id": "20261104T043431-de5686",
"trainer": "sklearn-text",
"heldout_metric": "val macro_f1",
"heldout_score": 0.7333
}
}
}
}queue에서 항목의 순위는 스키마 전체에 걸친 그 항목의 가장 낮은 예측 신뢰도입니다. worst_first는 대기열에서 신뢰도가 가장 낮은 20%이며 항목이 한 개보다 적을 수는 없습니다. empty_prediction_ids는 사전 레이블이 없는 항목을 나열합니다. 이 프로젝트에서 비어 있는 항목 82개는 학습 리뷰 76개와 하한 미만의 예측 6개입니다. 학습 리뷰에는 사전 레이블이 붙지 않습니다.
provenance는 각 사전 레이블이 어디서 왔는지 기록합니다. 사전 레이블을 학습 실행이 쓴 대기열의 모든 항목에 대해, 항목은 실행, 트레이너, 실행의 홀드아웃 점수를 알려 줍니다. 데이터 파일과 함께 들어온 사전 레이블에는 항목이 없습니다. 사전 레이블이 틀려 보이면 실행 ID가 /admin/training/runs/<run_id>의 실행 페이지로 이어지며, 그 페이지는 파라미터와 각 항목의 분할을 보여 줍니다.
판정 기록하기
판정은 검토자의 어노테이션과 별개로 사전 레이블 하나에 대한 검토자의 판단을 기록합니다. "모델이 맞았다"와 "사람이 이 레이블을 독립적으로 골랐다"는 서로 다른 사실이며, 둘을 분리해 두어야 모델의 정밀도를 측정할 수 있습니다. Potato는 판정을 한 경로로 받으며, 항목을 배정받은 어노테이터나 API 키를 가진 관리자가 보낼 수 있습니다.
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: demo-admin-key" \
-d '{"instance_id": "review_062", "verdict": "correct", "schema_name": "sentiment"}' \
http://localhost:8000/api/model-review/verdictaccept는 모델이 맞았다는 뜻이고, correct는 사람이 답을 바꿨다는 뜻이며, reject는 모델이 틀렸다는 뜻입니다. reject는 사전 레이블을 항목에서 즉시 빼며, 이후 실행은 그 항목과 스키마에 예측을 다시 게시하지 않습니다. reject는 모델이 놓친 레이블이 아니라 거부된 사전 레이블로서 모델의 정밀도에 여전히 불리하게 집계되며, 같은 판정을 다시 보내도 어떤 집계도 바뀌지 않습니다. correct 판정은 아래의 수정 섹션이 설명하듯 항목을 이후 모든 실행의 train 분할로 옮깁니다. 같은 항목에 판정을 한 번 더 기록하면 첫 판정을 대체하며, 알 수 없는 판정은 HTTP 400으로 거부됩니다.
획득 점수로 대기열 정렬하기
신뢰도 순서는 모델의 최상위 답이 가장 약한 항목을 먼저 내보냅니다. 능동 학습의 획득 함수는 각 항목에 레이블을 다는 것이 다음 모델에 얼마나 도움이 될지를 기준으로 레이블 없는 항목을 정렬합니다. hf-text-classification과 hf-image-classification은 모든 예측에 그런 점수를 쓰는 acquisition 파라미터를 받으며, 그러면 llm_confidence는 점수가 가장 높은 것부터 내보냅니다. 이 트레이너에는 텍스트 학습 엑스트라가 필요합니다.
pip install "potato-annotation[train-text]"Training 페이지의 Parameters 필드나 API로 이 파라미터를 지정해 실행을 시작합니다.
curl -X POST -H "X-API-Key: demo-admin-key" -H "Content-Type: application/json" \
http://localhost:8000/admin/training/api/runs \
-d '{"trainer": "hf-text-classification", "schemas": ["sentiment"],
"params": {"acquisition": "margin"}}'이 파라미터는 다섯 가지 값을 받습니다.
acquisition | 각 예측에 쓰이는 점수 |
|---|---|
least_confident | 기본값. 점수를 쓰지 않으며 항목은 신뢰도 순서를 유지합니다. |
margin | 1에서 상위 두 확률의 차이를 뺀 값. |
entropy | 예측 분포의 엔트로피를 0–1로 환산한 값. |
bald | 드롭아웃을 켠 순전파 mc_samples(기본값 10)회에서 얻은, 레이블과 모델 가중치 사이의 상호 정보량. 이 방법은 Houlsby et al. (2011)에서 왔습니다. 점수는 모델에 데이터가 부족한 곳에서 높고 데이터와 상관없이 항목이 모호한 곳에서 낮습니다. |
coreset | 모델의 임베딩에서 각 항목에서 가장 가까운 학습 항목이나 이미 고른 항목까지의 거리. 이 방법은 Sener and Savarese (2018)에서 왔습니다. 점수는 대기열을 데이터 전체에 퍼뜨리므로, 어려운 항목 하나의 거의 같은 복사본 열 개가 처음 열 자리를 차지하지 않습니다. |
margin 실행의 예측은 신뢰도 옆에 점수를 함께 담습니다.
{"label": "positive", "confidence": 0.5207,
"probabilities": {"negative": 0.4793, "positive": 0.5207},
"acquisition": 0.9586}llm_confidence에서는 획득 점수가 있는 항목이 먼저 오고, 그다음 신뢰도만 있는 항목, 그다음 예측에 신뢰도가 없는 항목, 그다음 예측이 없는 항목이 옵니다. acquisition은 단일 레이블 스키마(radio, select, likert)에서 동작합니다. 정렬은 게시된 사전 레이블을 읽으므로 스키마가 writeback.schemas에 있어야 하고, 레이블 없는 항목이 점수를 받으려면 include_unlabeled: true도 설정되어 있어야 합니다. model_review는 점수를 무시하고 신뢰도 순서를 유지하는데, 검토 단계는 모델의 틀린 답을 찾기 때문입니다. 다음에 무엇을 물을지 고르기에 대한 업스트림 섹션에 자세한 내용이 있습니다.
새 실행의 사전 레이블을 유지하기 전에 새 실행의 홀드아웃 점수를 sklearn-text 실행과 비교하십시오. Potato는 항목과 스키마마다 예측을 하나만 유지하며, 새 실행의 예측이 이전 실행의 예측을 대체합니다. 새 실행의 예측이 저장되었지만 min_confidence 때문에 보이지 않는 경우처럼, 이전 실행의 사전 레이블도 항목에서 빠지며, 이는 설정이 설명합니다. 이 튜토리얼을 CPU에서 한 실행에서는 기본 모델을 3 에폭(params의 epochs: 3) 학습시켰을 때 학습 리뷰 84개에서 test macro-F1이 0.52로, 같은 레이블에서 sklearn-text 실행보다 낮았고, 실행은 사전 레이블 37개를 게시했습니다. 실행의 사전 레이블을 철회하려면 실행의 예측을 삭제합니다.
curl -X DELETE -H "X-API-Key: demo-admin-key" \
http://localhost:8000/admin/training/api/runs/<run_id>/predictions철회하면 실행에 저장된 예측이 지워지고 실행의 사전 레이블이 항목에서 빠집니다. 이전 실행의 사전 레이블은 되돌아오지 않으므로, 다시 게시하려면 다시 학습시키십시오.
자동으로 재학습하기
auto_retrain은 어노테이션이 들어오는 대로 스스로 실행을 시작합니다. 실행의 홀드아웃 점수가 사전 레이블을 보여 줄 만해지면 model_training에 이 블록을 추가하십시오.
model_training:
enabled: true
writeback:
schemas: ["sentiment"]
include_unlabeled: true
min_confidence: 0.6
auto_retrain:
enabled: true
trainer: sklearn-text
schemas: ["sentiment"]
update_frequency: 25
min_interval_s: 600Potato는 어노테이션을 저장할 때마다 확인합니다. 마지막 자동 실행 이후 어노테이션이 25개 들어오고 마지막 실행이 끝난 뒤 600초가 지나면 실행이 시작됩니다. 두 값은 모두 기본값이며 trainer와 schemas는 필수입니다. params는 Training 페이지의 Parameters 필드와 마찬가지로 트레이너 파라미터를 전달합니다.
auto_retrain은 첫 어노테이션부터가 아니라 첫 수동 실행 뒤에 켜십시오. 아직 실행이 없는 프로젝트는 어노테이션이 update_frequency개가 되자마자 학습합니다. update_frequency: 20을 처음부터 설정하자 이 프로젝트의 첫 자동 실행은 리뷰 12개로 학습했고, 리뷰 3개에서 val macro-F1 1.0을 기록했으며, 사전 레이블 72개를 게시했습니다. 리뷰 3개에서의 홀드아웃 점수는 다음 72개에 대해 거의 아무것도 알려 주지 않습니다.
확인 결과 실행을 시작하지 않기로 하면 /admin/training/api/status의 skip_reason이 "waiting for 3 more annotation(s)"나 "waiting 299 more second(s) since the last run" 같은 이유를 알려 줍니다. 자동 실행은 실행 대기열에 들어가지 않습니다. 대기열이 빈 뒤에 저장되는 다음 어노테이션이 새 확인을 촉발합니다. 카운터는 메모리에 있으며, 재시작 뒤에는 이전에 실행한 적이 있는 프로젝트가 재시작 시점부터 새 어노테이션을 셉니다. 라이선스 확인이 필요한 트레이너(ultralytics-detect, ultralytics-segment, layoutlmv3)는 블록에 accept_licence: true도 필요하며, 없으면 모든 자동 실행이 건너뛰어집니다. 두 블록이 모두 있는 전체 설정은 potato validate config.yaml --strict를 통과합니다.
후속 학습에 들어가는 수정된 항목과 고정된 항목
두 종류의 항목은 안정된 분할에서의 위치와 관계없이 이후 모든 실행의 train 분할에 들어갑니다. 첫 번째 종류는 correct 판정을 받은 항목입니다. 수정은 모델이 가장 못한 항목에서 나오므로, val이나 test에 수정된 항목이 있으면 모델 자신의 실수 표본으로 모델에 점수를 매기게 됩니다. accept와 reject 판정은 항목을 옮기지 않습니다. 두 번째 종류는 고정된 항목이며, 관리자가 직접 학습으로 보냅니다.
curl -X POST -H "X-API-Key: demo-admin-key" -H "Content-Type: application/json" \
http://localhost:8000/admin/training/api/pinned \
-d '{"instance_ids": ["review_007", "review_008"]}'고정된 항목은 누군가 레이블을 단 뒤에 학습되며, 그때까지 각 실행은 그 항목을 대기 중으로 셉니다. curation: {enabled: true}이면 카탈로그 페이지에서 슬라이스 옆의 Train on these 버튼이 내장 슬라이스 model-found-nothing 같은 슬라이스에 일치하는 모든 항목을 고정합니다. DELETE /admin/training/api/pinned는 고정을 해제합니다.
홀드아웃 항목을 train으로 옮긴 실행은 그 개수와 함께 경고를 로그에 남깁니다. correct 판정을 하나 내린 뒤 이 튜토리얼의 다음 실행은 다음을 기록했습니다.
1 held-out item(s) moved to train (corrected: 1). Held-out scores are computed without them, so they are not directly comparable with a run that had them.개수는 실행 번들의 manifest.json에서 stats.forced_train 아래에 있습니다. 두 실행이 서로 다른 항목으로 점수를 받았으므로, 실행 사이의 홀드아웃 점수는 이 경고를 염두에 두고 비교하십시오.
실행의 test 분할을 데이터셋으로 저장하기
홀드아웃 점수는 분할이 바뀌면 달라지며, 고정된 항목 집합이 있어야 두 모델을 비교할 수 있습니다. 실행 페이지의 Keep this split as a dataset 섹션은 실행의 val, test, train 항목을 그 항목의 합의된 사람 레이블과 함께 데이터셋의 새 버전으로 저장합니다. 분할을 고르고 데이터셋 이름을 입력한 뒤 Save as dataset version을 클릭합니다. 버튼 뒤의 경로는 같은 요청을 명령줄에서도 받습니다.
curl -X POST -H "X-API-Key: demo-admin-key" -H "Content-Type: application/json" \
http://localhost:8000/admin/training/api/runs/<run_id>/pin-split \
-d '{"dataset": "sentiment-test", "split": "test"}'응답은 새 버전과 항목 수를 알려 주며, 여기서는 test 리뷰 23개가 버전 v0001로 저장되었습니다. 버전은 저장한 뒤 바뀌지 않으므로, 이후 모델과 데이터셋 실험 실행기의 LLM 프롬프트를 정확히 그 항목들로 채점할 수 있습니다. 이미 버전이 있는 데이터셋에 저장하면 그 분할만 담은 새 버전이 시작되므로, 이후 실행의 val 항목이 이후 실행이 학습한 항목과 섞일 수 없습니다. 각 예시의 입력에는 사전 레이블 필드가 빠져 있으므로 평가에서 모델의 답을 읽을 수 없습니다. datasets.enabled가 설정되어 있지 않으면 이 경로는 HTTP 400을 반환합니다.
어노테이터를 사전 레이블에서 홀드아웃하기
설정의 ai_support.holdout 블록은 첫 어노테이션부터 어노테이터-항목 쌍의 20%에서 지원을 제거합니다. 홀드아웃된 쌍에서는 어노테이션 페이지에 사전 레이블이 나타나지 않고, 브라우저로 보내는 항목 데이터에서 writeback.field(여기서는 predictions)와 pre_annotation.field가 모두 빠집니다. 추첨은 어노테이터와 항목마다 솔트가 있는 해시이므로, 쌍은 방문할 때마다, 그리고 재시작 뒤에도 같은 그룹에 남습니다. 리뷰마다 어노테이터가 여럿이면 대부분의 리뷰에 지원을 받은 어노테이터와 홀드아웃된 어노테이터가 섞입니다. 관리자 대시보드의 AI influence 탭은 두 그룹을 답이 모델과 일치하는 빈도, 답이 정답과 일치하는 빈도, 각 그룹 안의 일치도로 비교합니다. num_annotators_per_item: 1에서는 각 리뷰가 한 그룹에만 속하므로, 효과를 측정하는 연구에서는 값을 1보다 크게 올리십시오. 내 레이블로 학습한 모델로 하는 모델 지원 레이블링이 비교를 읽는 방법을 설명합니다.
더 읽어보기
- 모델 학습은 학습 루프와 Training 페이지를 설명합니다.
- 모델 학습 설정에는 모든
writeback과auto_retrain키가 기본값과 함께 나열되어 있습니다. - 첫 모델 학습하기는 이 프로젝트와 첫
sklearn-text실행을 설정합니다. - 이미지 어노테이션으로 검출 및 분할 모델 학습하기는 이미지에서 박스 검출기로 같은 루프를 실행합니다.
- 내 레이블로 학습한 모델로 하는 모델 지원 레이블링은 사전 레이블이 시간을 아끼는 때와 답을 고착시키는 때를 다룹니다.
- 사전 레이블이 달린 데이터에서 검토와 무심코 승인을 구분하는 방법은 사전 레이블을 읽지 않고 받아들이는 어노테이터를 찾습니다.
- 능동 학습은 모델의 답을 보여 주지 않고 다음 항목을 고르는 방법을 다룹니다.
- 업스트림 모델 학습 레퍼런스는 모든 되쓰기 검사와 경로를 알려 줍니다.
참고문헌
- Houlsby, N., Huszár, F., Ghahramani, Z., and Lengyel, M. (2011). Bayesian Active Learning for Classification and Preference Learning. arXiv:1112.5745. https://arxiv.org/abs/1112.5745
- Sener, O., and Savarese, S. (2018). Active Learning for Convolutional Neural Networks: A Core-Set Approach. ICLR 2018. https://arxiv.org/abs/1708.00489