AI テストのメンタルモデル

残すもの、手放すもの: ウェブテストの知識を LLM の新しい世界にマッピングする。

アプリケーション例

このシリーズでは、アプリケーション例として ThemeBuilder を使用します。 ThemeBuilder は、LLM で生成されたモットーとカラーパレットを含む JSON オブジェクトを出力します。

  • モットーとパレットは、入力されたブランド名、説明、オーディエンス、トーンと一致している必要があります。
  • モットーは有害なもの ではなく、短い(6 語未満)必要があります。
  • カラーパレットのコントラストは、WCAG の最小ガイドラインで定義されているように、4.5:1 のコントラスト比で、アクセシビリティに対応している必要があります。
ThemeBuilder の入力と出力。
ThemeBuilder では、ユーザーが会社名と説明、ターゲット オーディエンス、トーンとムードを入力します。フロントエンドから サーバーに送信されます。サーバーは LLM を使用して、ブランドに沿ったモットーとカラーパレット を生成します。

客観的評価と主観的評価

ThemeBuilder が意図したとおりに動作していることをテストするにはどうすればよいですか?

ルールベースの評価(正確な評価とも呼ばれます)は、 正誤の 2 値の回答を持つ客観的なテストです。データ形式、コントラスト比など、明確な回答がある質問に最適です。これらのテストは、通常のプログラマティック コードで実装できます。

一部のチェックは客観的で、正誤の 2 値の回答があります。データ形式、コントラスト比など、明確な回答がある質問に最適です。これらのテストは、通常のプログラマティック コードで実装できます。これらは、ルールベースの評価または正確な評価と呼ばれます。

次に例を示します。

// Example rule-based eval: data format
function evaluateFormat(appOutput) {
  // Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
  // Use deterministic tools like zod for schema validation
  return "PASS"; // or "FAIL"
}

その他のチェックは主観的です。たとえば、モットーとカラーパレットのブランドとオーディエンスの整合性などです。有害性検出は分類タスクですが、判断が必要なため主観的でもあります。

主観的なテストにも分類が含まれますが、正誤の範囲は大きく異なる場合があります。たとえば、モットーとカラーパレットのブランドとオーディエンスの整合性を評価する場合などです。有害性検出も主観的です。

主観的な品質の評価は人間の 専門家しかできないように思えるかもしれませんが、LLM-as-a-judge 手法を使用すると、これらのテストを大規模に自動化できます。

[LLM 判定者] は高速で使いやすく、比較的安価です。[...] 本番環境で AI モデルを評価する最も一般的な方法の 1 つになっています。

AI エンジニアリング、Chip Huyen

次に例を示します。

// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
  const brandPrompt = `You are an expert brand strategist. Evaluate the
  following generated motto for the company whose target audience is
  ${userInput.audience}, and who describes itself as
  ${userInput.companyDescription}: ${appOutput.motto}`
  // Call the LLM judge
  const evalResult = evalWithLLM(brandPrompt);
  // Return the consolidated results
  return {
    mottoBrandFit: evalResult,
  };
}

// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
  // ... Call LLM with the prompt ...
  // ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
  return {
    status: "PASS",
    rationale: "This motto perfectly captures the brand and tone, because..."
  };
}

モデルは人間の判断を模倣するため、判定者に探しているものを正確に伝える方法が必要です。判定者にルーブリックを提供することで、それを行うことができます。

A ルーブリックは、判定者(人間または AI)が出力を評価するために使用する、構造化された一連の基準または採点ガイドラインです。これにより、すべての評価で主観的な品質を評価するための整合性のあるフレームワークが提供されます。

その他の評価タイプ

参照ベースの評価またはペアワイズ評価を使用することをおすすめします。

参照ベース

これらは、グラウンド トゥルースの回答との類似性を測定します。既知の良い回答が存在する翻訳や技術的な事実などのタスクに使用します。

