描画テレメトリ
ボックス、ポリゴン、マスクがどう作られたか。図形ごとの所要時間、ストロークの動態、修正回数、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: [] # empty means every geometry schema
exclude_schemas: []
idle_ms: 120000 # a gap above this is idle, not active
flush_interval_ms: 10000実行可能な例:examples/advanced/annotation-telemetry/。
判断を変える信号
AI 受け入れ遅延。 多数の項目にわたって 500 ミリ秒未満の受け入れが連続していれば、それは追認です。それを丁寧な同意から切り分けられる数値はほかにありません。
閾値としてではなく分布として読んでください。速い受け入れが一つあれば、それは簡単な対象です。二百項目にわたる中央値が 300 ミリ秒なら別の話であり、これはアノテーション自体からは決してたどり着けない知見です。
この信号の限界
ここで報告されるのはプロセスの信号です。不正を検出するものではなく、アノテーターを分類するものでもありません。フラグは調べるきっかけであって結論ではなく、基準率も重要です。ほとんどの項目が本当に簡単なコーパスでは、速いことはたいてい正しいのです。
テキスト側の対応物がキーストロークログで、自由記述の回答がどう作られたかを報告します。両者を合わせたものが「クラウドワーカーが LLM から貼り付けていないとどうして分かるのか」への誠実な答えであり、その答えはプロジェクトごとに較正されたプロセス信号の集合であって、分類器ではありません。
アノテーターには記録中である旨が表示されます。それが研究計器と監視の違いであり、この開示は既定で有効です。