02 品質を測る
モジュール 02 の講師ノート — タイミング、トークトラック、よくある失敗、リセット手順。
受講者レッスン 02 品質を測る のファシリテーター向け手引きです。
タイミング
合計 15 分ほど。
- 5 min — 勝った構成の Leaderboard 詳細ビューで、ティアごとの精度と outcome の 内訳を見る。
- 4 min — 副次 score
agent-arena-llm-judgeと、それがcorrectnessと食い違うところ。 - 6 min — 誤答または低スコアの質問について、個々の Langfuse trace を 2〜3 件 掘り下げる。
トークトラック
- ゴールを再定義してください。Arena に勝ったという事実は、その構成が 集計値で 他を上回ったことを 教えてくれます。このモジュールは どのように 勝ったのか、どこが最も弱いのかがテーマです。候補者が 面接に通ったという事実だけでなく、どの質問を完璧に答えたかを知るのと同じ考え方です。
- このモジュールは新しいデータを生み出さないことを明示してください。ここにあるすべては Module 01 の
correctnessと、evaluator 定義llm_judgeが出力する scoreagent-arena-llm-judgeによってすでに取り込まれています。これは 読解の演習で、再実行ではありません。 - 分母も再確認してください。リポジトリには YAML の質問が 20 個ありますが、
q019とq020は few-shot holdout なので、Experiment で採点される dataset item は 18 個です。 - ティアごとの精度について: 構成は全体では強く見えても最も難しいティアでは不安定なことがあり、 それこそ集計されたリーダーボードの数値が隠すものだと指摘してください。
- outcome の内訳について: カテゴリを声に出して順に説明してください。サンドボックスに拒否された SQL、ClickHouse のエラー、空の結果、誤った結果セット。そしてそれぞれが別種の問題で別の直し方を 必要とし、区別のない一括の「失敗」ではないことを伝えてください。
agent-arena-llm-judgeについて: 二値の correctness の、より細かい粒度の兄弟です。ある構成は 実行精度の上では正しいのに、レビュアーなら指摘するような SQL を書いていることがあります (不要なサブクエリ、壊れやすい日付比較)。可能ならcorrectnessとagent-arena-llm-judgeの食い違いをその場で 1 つ見つけてください。区別を伝える最も明確な 方法です。- 最後に、誤答または低スコアの質問を 2〜3 個選び、その完全な trace をライブで端から端まで 読んでください。送られたプロンプト、生成された SQL、エラーまたは結果です。声に出しながら パターン(モデルが扱いを誤り続ける言い回し、join、日付フィルタ)を探してください。 これは Module 04 が本番トラフィックで再利用する、同じ trace 読解のスキルです。
よくある失敗
- Langfuse の evaluator が未設定 — このモジュールを組み立てる土台となる
agent-arena-llm-judgeや correctness の score がありません。Module 01 に戻り、evaluator の target/filter を直し、 小さなグリッドを新しく実行してから続けてください。 - 掘り下げる誤答がない — デモのグリッドで勝った構成が 100% だった場合は、代わりに 勝っていない 構成の失敗を選んでください。要点は trace 読解のスキルであって、勝者に特に 欠陥を見つけることではありません。
- ClickHouse がシードされていない / ハーネスが実行されていない — Leaderboard の詳細ビュー (ティアごとの精度、outcome の内訳)が空になります。これは Module 01 が完了していないことを 意味します。戻って再実行してから続けてください。
- trace へのクリックが 404 になる、または別のプロジェクトが開く — 通常、ブラウザが
.envの ものとは別の Langfuse プロジェクトを向いているか、LANGFUSE_BASE_URL/キーが Module 01 のハーネスを実行したアカウントと一致していないことを意味します。
リセット手順
- Leaderboard の詳細ビューが空なら、再シードして安価な部分集合を再実行してください。
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-idを使い、会場でどの Leaderboard の行とどの Langfuse Experiment を 読んでいるのかが曖昧にならないようにしてください。 - ダッシュボードの描画だけが詰まっている場合(Experiments は Langfuse に存在する)、
再シードせずローカルサーバーを再起動します:
scripts/arena.sh stop && scripts/arena.sh serve。 - evaluator が欠けていた場合、このモジュールの深さは次のセッションまでにそれを直すことに かかっています。Langfuse 側の score の代わりになるものはセッション中にはありません。