圍繞使用AI助手減少手動工作、利用代碼生成器提高軟件開發(fā)者生產(chǎn)力和通過生成式AI進(jìn)行創(chuàng)新,業(yè)界正掀起一股熱潮。這些商業(yè)機(jī)遇促使許多開發(fā)團(tuán)隊構(gòu)建知識庫,使用向量數(shù)據(jù)庫,并將大型語言模型(LLMs)嵌入到他們的應(yīng)用中。
構(gòu)建具有LLM功能的應(yīng)用程序的一些通用用例包括搜索體驗、內(nèi)容生成、文檔摘要、聊天機(jī)器人和客戶服務(wù)應(yīng)用。行業(yè)實例包括在醫(yī)療保健領(lǐng)域開發(fā)患者門戶、在金融服務(wù)領(lǐng)域改善初級銀行家的工作流程,以及在制造業(yè)中為工廠的未來鋪平道路。
投資于LLMs的公司面臨一些初步挑戰(zhàn),包括改進(jìn)數(shù)據(jù)質(zhì)量方面的數(shù)據(jù)治理、選擇LLM架構(gòu)、解決安全風(fēng)險以及制定云基礎(chǔ)設(shè)施計劃。
我更擔(dān)心的是組織如何計劃測試他們的LLM模型和應(yīng)用。引起關(guān)注的問題包括一家航空公司兌現(xiàn)了其聊天機(jī)器人提供的退款、因版權(quán)侵權(quán)而引發(fā)的訴訟以及降低“幻覺”風(fēng)險。
Roadz公司的聯(lián)合創(chuàng)始人兼首席運(yùn)營官阿米特·杰恩(Amit Jain)表示:“測試LLM模型需要一種多方面的方法,這超出了技術(shù)嚴(yán)謹(jǐn)性的范疇。團(tuán)隊?wèi)?yīng)該進(jìn)行迭代改進(jìn),并創(chuàng)建詳細(xì)的文檔,以記錄模型的開發(fā)過程、測試方法和性能指標(biāo)。與研究社區(qū)合作,以基準(zhǔn)測試和分享最佳實踐也是有效的。”
1.嵌入式大型語言模型(LLMs)的四種測試策略
開發(fā)團(tuán)隊需要一套針對LLM的測試策略。在為嵌入在自定義應(yīng)用中的LLMs制定測試策略時,可以考慮以下作為起點的實踐方法:
創(chuàng)建測試數(shù)據(jù)以擴(kuò)展軟件質(zhì)量保證
自動化模型質(zhì)量和性能測試
根據(jù)用例評估RAG質(zhì)量
制定質(zhì)量指標(biāo)和基準(zhǔn)
2.創(chuàng)建測試數(shù)據(jù)以擴(kuò)展軟件質(zhì)量保證
大多數(shù)開發(fā)團(tuán)隊不會創(chuàng)建通用的大型語言模型,而是為特定的最終用戶和使用場景開發(fā)應(yīng)用。為了制定測試策略,團(tuán)隊需要了解涉及的用戶角色、目標(biāo)、工作流程和質(zhì)量基準(zhǔn)。“測試LLMs的首要要求是了解LLM應(yīng)能夠解決的任務(wù),”Mindbreeze的首席技術(shù)官Jakob Praher說,“對于這些任務(wù),人們會構(gòu)建測試數(shù)據(jù)集,以建立LLM性能的指標(biāo)。然后,人們可以系統(tǒng)地優(yōu)化提示或微調(diào)模型。”
例如,一個為客戶服務(wù)設(shè)計的大型語言模型可能包含一個包含常見用戶問題和最佳響應(yīng)的測試數(shù)據(jù)集。其他LLM用例可能沒有直接評估結(jié)果的手段,但開發(fā)人員仍可以使用測試數(shù)據(jù)進(jìn)行驗證。“測試LLM最可靠的方法是創(chuàng)建相關(guān)的測試數(shù)據(jù),但挑戰(zhàn)在于創(chuàng)建此類數(shù)據(jù)集的成本和時間,”Solix Technologies的工程副總裁Kishore Gadiraju說,“與其他軟件一樣,LLM測試包括單元測試、功能測試、回歸測試和性能測試。此外,LLM測試還需要進(jìn)行偏差、公平性、安全性、內(nèi)容控制和可解釋性測試。”
Gadiraju分享了以下LLM測試庫和工具:
AI Fairness 360,一個開源工具包,用于檢查、報告和緩解機(jī)器學(xué)習(xí)模型中的歧視和偏見;
DeepEval,一個類似于Pytest但專用于LLM輸出單元測試的開源LLM評估框架;
Baserun,一個用于幫助調(diào)試、測試和迭代改進(jìn)模型的工具;
Nvidia NeMo-Guardrails,一個為LLM輸出添加可編程約束的開源工具包。
IBM數(shù)據(jù)和人工智能部門的數(shù)據(jù)科學(xué)工具和運(yùn)行時主管Monica Romila分享了企業(yè)在使用LLM時的兩個測試領(lǐng)域:
模型質(zhì)量評估使用學(xué)術(shù)和內(nèi)部數(shù)據(jù)集評估模型質(zhì)量,用于分類、提取、摘要、生成和增強(qiáng)生成(RAG)等用例。
模型性能測試驗證模型的延遲(數(shù)據(jù)傳輸所用時間)和吞吐量(在特定時間段內(nèi)處理的數(shù)據(jù)量)。
Romila表示,性能測試取決于兩個關(guān)鍵參數(shù):并發(fā)請求的數(shù)量和生成的令牌數(shù)量(模型使用的文本塊)。“測試各種負(fù)載大小和類型,并將性能與現(xiàn)有模型進(jìn)行比較,以查看是否需要更新,這一點很重要。”
DevOps和云架構(gòu)師應(yīng)考慮進(jìn)行LLM應(yīng)用程序的性能和負(fù)載測試所需的基礎(chǔ)設(shè)施要求。SADA解決方案工程部總經(jīng)理Heather Sundheim表示:“為大型語言模型部署測試基礎(chǔ)設(shè)施涉及設(shè)置強(qiáng)大的計算資源、存儲解決方案和測試框架。自動化配置工具(如Terraform)和版本控制系統(tǒng)(如Git)在可重復(fù)部署和有效協(xié)作中發(fā)揮著關(guān)鍵作用,強(qiáng)調(diào)了平衡資源、存儲、部署策略和協(xié)作工具對于可靠LLM測試的重要性。”
3.根據(jù)用例評估RAG質(zhì)量
提高LLM準(zhǔn)確性的一些技術(shù)包括集中內(nèi)容、用最新數(shù)據(jù)更新模型以及在查詢流程中使用RAG。RAG對于將LLM的強(qiáng)大功能與公司的專有信息相結(jié)合至關(guān)重要。
在典型的LLM應(yīng)用中,用戶輸入提示,應(yīng)用程序?qū)⑵浒l(fā)送到LLM,然后LLM生成響應(yīng),應(yīng)用程序再將響應(yīng)發(fā)送回用戶。使用RAG時,應(yīng)用程序首先將提示發(fā)送到信息數(shù)據(jù)庫(如搜索引擎或向量數(shù)據(jù)庫),以檢索相關(guān)和主題相關(guān)的信息。應(yīng)用程序?qū)⑻崾竞瓦@種上下文信息發(fā)送到LLM,LLM用它來制定響應(yīng)。因此,RAG將LLM的響應(yīng)限制在相關(guān)和上下文信息范圍內(nèi)。
Pryon公司的創(chuàng)始人兼首席執(zhí)行官Igor Jablokov表示:“RAG更適用于企業(yè)級部署,在這些部署中,需要對源內(nèi)容進(jìn)行可驗證的歸因,尤其是在關(guān)鍵基礎(chǔ)設(shè)施中。”
研究表明,使用RAG與LLM一起可以減少幻覺并提高準(zhǔn)確性。但是,使用RAG也增加了一個新組件,需要對其相關(guān)性和性能進(jìn)行測試。測試的類型取決于評估RAG和LLM響應(yīng)的難易程度,以及開發(fā)團(tuán)隊能夠在多大程度上利用最終用戶的反饋。
我最近與Forethought公司的首席執(zhí)行官Deon Nicholas就他公司用于生成式客戶支持AI的RAG評估選項進(jìn)行了交流。他分享了三種不同的方法:
(1)黃金標(biāo)準(zhǔn)數(shù)據(jù)集,即針對查詢的正確答案的人類標(biāo)注數(shù)據(jù)集,可作為模型性能的基準(zhǔn);
(2)強(qiáng)化學(xué)習(xí),即在真實場景中測試模型,例如在用戶與聊天機(jī)器人交互后詢問其滿意度;
(3)對抗網(wǎng)絡(luò),即訓(xùn)練一個二級LLM來評估一級LLM的性能,這種方法通過不依賴人類反饋提供自動化評估。
Nicholas表示:“每種方法都有其取舍,需要在人類投入和忽略錯誤的風(fēng)險之間取得平衡。最佳的系統(tǒng)會跨系統(tǒng)組件利用這些方法,以最小化錯誤并促進(jìn)穩(wěn)健的AI部署。”
4.制定質(zhì)量指標(biāo)和基準(zhǔn)
一旦你有了測試數(shù)據(jù)、新的或更新的大型語言模型(LLM)以及測試策略,下一步就是根據(jù)既定的目標(biāo)驗證質(zhì)量。
ContractPodAi的首席產(chǎn)品官阿提娜·雷哈尼(Atena Reyhani)表示:“為確保開發(fā)出安全、可靠和值得信賴的人工智能,制定具體、可衡量的關(guān)鍵績效指標(biāo)(KPIs)和建立明確的防護(hù)欄至關(guān)重要。需要考慮的一些標(biāo)準(zhǔn)包括準(zhǔn)確性、一致性、速度和與特定領(lǐng)域用例的相關(guān)性。開發(fā)人員需要評估目標(biāo)領(lǐng)域中的整個LLM生態(tài)系統(tǒng)和運(yùn)營模型,以確保其能夠提供準(zhǔn)確、相關(guān)且全面的結(jié)果。”
值得借鑒的一個工具是Chatbot Arena,它是一個開放的環(huán)境,用于比較LLM的結(jié)果。它采用Elo評級系統(tǒng),這是一種常用于競技游戲排名玩家的算法,但在評估不同LLM算法或版本產(chǎn)生的響應(yīng)時,它同樣奏效。
Immuta的研究副總裁喬·雷根斯伯格(Joe Regensburger)表示:“人類評估是測試的核心部分,特別是在將LLM強(qiáng)化以適應(yīng)現(xiàn)實世界中出現(xiàn)的查詢時。Chatbot Arena是眾包測試的一個例子,這類人類評估者研究可以提供重要的反饋循環(huán),以便整合用戶反饋。”
IBM數(shù)據(jù)與人工智能部門的羅米拉(Romila)分享了根據(jù)LLM的不同用例需要考慮的三個指標(biāo)。
(1)F1分?jǐn)?shù)是精確度和召回率的綜合得分,適用于LLM用于分類或預(yù)測的情況。例如,客戶支持LLM可以通過評估其推薦行動方案的準(zhǔn)確性來進(jìn)行評估。
(2)RougeL可用于測試RAG和LLM在摘要用例中的性能,但通常需要一個由人類創(chuàng)建的摘要作為基準(zhǔn)來評估結(jié)果。
(3)sacreBLEU原本是一種用于測試語言翻譯的方法,現(xiàn)在也被用于對LLM響應(yīng)進(jìn)行定量評估,以及其他方法,如TER、ChrF和BERTScore。
一些行業(yè)有特定的質(zhì)量和風(fēng)險指標(biāo)需要考慮。Aisera的產(chǎn)品管理和營銷副總裁Karthik Sj表示:“在教育領(lǐng)域,評估年齡適宜性和避免毒性內(nèi)容至關(guān)重要,但在面向消費(fèi)者的應(yīng)用中,應(yīng)優(yōu)先考慮響應(yīng)的相關(guān)性和延遲。”
模型部署后并不意味著測試結(jié)束,數(shù)據(jù)科學(xué)家應(yīng)尋求最終用戶的反應(yīng)、性能指標(biāo)和其他反饋,以改進(jìn)模型。Amplitude的工程副總裁兼首席信息安全官Dustin Pearce表示:“部署后,將結(jié)果與行為分析相結(jié)合變得至關(guān)重要,它提供了快速反饋和更清晰的模型性能衡量標(biāo)準(zhǔn)。”
為生產(chǎn)準(zhǔn)備的一個重要步驟是在應(yīng)用程序中使用特性開關(guān)。AI技術(shù)公司Anthropic、Character.ai、Notion和Brex在構(gòu)建產(chǎn)品時都使用了特性開關(guān),以便協(xié)作測試應(yīng)用程序,逐步向大量用戶引入功能,并針對不同的用戶群體進(jìn)行定向?qū)嶒灐?/p>
盡管出現(xiàn)了驗證LLM應(yīng)用的新技術(shù),但這些技術(shù)都不易實施或提供確切的結(jié)果。目前,與RAG和LLM集成來構(gòu)建應(yīng)用程序可能相對容易,但與測試和支持改進(jìn)工作相比,這僅僅是冰山一角。