Agent ArenaClickHouse Workshops

01 ベースモデルを選ぶ

モジュール 01 の講師ノート — タイミング、トークトラック、よくある失敗、リセット手順。

受講者レッスン 01 ベースモデルを選ぶ のファシリテーター向け手引きです。

タイミング

推奨の部分集合なら 20 分ほど。フルグリッドをライブで実行するなら 45〜60 分。

  • 8 min — Langfuse の evaluator セットアップ(LLM Connection、correctness コード evaluator、 agent-arena-llm-judge を出力する LLM-as-a-judge evaluator 定義 llm_judge)。 README へのリンクを渡すだけでなく、自分の プロジェクターでライブに実演してください。セッション中で最も細かい手順です。
  • 8 min — 2 モデル・1 プロンプトの部分集合を実行する(待ち時間に話す。「なぜ正答あたりのコストか」の 枠組みを語るのに良い場面です)。フルグリッドは通常 35〜45 分かかるので、事前に実行しておくか、自習に回すべきです。
  • 4 min — Leaderboard を開き、勝者を読み、config_id を名指しする。

トークトラック

  • これをワークショップの その 土台となる判断として位置づけてください。誰かが別のワークロードで 走らせた公開リーダーボードではなく、エビデンスによって決める、エージェントを動かすモデルの 選択です。
  • 採点がどこで起こるかを強調してください。Langfuse の内側 であり、ハーネスの中ではありません。 ハーネスはグリッドをオーケストレーションし、完全な Experiment Item を記録します。leaderboard は それらを Langfuse Public API 経由で読みます。これは Module 00 で接続したのと同じ Langfuse プロジェクトです。ここで新しいツールや 2 つ目の結果ストアは登場しません。
  • データセット件数を説明してください。リポジトリには YAML の質問が 20 個ありますが、q019 と q020 は few-shot holdout なので、クリーンな arena-golden Experiment dataset は 18 アイテムです。
  • 見出しの指標を明示的に名指しし、それが素の精度でない理由を述べてください。正答あたりの コスト — この特定のタスクにおける 1 ドルあたりの品質です。コストは各 run の開始時に更新される ライブの OpenRouter 価格から計算され、config.yaml に焼き込まれた古い数値ではないことを 指摘してください。
  • グリッドの語彙を画面に出してください。プロプライエタリとオープンウェイトに分かれた 6 モデル (claude-sonnet-5、gpt-5.6-luna、gemini-flash-lite / deepseek-v4-flash、qwen3.7-flash、glm-4.7-flash) × プロンプト (P1_zeroshot … P3_dialect)、そして config_id が <model>__<prompt> であることです。
  • Leaderboard の行から質問ごとの結果へ、さらにその背後の Langfuse trace へ、その場でクリックして 進んでください。これは Module 02 が深く掘るドリルダウンの習慣です。
  • 勝者に着地し、その config_id を声に出して言ってください。ここから先のすべてのモジュールが それを参照します。

よくある失敗

  • Langfuse の evaluator が未設定 — ハーネスは --eval-timeout(デフォルト 180s)までしか待たず、そのあと非ゼロで終了し、欠けている score を 名指しします。harness が待つ正確な score は、evaluator 定義 llm_judge が出力する agent-arena-llm-judge です。OpenRouter を裏で使う judge には python -m scripts.provision_langfuse_evaluators を 実行し、correctness evaluator の target/filter を直してから、新しい --run-id で 2 モデル・ 1 プロンプトの小さなグリッドを実行してください。Langfuse が評価ストアなので、ローカル結果への フォールバックは意図的に存在しません。
  • プレースホルダーの OPENROUTER_API_KEY — グリッドのすべての呼び出しが 401 で失敗します。 これは Module 00 で確認すべきですが、すり抜けていた場合、ここで可視化されます。すべての構成で 正答ゼロの run 全体です。
  • モデルスラッグが OpenRouter のカタログからずれた — config.yaml のモデル id (たとえば anthropic/claude-sonnet-5)は執筆時点で OpenRouter にライブだったものに 固定されています。OpenRouter はスラッグを廃止/改名します。ある構成が「model not found」系の 失敗で即座にエラーになるなら、 https://openrouter.ai/api/v1/models で現在のスラッグを確認し、 config.yaml と比較してください。ダッシュボードの /api/models エンドポイントはライブの カタログを反映するので、そこでの不一致はハーネスを実行する前にずれを見つける速い方法です。
  • ClickHouse がシードされていない — Module 00 がきれいに完了していないと、ハーネスの v_* views に対するクエリは空の結果かエラーを返します。すべての構成が 同じ outcome で返ってきます。scripts/arena.sh up を再実行してください。
  • run が止まって見える — グリッドは models × prompts(デフォルトで 6 × 3 = 18 構成)です。 端から端まで数分かかることがあります。ライブデモでは --models/--prompts で小さくしてください (リセット手順を参照)。

リセット手順

  • ClickHouse がシードされているか確認: scripts/arena.sh up(冪等。再実行して安全です)。
  • フルグリッドの代わりに安価な部分集合を再実行: python -m eval.harness --run-id demo2 --models qwen3.7-flash,gpt-5.6-luna --prompts P1_zeroshot,P3_dialect
  • 新しい run には必ず新しい --run-id(たとえば demo2、demo3)を与え、前の run に 混ざるのではなく Leaderboard 上で独立した行の集まりとして、Langfuse 上で独立した Experiment として 現れるようにしてください。
  • Langfuse の evaluator が原因なら、両方が Experiments をターゲットにし、dataset の フィルタが arena-golden であることを確認し、新しい --run-id で上記の安価な部分集合を再実行します。
  • ハーネスではなくダッシュボード自体が詰まって見える場合、scripts/arena.sh stop のあと scripts/arena.sh serve で、シード済みデータに触れずローカルサーバーだけを再起動できます。

このページの内容

JA