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-goldenExperiment 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で、シード済みデータに触れずローカルサーバーだけを再起動できます。