生成 AI 的對抗測試

系統對抗性測試是一種系統評估機器學習模型的方法,該模型旨在瞭解以惡意或非預期輸入的方式提供模型時的行為。本指南說明通用型 AI 的逆向測試工作流程範例。

什麼是對抗測試?

測試是建構完善且安全 AI 應用程式的關鍵環節。對抗式測試會將提供最可能產生無效資料的資料提供給應用程式,藉此主動「破壞」應用程式。「反向查詢」可能會使模型以不安全的方式 (例如違反安全政策) 失敗,導致使用者難以辨識,但機器難以辨識。

查詢可能會以不同方式「演算」;明確的全方位查詢可能包含違反政策的用語,或是表達違反政策的觀點,或者嘗試探測或試圖「誘騙」用說安全、有害或令人反感的內容。隱含:理論查詢似乎看似毫無意義,但可能包含涉及敏感、文化敏感或可能有害的敏感主題。包括受眾特徵、健康、財務或宗教等資訊。

對抗測試有助於找出目前失敗的模式,藉此改善模型和產品,藉此微調緩解措施,例如微調、模型防護機製或篩選器。此外,這項解決方案可評估具有輸出政策違反政策內容的風險,有助於通知產品啟動決策

本指南以負責任的 AI 技術為新興最佳做法,提供針對通用模型和系統進行全方位測試的工作流程範例。

對抗測試範例工作流程

進行深度測試的工作流程與標準模型評估作業類似。

識別並定義輸入內容

對抗式測試工作流程的第一步是決定輸入的資料,藉此瞭解系統是特意及系統性攻擊時的行為。妥善運用輸入內容,可直接影響測試工作流程的效率。下列輸入內容有助於定義全方位測試測試的範圍和目標:

  • 產品政策與故障模式
  • 用途
  • 多元性需求

產品政策與故障模式

產生的 AI 產品應定義安全性政策,藉此描述不允許的產品行為和模型輸出結果 (即將其視為「不安全」)。這項政策應列舉一個將視為違反政策的故障模式。此故障模式清單應作為進行基礎測試的基礎。某些失敗模式的例子可能包括不雅用語、財務、法律或醫療建議。

用途

進行深度測試的另一項重要輸入內容是用途模型或產品尋求用途,以便讓測試資料以全新方式呈現使用者與實際產品互動的方式。每種創造型產品略有不同,但常見用途包括:尋找、摘要、產生語言模型的程式碼,或者依地理位置或地形、藝術品或服飾樣式產生背景圖片。

多元性需求

對抗式測試資料集應具備充分多樣性,並遵循所有目標失敗模式和用途。評估測試資料集的多樣性,有助於找出潛在偏誤,並確保模型在對不同的使用者族群進行大規模測試時能夠加以測試。

重視多元性有三種方式:

  • 一般多樣性:確保查詢會使用不同的長度 (例如字詞計數)、使用廣泛的詞彙範圍、不包含重複項目,以及代表不同的查詢公式 (例如 wh 問題、直接和間接要求)。
  • 語意多元:確保每項政策涵蓋的各種主題 (例如糖尿病) 涵蓋多種主題,包括敏感和身分識別特性 (例如性別、族裔) 以及不同情境。
  • 政策和用途多元:確保查詢涵蓋所有政策違規問題 (例如仇恨言論) 和使用案例 (例如專家建議)。

尋找或建立測試資料集

進行深度測試的測試資料集與標準模型評估測試集的建構方式不同。在標準模型評估中,測試資料集通常是用來準確反映模型將遇到的產品分佈情形。進行廣告類型測試時,系統會驗證模型在偏離樣本時的行為,以及與安全政策相關的極端案例,藉此從模型發出有問題的輸出內容。高品質周全的測試集應涵蓋所有安全政策維度,並盡可能擴大模型支援的用途。這類內容應具有多樣性 (例如不同長度和語言的查詢),以及語意 (例如涵蓋不同的主題和客層)。

調查現有的測試資料集,瞭解安全性政策、失敗模式,以及文字產生和文字與圖片模型的使用案例。團隊可以使用現有資料集確立產品的效能基準,然後針對其難以解決的特定故障模式,進行更深入的分析。

如果現有的測試資料集不足,團隊可以產生指定資料以指定特定故障模式和用途。建立新資料集的方法之一,就是手動建立小型查詢資料集 (即各類別數十個範例),然後使用資料合成工具將這個「種子」資料集展開。

種子資料集應盡可能含有與實際執行環境中的情境類似,且以找出違反政策的情形建立。安全功能可能會偵測出非常有惡意的用詞語言,因此,建議您考慮以創意措辭和隱含說法為輸入內容。

您可以在測試資料集中直接或間接參照敏感屬性,例如年齡、性別、種族、宗教。請注意,不同文化間會有所不同。使用語調、句子結構、字詞長度和意義。例如,如果套用多個標籤 (例如仇恨言論與猥褻),可能會產生雜訊和重複,而且可能無法透過評估或訓練系統妥善處理。

請分析逆向測試集,以根據語意和語意多樣性、政策違規問題和用途,以及整體獨特性、廣度和雜訊的整體品質來分析其組合。

產生模型輸出

下一步是依據測試資料集產生模型輸出內容。此結果能讓產品團隊瞭解,向危險使用者或無意間有害的輸入內容,模型可能獲得的成效。確定這些系統行為和回應模式可以提供基準評估,並在日後的模型開發中緩解。

為輸出加上註解

產生周全測試的輸出內容後,請為這些註解加上註解,將輸出內容歸類為故障模式和/或傷害。這些標籤可協助您為文字和圖片內容提供安全信號。此外,這些信號有助於評估和緩解不同模型和產品的傷害。

您可以使用安全分類器,在違反政策時自動為模型輸出結果 (或輸入) 加上註解。如果信號嘗試偵測未明確定義的建構 (例如仇恨言論),表示準確度可能較低。針對這些信號,使用人工評分器檢查及修正分類器產生的標籤,也就是分數「不確定」。

除了自動註解之外,您也可以利用人工評分工具為資料樣本加上註解。請注意,在進行全面性測試中,為模型輸出加上註解時,我們得審查紋理和可能有害的文字或圖片,這點與手動內容審核類似。此外,人工評分者也可以根據各自的背景、知識或信仰,為同一項內容加上不同註解。為評分者制定相關規範或範本是很有幫助的,提醒您,評估器集區的多元性可能會影響註解結果。

通報及減輕

最後一個步驟是在報表中提供測試結果的摘要。使用運算指標和報表結果來提供安全性率、視覺圖表和發生問題範例。這些結果可引導模型改善模型,並提供篩選器或封鎖清單等模型保護措施。報表也有助於與利害關係人/決策者溝通。

其他資源

Google 的 AI 紅隊:為提升 AI 安全性而道德的駭客

以語言模型使用紅色團隊模型

適用於機器學習開發人員的產品品質測試 (影片):

適用於開發人員的產品品質測試 (程式碼研究室)