
- 評価の起点はモデルではなく製品の判断。3層の基準で誤検出削減と再現率の安全制約を定義
- オフライン評価は統合テストと同様、変更のたびに再実行しベースラインと比較する
- 本番ラベルはシグナルと見なし、合成データとエラー分析で評価の質を補完する
本番では評価が変わる
GitHubは2026年8月25日、LLMを本番環境に投入する前の評価方法について、実践的な知見を公開しました。対象は、シークレットスキャンの誤検出削減にLLMを活用したシステムです。シークレットスキャンとは、リポジトリにコミットされたトークンや鍵などの認証情報を検出する機能です。
記事はまず、クリーンなベンチマークで良い結果が出ても、本番で重要なケースに苦戦することがあると指摘します。実際の入力は曖昧で、ラベルは一貫せず、重要な文脈が欠けていることもあります。ベンチマークではまれなエッジケースが、本番では一般的な失敗要因になり得るのが実情です。GitHubの記事は、こうした乖離にどう対処するかを整理した内容です。
製品判断から評価を設計
評価の設計で最初に考えるべきは、モデルではなく製品としての判断です。GitHubはシークレットスキャンで「誤検出を減らせるか、安全性を保てるだけの再現率を維持できるか」を問いとして設定しました。誤検出削減を主要成果、再現率を安全制約として扱い、両者を同等に交換可能な指標とは見なしていません。
評価基準は「主要成果」「安全制約」「運用上のガードレール」の3層で構成されます。誤検出が減っても再現率を大きく下げる変更は改善とはみなされません。品質が良くても、速度が遅すぎる、コストが高すぎる、統合が難しいといった問題があれば、本番には載せられません。この層構造によって、何を優先し、どこで妥協できるのかが明確になります。記事は、精度だけを見れば強く見える実験Aよりも、再現率の制約を守りながら誤検出を減らした実験Bの方が製品目標に沿っているという例を示しています。
統合テストとして運用
オフライン評価は一度実行すれば終わりではありません。GitHubは、意味のある変更のたびに再実行する、エンドツーエンドの統合テストと同じように扱いました。実行のたびにプロンプト、モデル、データセットのバージョン、システム構成を記録し、既知のベースラインと比較できるようにしています。
一度に変える変数は1つに絞ります。プロンプトとモデルを同時に変えると、どちらが結果に影響したのか分からなくなるためです。プロンプトと評価構成はコードと同じようにバージョン管理し、過去の設定を再現できる状態を保ちます。
オフライン評価は、本番のタスクに近い形で行うことが重要です。実際のシークレットスキャンでは、候補値を周囲のコードや関連情報と一緒に評価するため、文脈の欠落やノイズを再現したデータが必要になります。きれいなデータセットだけでの評価は、本番より簡単な問題を解いているのと同じという指摘です。
データとエラー分析
本番データのラベルは「シグナル」であって、絶対的な真実ではありません。開発者がアラートを解決した理由は、認証情報のローテーション、リスクの許容、ワークフローを進めるための対応など様々です。そのため、重要なデータや曖昧なデータについては、手作業でのレビューが必要だとしています。
合成データやオープンデータセットは、本番データが不足している段階で評価のカバレッジを補うために使えます。ただし、本番を模したデータの代わりにはなりません。GitHubは、認証情報に似た値が近くにあるケースや、文脈が欠落したケースを合成データで再現しました。
集約指標だけでは、次に何を変えるべきかは分かりません。GitHubは誤検出と見逃しのサンプルをレビューし、モデル、プロンプト、入力、パイプライン、データセット、ラベルのどこに原因があるかを分類しました。このエラー分析によって、集約指標では見えない失敗パターンが明らかになったとしています。
| 評価のレベル | 指標の例 | 役割 |
|---|---|---|
| 主要成果(Primary outcome) | 誤検出(フォールス・ポジティブ)の削減 | ユーザーの改善効果を測る |
| 安全制約(Safety constraint) | 再現率(リコール)の維持 | 許容範囲内かを検証する |
| 運用のガードレール(Operational guardrails) | 本番互換性・速度・コスト | 実運用できるかを判定する |
A language model can perform well on a clean benchmark and still struggle with the cases that matter in production.
言語モデルは、クリーンなベンチマークでは良い成果を出しても、本番で重要となるケースには苦戦することがあります。
今後の見通し
GitHubの記事は、モデル名や評価数値といった具体的なデータを示すものではなく、評価プロセスの考え方に焦点を当てています。今後、シークレットスキャンにおける誤検出削減の効果量や、実際の精度・再現率の数値を公表すれば、他社が自社の評価と比較しやすくなるでしょう。現時点では、提示された3層の枠組みを自社の製品に応用するには、それぞれの指標と許容値を自分たちで定義する必要があります。LLM評価の標準手法が定まらない中で、こうした実践例の蓄積が本番環境での評価技術の確立につながると考えられます。
日本の開発者・IT企業にとっての意味
日本のIT企業がLLMをプロダクトに組み込む際、ベンチマークで良好な結果が出ても、実データでは誤判定が頻発するというギャップに直面しやすいです。特にセキュリティやコード解析の分野では、精度が高いと見えたモデルが本番で思わぬ失敗をすることが少なくありません。GitHubが示した3層の評価基準は、技術指標を製品目標に結びつける枠組みとして参考になります。また、オフライン評価を統合テストのようにバージョン管理して運用する手法は、日本のソフトウェア開発プロセスにも取り入れやすいでしょう。一方で、ラベルを絶対視せず、手作業レビューとエラー分析を組み合わせる地道な作業が本番品質には不可欠だと示唆している点も重要です。
気になる点
- この評価手法はシークレットスキャン以外のLLMシステムにも使えますか?
- 使えます。記事の冒頭で、コード解析、開発者ツール、セキュリティ、データ分析など、LLMを使った幅広い本番ワークフローに当てはまると述べています。主要成果・安全制約・運用上のガードレールの3層構造は、自社の製品判断に合わせて指標を再定義することで応用できます。
- 使用したモデルや、精度・再現率の具体的な数値は公表されていますか?
- 記事ではモデル名や実験の具体的な数値は公表されていません。評価実行の追跡表の値は「仮想的なものであり、追跡方法を示すためのもの」と明記されています。現時点では、指標の考え方やプロセスを参考にするのが主な活用法です。
- 合成データを作る際は、どのようなケースを想定すればよいですか?
- GitHubの例では、認証情報に似た値が近くにあるケース、テストコード、プレースホルダー、間接参照、文脈の欠落を再現しました。まれで収集が難しい失敗パターンを補完するのが目的ですが、合成データは本番を模したデータの代わりにはなりません。
用語解説
- シークレットスキャン
- リポジトリにコミットされたAPIキーやトークンなどの認証情報を自動検出する機能。GitHubが提供している。
- 再現率(リコール)
- 実際に該当するもののうち、システムが正しく検出できた割合。見逃しの少なさを示す指標。
- 精度(プレシジョン)
- システムが検出した結果のうち、実際に正しかった割合。誤検出の少なさを示す指標。
- フォールス・ポジティブ
- 実際には該当しないのに、システムが該当と判定すること。日本語では誤検出とも呼ばれる。
- オフライン評価
- 本番環境ではなく、収集済みのデータセットを使ってモデルの性能を測る手法。
- ガードレール
- 本番運用で必ず満たすべき制約条件。安全性や速度、コストなどが含まれる。
出典
How to evaluate LLMs before production
https://github.blog/ai-and-ml/llms/how-to-evaluate-llms-before-production
AI導入も顧問も、お任せください
何から手をつけるか、どこまでAIに任せるか。自社の業務に合わせて整理し、導入から運用まで伴走します。相談だけでも構いません。
AI導入について相談する