← 試験の目次へ

Architect Professional ドメイン4: 評価・テスト・最適化(16%)

この章で学ぶこと: 評価の指標(正確さ・遅延・コスト・安全性・セキュリティ)、評価データセットと採点のしかたの組み合わせ、能力の評価と回帰の評価、pass@k と pass^k、A/B テストと反復の改善、問題の診断(プロンプトの失敗・ハルシネーション・モデルのミスマッチ)、コストと性能の最適化、ログとオブザーバビリティでの監視。

タスク(試験ガイド) この章の節
評価指標を定義する(正確さ、レイテンシ、コスト、安全性、セキュリティ) 第1節
複数の手法を組み合わせて評価データセットとテストの枠組みを設計する 第2節
A/Bテストと反復的な改善を行う 第3節
システムの問題を診断する(プロンプトの失敗、ハルシネーション、モデルのミスマッチ) 第4節
トークン使用量、レイテンシ、コストと性能のトレードオフを最適化する 第5節
ログとオブザーバビリティのツールでシステム性能を監視する 第6節

本番の63問のうち約10問です。Developer F では評価はほとんど出ませんでしたが、Professional では大きな範囲です。

基礎はここで復習してください:


1. 評価の指標を決める

1.1 良い成功の基準(公式)

公式の「Define success criteria and build evaluations」によると、良い成功の基準は次の4つを満たします。

性質 意味 例
具体的(Specific) 何を達成したいかをはっきり 「良い性能」ではなく「感情分類の正確さ」
測れる(Measurable) 数字、または一貫して使える質的な尺度 安全性も数字にできる: 「1万回の試行で、有害と判定された出力が0.1%未満」
達成できる(Achievable) 業界の基準、過去の実験、専門家の知識にもとづく 今の最先端モデルの能力を超えた目標にしない
関係がある(Relevant) アプリの目的と利用者に合う 医療アプリでは引用の正確さが重要。雑談ではそれほどでもない

公式は、多くの用途で「複数の基準での評価」が必要だとしています。

1.2 5つの指標の種類(試験ガイド)

種類 指標の例 測り方
正確さ(accuracy) 正答率、F1、事実の一致率、引用の正確さ、RAG の recall@K 正解との比較、LLM の採点者
遅延(latency) TTFT、全体の時間の p50 / p95 / p99 本番とテストのログ
コスト 1件あたりのトークンと料金、キャッシュのヒット率 応答の usage、Usage and Cost API
安全性(safety) 有害な出力の割合、正しく断った割合、必要なのに断った割合(過剰な拒否) 分類器、LLM の採点者、人
セキュリティ プロンプトインジェクションの成功率、個人情報の漏れ、許可されないツール呼び出しの数 攻撃のテストセット(レッドチーム)、ログ

ポイント: 平均だけでなく p95 などの「遅い側」を見る。SLA はふつう p95 や p99 で約束します(ドメイン6)。


2. 評価データセットとテストの枠組み

2.1 公式の評価の設計の原則

原則 内容
仕事に合わせる 本番の仕事の分布に近づける。端の例(edge case)も入れる
できるだけ自動に 選択式、文字列の一致、コードでの採点、LLM での採点など、自動で採点できる形にする
質より量 少し信号の弱い自動採点の問題をたくさん持つほうが、人が丁寧に採点する少しの問題より良い

2.2 採点のしかた(3種類を組み合わせる)

採点のしかた 公式の評価 向いている
コードでの採点 いちばん速く確実で、大規模にできる。ただし複雑な判断の細かさはない 完全一致、文字列の一致、JSON の形、テストが通るか、データベースの最終状態
LLM での採点 速く柔軟で、大規模にでき、複雑な判断に向く。まず信頼できるか確かめてから広げる 口調、要約の質、根拠に合っているか
人の採点 いちばん柔軟で質が高いが、遅く高い。できれば避ける LLM の採点者の調整(calibration)、主観的な出力の基準づくり

LLM の採点者のこつ(公式):

Anthropic のエージェントの評価の記事は、さらに次を勧めています。

注意: Research の記事では逆に、1回の呼び出しで全観点を 0.0〜1.0 で採点するほうが一貫し、人の判断に近かった、と書いています。どちらが良いかは、人の採点と照らして自分の用途で確かめます。

