어노테이션을 위한 능동 학습
능동 학습이 무엇인지, 언제 도움이 되는지, 그리고 같은 모델 품질을 더 적은 항목으로 달성하기 위해 Potato가 지원하는 질의 전략(불확실성, 다양성, BADGE, BALD)을 설명합니다.
능동 학습은 어떤 항목을 다음에 어노테이션할지 선택하여, 모델이 훨씬 적은 라벨로 동일한 정확도에 도달하도록 합니다. 무작위로 라벨링하는 대신, 모델이 가장 유익하다고 판단하는 항목에 라벨을 답니다. 라벨링이 병목일 때 이는 가장 효과가 큰 기법 중 하나입니다.
배경 지식은 능동 학습을 참고하십시오. 기능 레퍼런스는 능동 학습을 참고하십시오.
순환 과정
- 작은 시드 집합에 라벨을 답니다.
- 가진 데이터로 빠른 모델을 학습합니다.
- 라벨이 없는 풀에 점수를 매기고 가장 유익한 항목을 고릅니다.
- 그 항목을 어노테이션하여 추가하고 다시 학습합니다. 이를 반복합니다.
그 결과는 데이터 효율성입니다. 모델이 가장 많이 배우는 곳에 어노테이션 예산을 씁니다.
Potato가 지원하는 질의 전략
- 불확실성 샘플링: 모델이 가장 확신하지 못하는 항목(결정 경계에 가까운 항목)을 고릅니다. 가장 단순하면서 흔히 효과적인 기본값입니다.
- 다양성 샘플링: 서로 다른 항목을 골라 거의 중복인 항목에 예산을 낭비하지 않습니다.
- BADGE: 그래디언트 임베딩을 사용해 불확실성과 다양성을 결합합니다.
- BALD: 모델의 불확실성을 가장 많이 줄일 것으로 기대되는 항목을 선택하는 베이즈 전략입니다.
- 하이브리드: 여러 전략을 섞습니다.
yaml
active_learning:
enabled: true
schema_names: [sentiment]
query_strategy: uncertainty # or diversity, badge, bald, hybrid
min_instances_for_training: 20능동 학습이 도움이 될 때와 그렇지 않을 때
라벨이 비싸고, 풀이 크며, 작은 시드로 쓸 만한 모델을 학습할 수 있을 때 도움이 됩니다. 다음과 같은 경우에는 도움이 덜 됩니다.
- 작업이 너무 쉬워서 무작위 라벨링만으로도 금방 포화될 때.
- 편향 없는 별도의 테스트 집합이 필요할 때. 능동 학습으로 선택된 데이터는 의도적으로 치우쳐 있으므로, 평가 데이터는 무작위 샘플링으로 유지하십시오.
- 라벨링 비용이 엔지니어링 노력에 비해 저렴할 때.