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