ペアワイズ

判定者は、2 つの異なるバージョンに PASS スコアを付けることがあります。1 つがもう 1 つよりも優れている場合でもです。ペアワイズ評価では、同じ入力に対して 2 つの出力(A と B)を判定者に提供し、勝者を選ぶように指示することで、この問題を解決します。

たとえば、フレンドリーなカフェのモットーを評価しているとします。

Input: "Friendly cafe"

Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!

Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.

ペアワイズ評価を使用して、デプロイするモデルのバージョンを選択したり、2 つの異なるプロンプトを比較したりします。

標準的なウェブテストと AI 評価の違い

ウェブテストには回帰テストが含まれます。AI では、最適化とモデル評価を追加する必要があります。

このコースの読者であるあなたは、ウェブサイトとウェブ アプリケーションのテスト方法をすでに知っているものとします。AI を追加する場合は、既存のメンタルモデルを変更する必要があります。AI 評価を使用して、次の操作を行います。

  • 回帰テストの実施: プロンプトまたはモデルを変更したときに、 アプリケーションが破損しましたか?カラーパレットが破損したり、有害なモットーが表示されたりしていませんか? 破損がソフトウェア機能であるウェブアプリとは異なり、ここでは LLM 出力が高品質で安全かどうかを確認します。これには主観性が伴います。
  • アプリケーションの最適化: アプリケーションは改善されていますか?目的の指標は改善されていますか?たとえば、有害性を高めることなく、ブランドに沿ったモットーを増やしていますか?
  • 適切なモデルの選択: ユースケースに適したモデルはありますか?AI の前は、ウェブスタックを 1 回選択します。AI を使用する場合は、モデルを定期的にベンチマークして、より優れた(場合によっては安価な)モデルに切り替える機会を特定する必要があります。

テストをレイヤリングする

テストには、単体テスト、拡張単体テスト、回帰テストと統合テスト、人間によるテストの 4 つのレイヤがあります。

健全なコードベースには、単体テスト、回帰テストと統合テスト、エンドツーエンド テストなど、複数のテストレイヤが必要です。 評価もレイヤリングする必要があります。

  • ルールベースの評価と LLM を判定者として使用する評価を組み合わせて、AI アプリケーションのテストを完全に自動化します。これにより、日々の開発と CI/CD で問題を検出し、リリース候補が品質基準を満たしていることをテストできます。
  • 統合テストと回帰テストを実行して、大規模な品質を確認します。
  • 承認テストとして手動による人間による評価を実施します。

ビルド時に実行するこれらの評価に加えて、実行時評価で本番環境トラフィックをモニタリングします。これにより、実際の入力で品質や安全性の問題を特定できます。

評価を進化させ続ける

評価はアプリケーションとともに成長する必要があります。モデルがスマートになったら、古い評価を更新します。

新しいエッジケースや、本番環境で見つかった驚くようなユーザー入力など、難しい例をテストデータセットに定期的に追加します。

評価で測定する内容

評価を設計する前に、出力を評価する方法を理解する必要があります。 知っておくべき用語がいくつかあります。

基準は、テストする必要があるルール、ディメンションです。たとえば、ブランドの整合性、有害性、アクセシビリティなどです。

各評価基準は指標によって測定されます。指標は、基準と照らし合わせてモデル出力を測定する単一の 具体的なスコアです。このスコアは、出力が評価者の期待値からどの程度離れているか、または近いかを測定する 2 値または範囲内の値にすることができます。

同じ基準をさまざまなタイプの指標で測定できます。 たとえば、ブランドの整合性の場合:

  • 「このモットーはブランドに合っていますか?」指標は PASS または FAIL です。
  • 「1 ~ 5 のスケールで、モットーはブランドとどの程度一致していますか?」指標は 1 ~ 5 の整数です。

__評価者__は、基準をスコアリングするコードまたはモデルです。評価者は指標を決定します。