Potato 2.4.0:Webエージェントアノテーション、ライブ評価、HuggingFace連携
Potato 2.4.0では、Webエージェントのトレースレビュー、リアルタイムのライブエージェント評価、LLMチャットサイドバー、HuggingFace Hubへのエクスポート、Webhook、SSO/OAuth、5種類の能動学習戦略が加わりました。
注: この記事に出てくる機能数は、v2.4.0リリース時点のものです。現在のPotatoは50種類以上のアノテーションタイプに対応しています。一覧はアノテーションタイプのドキュメントを参照してください。
Potato 2.4.0を公開しました。2.3でエージェント型アノテーションが入って以来の大きな更新で、要望の多かったエージェント評価まわりの機能に加えて、エンタープライズ向けと外部連携の作業をまとめて入れています。
Webエージェントアノテーション
Webブラウジングエージェントの評価は難しい作業です。エージェントが何を見て、どこをクリックし、どうスクロールしたのか、そして各ステップに意味があったのかを確認する必要があります。Potato 2.4はそのためにWeb Agent Trace Viewerを追加しました。
レビューモードでは、録画済みのスクリーンショットをフィルムストリップ表示でアノテーターに見せます。SVGオーバーレイがクリックターゲット、バウンディングボックス、マウスの軌跡、スクロール位置を示すので、評価者はエージェントが見ていたものを見られます。アノテーションのコントロールはその場に埋め込まれています。
作成モードはインターフェースの向きを逆にします。アノテーターがiframe内で実際のWebサイトを操作し、Potatoがその操作をすべてアノテーション可能なトレースとして記録します。WebArena、Mind2Web、Anthropic Computer Use形式の既存トレースを取り込むことも、その場で新しく記録することもできます。
display:
type: web_agent_trace
mode: review # or "creation"
show_overlays: true
keyboard_shortcuts: trueライブエージェント評価
あとから振り返るのではなく、エージェントが動いている最中に評価したい場面があります。新しいライブエージェント評価システムでは、AIエージェントがタスクを実行する様子をアノテーターがリアルタイムで観察し、実行中にその振る舞いをアノテーションできます。
PotatoはAgent Runner Managerを通じてエージェントを並列に実行し、届いたトレースをwebhookレシーバーで受け取り、アノテーターにリアルタイムの評価インターフェースを表示します。ステップ単位のアノテーター間一致度も自動で追跡します。
LLMチャットサイドバー
判断に迷うアノテーションでは、もうひとつの意見が役に立ちます。新しいLLMチャットサイドバーは、インターフェースを離れずにタスクの途中で相談できるAIアシスタントのパネルを提供します。
サイドバーはマルチターンの会話に対応し、タスクのコンテキストを自動で注入します。OpenAI、Anthropic、Ollamaのエンドポイントで動き、会話はすべて行動データとして記録されるので、アノテーターがAIの支援にどう頼るかを調べたい場合にも使えます。
llm_sidebar:
enabled: true
provider: anthropic
model: claude-3-5-sonnet-20241022
system_prompt: "You are a helpful annotation assistant for this {task_name} task."
collapsible: trueHuggingFaceエコシステムとの連携
PotatoはHuggingFaceといくつかの経路でつながるようになりました。自動生成されたDatasetCard付きでHubのデータセットにアノテーションを直接プッシュする、往復なしで datasets.Dataset オブジェクトとして読み戻す、PotatoのインスタンスをHuggingFace Spacesにデプロイする、LangChainコールバック経由でLangChainエージェントを動かしたときにトレースを自動で取り込む、といったことができます。
pip install potato-annotation[huggingface]from potato import PotatoDataset
ds = PotatoDataset.from_output("annotations/")
ds.push_to_hub("my-org/my-annotation-dataset")Webhookシステム
Potato 2.4には、イベント駆動の連携のためのWebhookシステム一式が入っています。イベントは5種類で、Standard Webhooks仕様に沿ってHMAC-SHA256で署名されます。
| イベント | 発火する条件 |
|---|---|
annotation.created | アノテーターがラベルを送信したとき |
item.fully_annotated | アイテムが必要な重複数に達したとき |
task.completed | タスク内のすべてのアイテムにアノテーションが付いたとき |
user.phase_completed | ユーザーがフェーズを終えたとき(ソロモード) |
quality.attention_check_failed | アノテーターが注意チェックに失敗したとき |
Webhookはノンブロッキングで配信され、リトライは設定可能で、管理者APIから管理します。
webhooks:
- url: https://your-system.example.com/potato-events
secret: your-signing-secret
events: [annotation.created, item.fully_annotated]高度な能動学習:5つの戦略 + LLMコールドスタート
能動学習システムには、クエリ戦略が5つ入りました。
- 不確実性サンプリング:モデルが最も自信を持てないインスタンスを選ぶ
- 多様性ベースの選択:入力空間のカバー範囲を最大化する
- BADGE:Batch Active Learning by Diverse Gradient Embeddings
- BALD:Bayesian Active Learning by Disagreement
- ハイブリッドアンサンブル:複数の戦略を組み合わせて選択を安定させる
ラベルがまだ1件もない状態でインスタンスを選ぶLLMコールドスタートもあります。プールに言語モデルを向けて、難しいアイテムや代表的なアイテムを拾い上げさせ、アノテーションの初期データにします。多様な文脈内学習の事例を選ぶCoverICLも新しく入りました。
パスワード管理とSSO/OAuth
要望の多かった認証機能を2つ入れました。
パスワード管理は、ユーザーごとのソルト付きPBKDF2-SHA256ハッシュを使い、管理者CLIとAPIからのパスワードリセットに対応し、SQLiteまたはPostgreSQLに載るトークンベースのセルフサービス型リセットフローを備えています。
SSO/OAuthは、Authlib経由でGoogle、GitHub、または一般的なOIDCプロバイダによるシングルサインオンを扱います。
pip install potato-annotation[auth]数字の更新
| 機能 | 2.3 | 2.4 |
|---|---|---|
| アノテーションタイプ | 20 | 21 |
| 表示タイプ | 15 | 17+ |
| AIエンドポイント | 7 | 11 |
| サンプルプロジェクト | 15 | 40+ |
| 能動学習の戦略 | 1 | 5 |
| Webhookのイベントタイプ | 0 | 5 |
| エージェントのサンプルプロジェクト | 0 | 14 |
インストール
pip install potato-annotation # core
pip install potato-annotation[ai] # OpenAI, Ollama
pip install potato-annotation[huggingface] # HF Hub + Spaces
pip install potato-annotation[langchain] # LangChain callback
pip install potato-annotation[auth] # SSO/OAuth
pip install potato-annotation[all] # everything試してみる
2.4を一番手早く見るには、HuggingFace Spacesのライブデモが便利です。インストールは要りません。ラジオボタン、リッカート尺度、スパンアノテーション、自由記述メモを使ったエージェントトレース評価のタスクが動きます。
ローカルでサンプルを動かす場合はこちらです。
git clone https://github.com/davidjurgens/potato.git
cd potato
pip install -e .
python potato/flask_server.py start examples/agent-traces/complex-annotation/config.yaml -p 8000変更点の全体はv2.4.0のリリースノートを、それ以外のドキュメントはGitHubリポジトリを参照してください。