AI 測試的思考框架

哪些知識仍適用,哪些已不適用:將您的網頁測試知識對應至 LLM 的新世界。

範例應用程式

在本系列中,ThemeBuilder 是範例應用程式。ThemeBuilder 會輸出 JSON 物件,其中包含 LLM 生成的座右銘和調色盤。

  • 口號和色調必須與輸入的品牌名稱、說明、目標對象和語氣相符。
  • 座右銘不得有害,且長度不得超過 6 個字。
  • 色彩對比度必須符合 WCAG 最低規範,也就是對比度至少為 4.5:1
ThemeBuilder 輸入和輸出內容。
在 ThemeBuilder 中,使用者會輸入公司名稱和說明、目標對象,以及語氣和情緒。前端會將這項資訊傳送至伺服器。伺服器會使用 LLM 生成與品牌相符的座右銘和調色盤。

客觀和主觀評估

如何測試 ThemeBuilder 是否正常運作?

規則式評估 (有時稱為精確評估) 是客觀的測試,答案只有正確或不正確兩種。這類問題最適合詢問資料格式、對比度或其他有明確答案的問題。您可以使用一般程式輔助程式碼實作這些測試。

部分檢查是客觀的,答案只有正確或不正確。這類問題最適合詢問資料格式、對比度或其他有明確答案的問題。您可以使用一般程式輔助程式碼實作這些測試。這類評估稱為「以規則為準的評估」或「精確評估」

例如:

// 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 模型時,這已成為最常見的方法之一 (甚至是最常見的方法)。

—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..."
  };
}

模型會模仿人類的判斷,因此您需要明確告知評估人員您要尋找的內容。你可以提供評分標準給法官。

評分量表是一組結構化準則或評分指南,可供評審 (真人或 AI) 評估輸出內容。在每次評估中,提供一致的架構來評估主觀品質。

其他類型的評估

您可能想使用以參照為準或成對的評估。

以參照為準

這些指標會測量與基準真相答案的相似度。這類模型適用於翻譯或技術事實等工作,因為這類工作有已知的良好回應。

逐對

即使其中一個版本優於另一個,法官也可能會給予兩個不同版本相同的 PASS 分數。逐對評估會針對相同輸入內容提供兩個輸出內容 (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.

使用逐對評估選取要部署的模型版本,或比較兩個不同的提示。

標準網站測試與 AI 評估

網頁測試包括迴歸測試。使用 AI 時,您需要新增最佳化和模型評估。

我們假設您 (本課程的讀者) 已瞭解如何測試網站和網頁應用程式。新增 AI 時,您需要改變現有的心理模型。使用 AI 評估功能可執行下列動作:

  • 執行迴歸測試:變更提示或模型後,應用程式是否無法運作?你是否收到錯誤的調色盤或有害的座右銘?與網頁應用程式不同,這裡的「中斷」是指軟體功能,您要檢查的是 LLM 輸出內容是否優質且安全。這涉及主觀性。
  • 最佳化應用程式:您的應用程式是否越來越好?您是否正在改善所需指標?舉例來說,您是否在不增加有害內容的情況下,獲得更多符合品牌形象的口號?
  • 選擇合適的模型:是否有更適合您用途的模型?在 AI 之前,您會選擇一次網頁堆疊。使用 AI 時,您應定期對模型進行基準化,找出改用更優質 (且可能更便宜) 模型的機會。

分層測試

測試分為四個層級:單元測試、擴充單元測試、迴歸和整合測試,以及人工測試。

健全的程式碼集應有多層測試:單元測試、迴歸和整合測試,以及端對端測試。評估也應分層進行。

  • 結合使用規則式評估和 LLM 評估,全面自動化 AI 應用程式的測試。這樣一來,您就能在日常開發和 CI/CD 中發現問題,並測試候選版本是否符合品質標準。
  • 執行整合和迴歸測試,大規模驗證品質。
  • 執行人工評估,做為驗收測試。

除了在建構時間執行的評估作業,您也可以透過執行階段評估作業監控實際工作環境流量。這些指標有助於找出實際輸入內容的品質或安全問題。

持續改善評估結果

評估結果應隨著應用程式成長。隨著模型變得更聰明,請更新舊的評估。

定期在測試資料集中加入棘手的範例,例如在實際工作環境中發現的新極端情況或令人意外的使用者輸入內容。

評估會評估哪些內容?

設計評估作業前,請先瞭解如何評估輸出內容。您需要瞭解幾個術語。

條件是需要測試的規則和維度。例如品牌一致性、有害內容和無障礙功能。

每個評估準則都以指標衡量。指標是具體的單一分數,用來評估模型輸出內容是否符合條件。這個分數可以是二進位值,也可以是某個範圍內的值,用來衡量輸出內容與評估人員期望的差距。

您可以使用不同類型的指標評估同一項條件。舉例來說,如要進行品牌校驗:

  • 「這個座右銘是否符合品牌形象?」指標為 PASSFAIL
  • 請以 1 到 5 分為座右銘與品牌的相符程度評分。指標是介於 1 到 5 之間的整數。

「評估者」是評估條件的程式碼或模型。評估人員會決定指標。