Skip to content

다양성 정렬

임베딩 기반 다양성 점수를 사용해 Potato의 어노테이션 인스턴스를 재정렬하여 데이터셋 커버리지를 극대화하고 대규모 비라벨링 코퍼스의 중복을 줄입니다.

다양성 정렬은 sentence-transformer 임베딩을 사용해 유사한 항목을 함께 클러스터링한 다음, 서로 다른 클러스터에서 라운드 로빈 방식으로 항목을 샘플링합니다. 이렇게 하면 어노테이터가 비슷한 항목을 연달아 보는 대신 다양한 콘텐츠를 보게 됩니다.

이점

  • 반복적인 콘텐츠로 인한 어노테이터 피로 감소
  • 다양한 컨텍스트를 통한 어노테이션 품질 향상
  • 전체 주제 공간의 더 빠른 커버리지

빠른 시작

yaml
assignment_strategy: diversity_clustering
 
diversity_ordering:
  enabled: true
  prefill_count: 100

작동 방식

  1. 시작 시점: 처음 N개 항목이 sentence-transformers로 임베딩되어 k-means로 클러스터링됩니다
  2. 할당: 항목이 클러스터에서 라운드 로빈 방식으로 샘플링되어 다양성이 보장됩니다
  3. 어노테이션: 새 항목은 어노테이션될 때 비동기적으로 임베딩됩니다
  4. 재클러스터링: 사용자가 모든 클러스터에서 샘플링하면 시스템이 다시 클러스터링합니다

구성

yaml
diversity_ordering:
  enabled: true
 
  # Sentence-transformer model
  model_name: "all-MiniLM-L6-v2"
 
  # Clustering parameters
  num_clusters: 10
  items_per_cluster: 20
  auto_clusters: true           # Auto-calculate based on data size
 
  # Prefill on startup
  prefill_count: 100
  batch_size: 32
 
  # Re-clustering behavior
  recluster_threshold: 1.0      # Recluster when all clusters sampled
 
  # Order preservation
  preserve_visited: true
 
  # AI integration
  trigger_ai_prefetch: true

구성 레퍼런스

옵션유형기본값설명
enabledbooleanfalse다양성 정렬 활성화
model_namestring"all-MiniLM-L6-v2"Sentence-transformers 모델
num_clustersinteger10클러스터 수(auto_clusters=false일 때)
items_per_clusterinteger20목표 클러스터 크기(auto_clusters=true일 때)
auto_clustersbooleantrue클러스터 수 자동 계산
prefill_countinteger100시작 시 임베딩할 항목 수
batch_sizeinteger32임베딩 계산을 위한 배치 크기
recluster_thresholdfloat1.0재클러스터링 전에 샘플링할 클러스터 비율
preserve_visitedbooleantrue방문한/건너뛴 항목을 제자리에 유지
trigger_ai_prefetchbooleantrue재정렬 후 AI 캐시 트리거

요구 사항

bash
pip install sentence-transformers scikit-learn

이들은 선택적 종속성입니다. 이들이 없으면 기능이 경고와 함께 비활성화됩니다.

성능

  • 시작 시점: 100개 항목에 약 10초, 500개 항목에 약 30초(첫 실행 이후 캐시됨)
  • 메모리: 항목당 약 1.5KB(all-MiniLM-L6-v2), 10,000개 항목에 약 15MB
  • 캐시: 임베딩이 .diversity_cache/에 디스크로 영속화됨

다른 기능과의 상호작용

  • AI 지원: trigger_ai_prefetch: true일 때, 재정렬된 항목에 대해 AI 힌트가 자동으로 사전 패치됩니다
  • 능동 학습: 초기 커버리지를 위해 다양성 클러스터링으로 시작한 다음 능동 학습으로 전환하여 결합할 수 있습니다
  • 순서 보존: preserve_visited: true일 때, 이전에 본 항목은 위치를 유지합니다

전체 예제

yaml
annotation_task_name: "Diversity Ordering Test"
 
assignment_strategy: diversity_clustering
 
diversity_ordering:
  enabled: true
  model_name: "all-MiniLM-L6-v2"
  num_clusters: 5
  auto_clusters: false
  prefill_count: 100
  batch_size: 16
  recluster_threshold: 1.0
  preserve_visited: true
 
annotation_schemes:
  - annotation_type: radio
    name: topic
    description: "What is the main topic of this text?"
    labels:
      - name: Sports
      - name: Technology
      - name: Food
      - name: Travel
      - name: Health

추가 자료

구현 세부 정보는 원본 문서를 참조하세요.