2.3 データセットの作り方(混ぜる方法)

出どころ 長所 注意
本番の実際の失敗 本当に起きる問題。記事は「実際の失敗から20〜50件の簡単なタスクで始めるのが良い」 個人情報を消してから使う
専門家が作る例 正解が確か 少ない、偏りうる
Claude に作らせる例 たくさん作れる 人が確かめる。本番の分布とずれやすい
攻撃・端の例 安全とセキュリティを測れる 定期的に足す

データセットの決まり(記事):

2.4 能力の評価と回帰の評価

能力の評価(capability / quality eval) 回帰の評価(regression eval)
問い このエージェントは何がうまくできるか 前にできていたことが、今もできるか
合格率 低いところから始め、上げていく ほぼ100%であるべき
使い方 改善の目標 変更のたびに回し、壊れていないか確かめる

記事: 合格率が高くなった能力の評価は、回帰の評価に「卒業」させて、ずっと回し続けます。評価が100%になる(飽和する)と、改善の信号が出なくなるので、新しい難しいタスクを足します。

2.5 エージェントの評価: 結果と過程

見るもの 内容 例
結果(outcome) 最後の環境の状態 「予約しました」と言ったかではなく、データベースに予約があるか
過程(transcript / trace) ツールの呼び出し、推論、途中の結果のすべての記録 不要なツールを何十回も呼んでいないか、ターン数が上限以内か

採点のまとめ方(記事): 重み付け(合計がしきい値を超える)、すべて合格が必要(binary)、その組み合わせ。

2.6 pass@k と pass^k

指標 意味 k を増やすと 向いている
pass@k k 回試して、少なくとも1回成功する確率 上がる 1回でも成功すればよい道具(候補を複数出して選ぶ)
pass^k k 回試して、全部成功する確率 下がる 毎回成功が必要なエージェント(顧客対応など一貫性が大事)

記事: 何百回試しても0%(0% pass@100)なら、たいていエージェントの能力ではなく、タスクか採点者が壊れている合図です。


3. A/B テストと反復の改善

3.1 オフラインの評価とオンラインの評価

オフライン(本番の前) オンライン(本番)
何か 評価データセットで変更を比べる 本番の利用者の一部に新しい版を出して比べる
速さ 速い。何回でも 遅い。十分な量の利用が要る
わかること 決めた基準での品質 本当の利用者の反応(採用率、修正率、満足度)

記事: A/B テストは、十分な量の利用があるときに、大きな変更を確かめるためのもの。自動の評価は速い反復に、本番の監視は本当の姿の把握に、定期的な人のレビューは採点者の調整に使い、組み合わせます。

3.2 A/B テストの進め方(一般的な実践)

この節は公式の手順ではなく、一般的な実験の進め方です。

段階 やること
1. 仮説 「例を3つ足すと、修正率が下がる」
2. 主な指標とガードレールの指標 主: 修正率。ガードレール: 遅延 p95、コスト、安全性の指標が悪くならないこと
3. 1つずつ変える プロンプトとモデルを同時に変えると、どちらが効いたかわからない
4. 振り分け 利用者をランダムに分ける(同じ利用者はいつも同じ版)
5. 量と期間 偶然の差と区別できるだけの件数を集める。曜日などの影響を考える
6. 判断 主な指標が良くなり、ガードレールが守られたら広げる。段階的に(例: 5% → 25% → 100%)
7. 戻せるように 悪いときはすぐ前の版に戻す(プロンプトとモデルの版を固定して管理)

3.3 反復の改善のループ

公式の評価のサイクル: テストケースを作る(端の例も)→ 最初のプロンプトを作る → テストする → プロンプトを直す → 何回もくり返す → 残しておいた(held-out)評価で確かめる → 出す。

記事: 「トランスクリプトを読む」。多くの試行の記録と採点を読まないと、採点者がうまく働いているかわかりません。


4. 問題を診断する

4.1 症状から原因を見分ける

