多樣性排序
基於嵌入的項目多樣化,最大化標註多樣性。
多樣性排序使用 sentence-transformer 嵌入將相似項目聚類,然後從不同聚類中輪詢取樣項目。這確保標註者看到多樣化的內容,而不是連續的相似項目。
優勢
- 減少標註者疲勞,避免重複內容
- 通過多樣化上下文提高標註品質
- 更快覆蓋完整的主題空間
快速開始
yaml
assignment_strategy: diversity_clustering
diversity_ordering:
enabled: true
prefill_count: 100工作原理
- 啟動時:前 N 個項目使用 sentence-transformers 嵌入並用 k-means 聚類
- 分配時:從聚類中輪詢取樣項目,確保多樣性
- 標註時:新項目在標註時非同步嵌入
- 重新聚類:當用戶從所有聚類中取樣後,系統重新聚類
配置
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配置參考
| 選項 | 類型 | 預設值 | 描述 |
|---|---|---|---|
enabled | boolean | false | 啟用多樣性排序 |
model_name | string | "all-MiniLM-L6-v2" | sentence-transformers 模型 |
num_clusters | integer | 10 | 聚類數量(auto_clusters=false 時) |
items_per_cluster | integer | 20 | 目標聚類大小(auto_clusters=true 時) |
auto_clusters | boolean | true | 自動計算聚類數量 |
prefill_count | integer | 100 | 啟動時嵌入的項目數 |
batch_size | integer | 32 | 嵌入計算的批次大小 |
recluster_threshold | float | 1.0 | 重新聚類前取樣的聚類比例 |
preserve_visited | boolean | true | 保持已訪問/跳過項目的位置 |
trigger_ai_prefetch | boolean | true | 重排序後觸發 AI 快取 |
依賴要求
bash
pip install sentence-transformers scikit-learn這些是可選依賴。沒有它們,該功能將被停用併發出警告。
效能
- 啟動時間:100 個項目約 10 秒,500 個項目約 30 秒(首次執行;之後有快取)
- 記憶體:每個項目約 1.5 KB(all-MiniLM-L6-v2),10,000 個項目約 15 MB
- 快取:嵌入持久化到磁碟,儲存在
.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延伸閱讀
有關實現細節,請參閱原始碼文件。