Skip to content
Release2 min read

Potato 2.4.0:Webエージェントアノテーション、ライブ評価、HuggingFace連携

Potato 2.4.0では、Webエージェントのトレースレビュー、リアルタイムのライブエージェント評価、LLMチャットサイドバー、HuggingFace Hubへのエクスポート、Webhook、SSO/OAuth、5種類の能動学習戦略が加わりました。

Potato Team

注: この記事に出てくる機能数は、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形式の既存トレースを取り込むことも、その場で新しく記録することもできます。

yaml
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の支援にどう頼るかを調べたい場合にも使えます。

yaml
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: true

HuggingFaceエコシステムとの連携

PotatoはHuggingFaceといくつかの経路でつながるようになりました。自動生成されたDatasetCard付きでHubのデータセットにアノテーションを直接プッシュする、往復なしで datasets.Dataset オブジェクトとして読み戻す、PotatoのインスタンスをHuggingFace Spacesにデプロイする、LangChainコールバック経由でLangChainエージェントを動かしたときにトレースを自動で取り込む、といったことができます。

bash
pip install potato-annotation[huggingface]
python
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から管理します。

yaml
webhooks:
  - url: https://your-system.example.com/potato-events
    secret: your-signing-secret
    events: [annotation.created, item.fully_annotated]

高度な能動学習:5つの戦略 + LLMコールドスタート

能動学習システムには、クエリ戦略が5つ入りました。

  1. 不確実性サンプリング:モデルが最も自信を持てないインスタンスを選ぶ
  2. 多様性ベースの選択:入力空間のカバー範囲を最大化する
  3. BADGE:Batch Active Learning by Diverse Gradient Embeddings
  4. BALD:Bayesian Active Learning by Disagreement
  5. ハイブリッドアンサンブル:複数の戦略を組み合わせて選択を安定させる

ラベルがまだ1件もない状態でインスタンスを選ぶLLMコールドスタートもあります。プールに言語モデルを向けて、難しいアイテムや代表的なアイテムを拾い上げさせ、アノテーションの初期データにします。多様な文脈内学習の事例を選ぶCoverICLも新しく入りました。

パスワード管理とSSO/OAuth

要望の多かった認証機能を2つ入れました。

パスワード管理は、ユーザーごとのソルト付きPBKDF2-SHA256ハッシュを使い、管理者CLIとAPIからのパスワードリセットに対応し、SQLiteまたはPostgreSQLに載るトークンベースのセルフサービス型リセットフローを備えています。

SSO/OAuthは、Authlib経由でGoogle、GitHub、または一般的なOIDCプロバイダによるシングルサインオンを扱います。

bash
pip install potato-annotation[auth]

数字の更新

機能2.32.4
アノテーションタイプ2021
表示タイプ1517+
AIエンドポイント711
サンプルプロジェクト1540+
能動学習の戦略15
Webhookのイベントタイプ05
エージェントのサンプルプロジェクト014

インストール

bash
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のライブデモが便利です。インストールは要りません。ラジオボタン、リッカート尺度、スパンアノテーション、自由記述メモを使ったエージェントトレース評価のタスクが動きます。

ライブデモを試す →

ローカルでサンプルを動かす場合はこちらです。

bash
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リポジトリを参照してください。