症状 疑う原因 確かめ方 打ち手
形式が崩れる、指示を無視する プロンプトの失敗 同じ入力を何回か試す。指示があいまいでないか 指示をはっきり、例を足す、構造化出力
根拠のないことを自信ありげに言う ハルシネーション 答えの根拠が文脈にあるか照らす 「わからない」を許す、引用させる、根拠を確かめる段を足す
RAG で古い・関係ない答え 検索・インデックス 取ってきたチャンクを見る。recall@K を測る 再インデックス、ハイブリッド検索、リランク、メタデータの絞り込み(ドメイン3)
難しい推論でだけ失敗、簡単なものはできる モデルのミスマッチ(能力不足) 上位モデル・高い effort で同じ評価を回す 上位モデル、effort、ルーティング
簡単な仕事なのに遅くて高い モデルのミスマッチ(過剰) 小さいモデルで同じ評価を回す 小さいモデル、低い effort
モデルを移したら壊れた 破壊的な変化 400 エラー、トークン数の変化 Developer F ドメイン5 第3.3節の対応表
途中で切れる max_tokens stop_reason を見る 上限を上げる、出力を分ける
遅延が急に増えた、中身は同じ キャッシュが効いていない cache_read_input_tokens が 0 か 先頭の変わる値を外す

4.2 切り分けの順番

  1. 応答の形(HTTP の状態、stop_reason)を見る → 統合の問題か、モデルの出力の問題か
  2. モデルに渡したもの(プロンプト、検索結果、ツールの結果)を見る → 入力が悪ければ、モデルを変えても直らない
  3. 同じ入力で何回か試す → 毎回か、ときどきか
  4. 別のモデルや effort で同じ入力を試す → モデルの能力の問題か
  5. 直したら、評価で確かめ、その例を回帰の評価に足す

試験のサンプル問題3: 文書の更新のあとに自信ありげな誤答、遅延とモデルの版は同じ → モデルの重みや temperature ではなく、検索・インデックスをまず疑う。


5. コストと性能の最適化

打ち手 効果 失うもの 確かめ方
プロンプトキャッシュ コスト(読み込み0.1倍)と TTFT なし(設計の手間) キャッシュのヒット率
小さいモデル / ルーティング コストと遅延 難しい依頼の品質 評価で品質の差を確かめる
effort を下げる コストと遅延 推論の深さ 評価
バッチ API コスト50% 即時性(結果まで最大24時間) 即時性が要らない仕事か
入力を削る(検索で絞る、ツールの出力を削る) コストと遅延、気が散るのを防ぐ 必要な情報まで削る危険 評価
出力を短くする 出力のトークン(入力より高い) 説明の量 利用者の満足
ストリーミング 体感の遅延 なし TTFT
fast mode 出力の速さ(最大2.5倍) 料金が高い 必要な場面だけ

最適化の順番の考え方(この教材の整理): 品質を落とさない打ち手(キャッシュ、ストリーミング、入力の整理)から先に。品質を落としうる打ち手(小さいモデル、effort)は評価で確かめてから。


6. ログとオブザーバビリティで監視する

何を記録するか 使い道
request-id、モデルの ID、プロンプトの版 問題の再現、どの版で起きたか
usage(入力・出力・キャッシュのトークン) コストの追跡、キャッシュの確認
stop_reason の分布 途中切れや拒否の増加の検知
遅延(TTFT、全体) SLA の確認
ツールの呼び出しと結果(エラー) エージェントの失敗の場所
利用者の反応(採用・修正・評価) 品質の変化

監視の運用:


7. 試験に向けたまとめ

8. 用語集

用語 意味
eval(評価) 決めた基準でシステムを測るテスト
ルーブリック 採点基準
LLM-as-judge LLM を採点者として使うこと
calibration(調整) LLM の採点者の判断を人の判断に近づけること
held-out 開発に使わず、最後の確認のために残しておく例
regression eval 前にできたことが壊れていないかの評価
saturation(飽和) 評価がほぼ100%になり、改善の信号が出なくなること
pass@k / pass^k k 回のうち1回以上成功 / k 回すべて成功の確率
A/B テスト 利用者を分けて2つの版を比べる実験
guardrail metric 悪くなってはいけない指標
drift 入力や品質が時間とともに変わること

出典

注意: 第1.2節の指標の例、第3.2節の A/B テストの手順、第4.1節の症状の表、第5節の最適化の順番は、この教材の整理です(一般的な実践)。