繪製遙測
一個框、多邊形或掩碼是如何產生的——每個圖形的耗時、筆跡動態、修改次數,以及接受 AI 建議的延遲。這是唯一能把認真複核與走過場式蓋章區分開的訊號。
預標註讓標註者更快,也讓走過場式的"蓋章通過"毫無阻力。 建議彈出,標註者點選接受,最終得到的資料集不過是一份模型與自己達成一致的記錄。標註本身沒有任何東西能把這與認真複核區分開:幾何形狀完全相同,而且所有品質指標看起來都更好,標註者間一致性也在其列。
唯一能顯出差別的地方,是時間。
人無法在 300 毫秒內檢視一條掩碼邊界並做出判斷。偶爾一次也許可以,如果目標很明顯的話。但作為跨大量條目的中位數,那就不是熟練,而是別的東西。
隨著一鍵自動標註成為常態,這正是把認真複核與蓋章通過區分開的訊號。它是 2.8 版本中最被低估的能力。
事件流
一條事件包含時間戳、動作、幾何類型,以及一個整數。
| 動作 | 含義 | 那個整數 |
|---|---|---|
shape_add | 提交了一個圖形 | 頂點數:框為 4,多邊形為 len(points),掩碼為 0 |
shape_edit | 移動或改動了已有圖形 | — |
shape_remove | 刪除了一個圖形 | — |
stroke | 完成了一次畫筆或橡皮擦筆畫 | 以影像畫素計的筆畫長度 |
fill | 應用了漫水填充 | 填充的畫素數 |
zoom | 縮放級別發生變化 | 級別 × 100 |
pan | 完成了一次平移拖拽 | 以螢幕畫素計的距離 |
tool、undo、redo | — | |
ai_suggest | 向標註者呈現了一條建議 | — |
ai_accept / ai_reject | — |
任何情況下都不會記錄座標。 事件流能還原一份標註是如何做出來的,但無法還原標註本身。這是事件記錄的結構性屬性,而非一條政策:根本沒有可以放座標的欄位,並且有測試對此做了斷言。
筆畫長度以影像畫素而非螢幕畫素計,因此無論標註者當時是放大還是縮小,同一筆畫量出的數值都相同。
配置
annotation_telemetry:
enabled: true
fidelity: events # off | summary | events
store_events: true
include_schemas: [] # 留空表示所有幾何類模式
exclude_schemas: []
idle_ms: 120000 # 超過此長度的間隔算作空閒,而非活動
flush_interval_ms: 10000可執行示例:examples/advanced/annotation-telemetry/。
真正會改變決策的訊號
AI 接受延遲。 在大量條目上連續出現低於 500 毫秒的接受,就是蓋章通過,而沒有任何其他數字能把它與認真的認同區分開。
要把它當作分佈來讀,而不是當作閾值。一次快速接受說明目標簡單;兩百個條目上 300 毫秒的中位數則是另一回事,而且這是你無論如何也無法從標註本身得出的結論。
這一訊號的邊界
這裡報告的是過程訊號。它不檢測欺詐,也不給標註者下定論。一次標記是"值得去看看"的提示,而非結論,並且基準率很重要:在一個多數條目確實簡單的語料中,快往往就是對的。
其在文本側的對應物是擊鍵記錄,它報告一段自由文本答案是如何寫出來的。兩者合起來,才是對"你怎麼知道你的眾包標註者不是從大模型裡貼上過來的"這一問題的誠實回答——而誠實的回答是一組帶有逐項目校準的過程訊號,不是一個分類器。
標註者會看到錄製提示。這正是研究工具與監控之間的分界,並且該提示預設開啟。