如何測試大型語言模型
譯文圍繞使用AI助手來減少手動工作、通過代碼生成器提高軟件開發者的生產力,以及利用生成式AI進行創新,這些話題一直為公眾所熱議。同時,商業機會正推動許多開發團隊構建知識庫、使用向量數據庫,并在其應用中嵌入大型語言模型(LLMs)。
構建具有LLM能力的應用程序的一些通用用例,包括搜索體驗、內容生成、文檔摘要、聊天機器人和客戶支持應用。行業示例包括在醫療保健中開發患者門戶、在金融服務中改善初級銀行家的工作流程,以及為制造業的未來鋪平道路。
投資LLMs的公司面臨一些前期障礙,包括改進數據治理、提高數據質量、選擇LLM架構、解決安全風險,并制定云基礎設施計劃。
我對組織如何測試他們的LLM模型和應用程序有更大的擔憂。新聞中的問題包括一家航空公司兌現其聊天機器人提供的退款、關于版權侵權的訴訟,以及降低幻覺風險。
Roadz的聯合創始人兼首席運營官Amit Jain表示:“測試LLM模型需要一種多方面的方法是超越技術嚴謹性的。團隊應該進行迭代改進,并創建詳細的文檔以記錄模型的開發過程、測試方法和性能指標。與研究社區進行互動,以基準測試和分享最佳實踐也是有效的。”
針對嵌入式LLMs的4種測試策略
開發團隊需要一個LLM測試策略。作為起點,考慮以下用于測試嵌入自定義應用程序中的LLMs的做法:
1.創建測試數據以擴展軟件QA
2.自動化模型質量和性能測試
3.根據用例評估RAG質量
4.開發質量指標和基準
5.創建測試數據以擴展軟件QA
大多數開發團隊不會創建通用的LLMs,而是為特定的最終用戶和用例開發應用程序。為了制定測試策略,團隊需要了解用戶角色、目標、工作流程和涉及的質量基準。
Mindbreeze的首席技術官Jakob Praher表示:“測試LLMs的第一個要求是了解LLM應該能夠解決的任務。”“對于這些任務,人們會構建測試數據集以建立LLM性能的指標。然后,人們可以系統地優化提示或微調模型。”
例如,為客服設計的LLM可能包括常見用戶問題和最佳響應的測試數據集。其他LLM用例可能沒有直接的方法來評估結果,但開發人員仍然可以使用測試數據進行驗證。
Solix Technologies的工程副總裁Kishore Gadiraju表示:“測試LLM最可靠的方法是創建相關的測試數據,但挑戰在于創建這樣一個數據集的成本和時間。”“像任何其他軟件一樣,LLM測試包括單元、功能、回歸和性能測試。此外,LLM測試需要偏見、公平性、安全性、內容控制和可解釋性測試。”
自動化模型質量和性能測試
一旦有了測試數據集,開發團隊應該根據質量目標、風險和成本考慮采取幾種測試方法。Toloka AI的首席執行官Olga Megorskaya表示:“公司開始向自動化評估方法轉變,而不是人類評估,因為它們具有時間和成本效率。”“然而,在關鍵情況下,公司仍應聘請領域專家,以捕捉自動化系統可能忽視的細微差別。”
對于開發人員或數據科學家來說,找到自動化和人在循環測試之間的正確平衡并不容易。Astronomer的數據和AI高級副總裁Steven Hillion表示:“我們建議對建模過程的每個步驟進行自動化基準測試,然后對端到端系統進行自動化和手動驗證的混合”“對于主要應用程序版本,您幾乎總是希望對測試集進行最后一輪手動驗證。這在您引入了新的嵌入、新模型或新提示,并且您期望提高總體質量水平時尤其如此,因為改進通常是微妙或主觀的。”
在有健全的LLM測試平臺之前,手動測試是一個謹慎的措施。Relational AI的研究ML副總裁Nikolaos Vasiloglou表示:“沒有用于系統測試的最新測試平臺。”“當涉及到可靠性和幻覺時,知識圖譜問題生成機器人是最好的解決方案。”
Gadiraju分享了以下LLM測試庫和工具:
1.AI Fairness 360,一個開源工具包,用于檢查、報告和減輕機器學習模型中的歧視和偏見;
2.DeepEval,一個開源的LLM評估框架,類似于Pytest,但專門用于單元測試LLM輸出;
3.Baserun,一個幫助調試、測試和迭代改進模型的工具;
4.Nvidia NeMo-Guardrails,一個開源工具包,用于在LLM的輸出上添加可編程約束。
IBM Data and AI的數據科學工具和運行時總監Monica Romila分享了企業用例中LLMs的兩個測試領域:
1.模型質量評估使用學術和內部數據集評估模型質量,用于分類、提取、摘要、生成和檢索增強生成(RAG)等用例。
2.模型性能測試驗證模型的延遲(數據傳輸的經過時間)和吞吐量(在一定時間范圍內處理的數據量)。
Romila表示,性能測試取決于兩個關鍵參數:并發請求的數量和生成的令牌數量(模型使用的文本塊)。“重要的是要測試各種負載大小和類型,并與現有模型的性能進行比較,以查看是否需要更新。”
DevOps和云架構師應考慮基礎設施要求,以進行LLM應用程序的性能和負載測試。SADA解決方案工程董事Heather Sundheim表示:“為大型語言模型部署測試基礎設施涉及設置強大的計算資源、存儲解決方案和測試框架。”“自動化配置工具如Terraform和版本控制系統如Git在可重復部署和有效協作中發揮關鍵作用,強調平衡資源、存儲、部署策略和協作工具的重要性,以實現可靠的LLM測試。”
根據用例評估RAG質量
提高LLM準確性的一些技術包括集中內容、使用最新數據更新模型,并在查詢管道中使用RAG。RAG對于將LLMs的強大功能與公司的專有信息結合起來非常重要。
在一個典型的LLM應用程序中,用戶輸入一個提示,應用程序將其發送到LLM,然后LLM生成一個響應,應用程序將其發送回用戶。使用RAG時,應用程序首先將提示發送到信息數據庫,如搜索引擎或向量數據庫,以檢索相關、主題相關的信息。應用程序將提示和這些上下文信息發送到LLM,后者使用這些信息來制定響應。因此,RAG將LLM的響應限制在相關和上下文信息上。
Pryon的首席執行官和創始人Igor Jablokov表示:“RAG對于企業風格的部署更合理,其中對源內容的可驗證歸屬是必要的,尤其是在關鍵基礎設施中。”
使用RAG與LLM已經顯示出可以減少幻覺并提高準確性。然而,使用RAG還增加了一個需要測試其相關性和性能的新組件。測試類型取決于評估RAG和LLM響應的容易程度,以及開發團隊在多大程度上可以利用最終用戶反饋。
我最近與Forethought的首席執行官Deon Nicholas談到了他公司生成型客戶支持AI中使用的RAG評估選項。他分享了三種不同的方法:
1.黃金標準數據集,或人類標記的正確答案數據集,作為模型性能的基準;
2.強化學習,或在現實世界場景中測試模型,例如在與聊天機器人互動后詢問用戶的滿意度;
3.對抗網絡,或訓練一個次要LLM來評估主要的性能,這提供了一種不依賴人類反饋的自動化評估。
Nicholas表示:“每種方法都有權衡,平衡了人類努力與忽視錯誤風險之間的關系。”“最好的系統在系統組件中利用這些方法,以最小化錯誤,促進健全的AI部署。”
開發質量指標和基準
一旦您有了測試數據、一個新的或更新的LLM和一個測試策略,下一步就是根據既定目標驗證質量。
ContractPodAi的首席產品官Atena Reyhani表示:“為了確保開發安全、可靠和值得信賴的AI,創建具體和可衡量的KPI并建立明確的界限非常重要。”“一些需要考慮的標準包括準確性、一致性、速度和與特定領域用例的相關性。開發人員需要評估目標領域中的整個LLM生態系統和運營模型,以確保它提供準確、相關和全面的結果。”
一個學習的工具是Chatbot Arena,一個比較LLM結果的開放環境。它使用Elo評分系統,這是一種經常用于排名競技游戲中玩家的算法,但當一個人評估來自不同LLM算法或版本的響應時,它效果很好。
Immuta的研究副總裁Joe Regensburger表示:“人類評估是測試的核心部分,特別是在‘野外’環境中強化LLM。”“Chatbot Arena是眾包測試的一個例子,這些類型的人類評估研究可以提供一個重要的反饋循環,以納入用戶反饋。”
IBM Data and AI的Romila根據LLM的用例分享了三個需要考慮的指標。
1.F1分數是精確度和召回率的綜合分數,適用于LLM用于分類或預測的情況。例如,客戶支持LLM可以根據其推薦行動方案的能力進行評估。
2.RougeL可用于測試RAG和LLM的摘要用例,但這通常需要一個人類創建的摘要來基準測試結果。
3.sacreBLEU是用于定量評估LLM響應的方法之一,最初用于測試語言翻譯,現在與其他方法如TER、ChrF和BERTScore一起使用。
一些行業有質量和風險指標需要考慮。Aisera的產品管理和市場營銷副總裁Karthik Sj表示:“在教育中,評估適齡性和避免毒性至關重要,但在面向消費者的應用程序中,優先考慮響應的相關性和延遲。”
一旦模型部署,測試就不會結束,數據科學家應該尋找最終用戶的反應、性能指標和其他反饋來改進模型。Amplitude的工程和CISO副總裁Dustin Pearce表示:“部署后,將結果與行為分析集成變得至關重要,提供快速反饋和更清晰的模型性能度量。”
準備生產的一個重要步驟是在應用程序中使用功能標志。AI技術公司Anthropic、Character.ai、Notion和Brex在構建其產品時使用功能標志,以協作地測試應用程序,緩慢地向大型群體引入能力,并將實驗針對不同的用戶細分。
雖然有新興技術來驗證LLM應用程序,但這些技術都不容易實施,也不能提供明確的結果。就目前而言,僅僅構建一個具有RAG和LLM集成的應用程序可能是相對容易的部分,與測試它和支持增強所需的工作相比。
原文標題:How to test large language models
原文作者: Isaac Sacolick