如何評估大型語言模型(LLM)系統
大型語言模型(LLM)應用的評估因其獨特性而具有內在挑戰性。與傳統軟件應用不同,傳統軟件的輸出具有確定性和可預測性,而LLM即使在輸入相同的情況下,每次運行生成的輸出也可能不同。這種可變性源于這些模型的概率特性,這意味著對于任何給定的輸入,都沒有單一的正確輸出。因此,測試基于LLM的應用需要專門的評估技術——如今被稱為“評估(evals)”——以確保它們符合性能和可靠性標準。
為何評估如此關鍵?
AI評估之所以至關重要,原因眾多。從廣義上講,它們的價值主要體現在四個關鍵方面:
- 建立性能標準 評估有助于為LLM系統建立性能標準,通過為設計選擇和超參數提供方向性結果來指導開發過程。通過設定基準,開發人員可以衡量不同方法的有效性,并做出明智的決策來提升模型的性能。
- 有助于確保輸出的一致性和可靠性 一致性和可靠性對于LLM系統的實際部署至關重要。定期評估有助于識別和緩解可能導致不可預測或錯誤輸出的問題。確保系統產生穩定且可靠的結果,能夠在用戶和利益相關者中建立信任和信心。
- 提供指導改進的見解 持續評估提供了關于LLM系統性能的寶貴見解。它突出了系統表現出色的領域和存在不足的地方,為有針對性的改進提供了機會。通過了解模型的優勢和劣勢,開發人員可以優化系統以獲得更好的性能。
- 支持回歸測試 當對LLM系統進行更改時——無論是在提示詞、設計選擇還是底層算法方面——回歸測試變得至關重要。評估確保這些更改不會降低輸出質量。它驗證新的更新是否維持或增強了系統性能,防止意外后果并保持應用程序的完整性。
LLM系統的評估大致可分為兩類:部署前評估和生產環境評估。每一類都有其獨特的目的,并且在開發和部署生命周期的不同階段都至關重要。
部署前評估
部署前評估側重于在開發階段對LLM系統進行評估。這個階段對于在系統上線前塑造其性能和可靠性至關重要。以下是部署前評估必不可少的原因:
- 性能測量和基準測試 在開發階段,評估LLM系統可以清晰地衡量其性能。通過使用各種指標和評估技術,開發人員可以為系統的能力設定基準。這種基準測試有助于比較模型的不同版本,并了解各種架構和設計選擇的影響。通過及早發現優勢和劣勢,開發人員可以做出明智的決策,以提高效率、準確性和整體性能。
- 確保無回歸更新 隨著系統的持續開發,代碼庫、模型參數或數據的變化可能會無意中導致回歸——性能或準確性的非預期下降。定期的部署前評估有助于確保每次修改都能提高或至少維持性能標準。
如何進行部署前評估
- 創建用于評估的基準數據集 評估LLM系統的第一步,或許也是最關鍵的一步,是創建一個強大的基準數據集。該數據集包含由專業人類用戶生成的一組問答對。這些本質上充當了評估LLM性能的基準。
基準數據至關重要,因為它提供了一個參考點,可以將模型的輸出與之進行比較。它應該代表最終用戶在生產環境中可能提出的問題類型,并包括各種可能的問題,以涵蓋不同的場景和背景。
創建基準數據需要對業務領域和用戶行為有深刻理解的人類專家的專業知識。這些專家能夠準確預測用戶會提出的問題類型,并提供最佳答案。盡管LLM具有先進的能力,但它們可能缺乏這種理解和上下文知識。
- LLM能否創建基準數據? LLM可以協助生成基準數據,但不應完全依賴它們來完成這項任務。原因如下:
它們不理解用戶行為:LLM不理解用戶行為和特定業務領域的上下文。它們可以生成看似合理的問題和答案,但這些可能無法準確反映用戶會提出的查詢類型或對用戶最有用的答案。
它們需要人類監督:人類專家有必要審查和完善由LLM生成的問題和答案。他們確保數據集是真實的、上下文準確的,并且對最終用戶有價值。
確保質量和相關性至關重要:基準數據集的質量至關重要。人類監督保證問題和答案不僅相關,而且符合業務標準和用戶期望。
例如,對于一個檢索增強生成(RAG)應用程序,一個好的基準數據集除了查詢和答案之外,還會提供知識庫中與查詢相關的不同段落。
- 確定LLM系統的相關指標 選擇適當的評估指標對于評估LLM系統的性能至關重要。指標的選擇取決于LLM系統的具體用例,因為不同的應用可能需要測量模型性能的不同方面。
以下是一些評估指標及其定義:
- 答案相關性:該指標衡量所提供的答案與給定問題的相關性。它評估響應是否直接針對查詢并提供有用且相關的信息。重要性在于,確保模型的答案具有相關性有助于維持用戶對系統的滿意度和信任。不相關的答案可能會讓用戶感到困惑或沮喪,降低應用程序的價值。
- 連貫性:連貫性評估生成文本的邏輯流程和清晰度。它檢查響應在整體上是否內部一致且有意義。重要性體現在,連貫的響應更易于用戶理解和跟進。對于客戶支持或教育工具等應用程序,清晰度和可理解性至關重要,因此該指標非常關鍵。
- 上下文相關性:該指標衡量模型的輸出與所提供的更廣泛上下文的契合程度。它評估響應是否適當地考慮了周圍的文本或對話。其重要性在于,上下文相關性確保模型的響應在給定的上下文中是適當且有意義的。這對于維持對話或內容的連續性和相關性至關重要。
- 責任性指標:責任性指標評估模型輸出的倫理和適當性。這包括檢查偏見、有害內容以及是否符合倫理標準。確保AI的負責任使用對于防止錯誤信息、有害刻板印象和不道德內容的傳播至關重要。這些指標有助于建立信任,并確保LLM系統遵守社會和倫理規范。
- RAG評估指標:RAG三元組包含以下指標(此處因原文顯示問題暫不展開具體內容)。
- 特定任務指標:雖然上述示例指標可跨用例和任務使用,但還需要一些更適合所執行特定任務的指標。特定任務指標評估模型在特定任務上的性能,專為應用程序的特定要求量身定制。例如,用于摘要、翻譯和情感分析的指標。
- 為何需要特定任務指標:大多數評估指標是通用的,提供對LLM系統性能的廣泛評估。然而,要了解系統執行特定任務的好壞,需要為手頭任務量身定制的自定義指標。特定任務指標提供有關模型在實現特定功能方面的有效性的詳細見解,確保LLM系統滿足每個應用程序的獨特要求。例如,對于抽象摘要任務,Kryscinski等人(2019)提出了相關指標(此處因原文顯示問題暫不展開具體內容)。
- 根據基準數據計算每個已定義指標的分數 評估LLM系統的下一步是根據基準數據計算每個已定義指標的分數。對于基準數據集中的每個問題,使用LLM系統生成的答案來計算相應的指標。如果一個或多個指標產生不令人滿意的結果,對LLM系統進行必要的調整以改進這些指標。像DeepEval和Relari-ai這樣的庫使用自然語言處理(NLP)庫將LLM響應與基準數據進行比較,并計算這些指標。這些指標是通過利用LLM、其他NLP模型或傳統代碼函數來計算的。
基于觀察到的指標對LLM系統的設計做出基于指標的決策是很重要的。例如,對于期望簡短事實性答案的問題,如果召回率較低,可能需要減小塊大小。即使在K值較高的情況下,如果精確率較低,對檢索到的塊進行重新排序可能會有所幫助。同樣,LLM系統工作流程的不同元素,如提示詞、推理參數、分塊策略、檢索機制、嵌入選擇等,都應根據指標進行優化。
有一種新興趨勢是使用強大的LLM(例如GPT-4)作為無參考(無基準數據)指標來評估其他LLM的生成結果。這有時被稱為“LLM作為評判者”。G-eval框架就是一個很好的例子。該論文認為,通過該框架使用時,GPT-4與人類評估者有很強的相關性。Vicuna和QLoRA的論文中也提出了類似的觀點。
然而,如某篇博客中詳細闡述的那樣,使用基準數據進行評估的可靠性和粒度要比使用評估者LLM好得多。此外,像上下文召回率這樣的一些指標,如果沒有基準數據是無法測量的。
- 將評估納入部署流程 為確保LLM系統始終滿足所需的性能標準,將評估納入部署流程至關重要。這種集成不僅在部署前驗證模型的性能,還在整個開發生命周期中維持質量和可靠性。
每次提交代碼和部署發布前都會自動運行測試,以確保代碼更改不會引入錯誤或降低性能。有文章詳細討論了為LLM編寫單元測試用例的內容。
除了運行已編寫的自動化測試外,像Giskard這樣的工具可以幫助在部署流程中運行掃描,從多個方面測試LLM,如有害性、幻覺和敏感信息等。以下是使用Giskard實現的用于檢查幻覺和有害性的自動化測試示例(此處因原文顯示問題暫不展開具體內容)。
需要注意的一個關鍵點是,針對LLM系統的自動化測試還需要為數據預處理和攝入階段編寫測試。
部署后評估和數據飛輪
為確保LLM系統在部署后繼續保持最佳性能,實施強大的可觀測性層至關重要。這些層提供輸入和輸出交互的必要痕跡,幫助了解系統可能出現故障或性能不佳的地方。
監控交互可以捕獲關于LLM系統如何處理不同問題和場景的實時數據。
建立持續監控以檢測異常和性能問題。
雖然自動化測試提供了持續的監督,但它們本身并不足夠。人類評估對于捕捉自動化系統可能忽略的細微差別和上下文至關重要。
安排與領域專家的定期評估會議,以評估LLM的性能并提供改進反饋。
最后,創建一個反饋機制,讓用戶可以直接從界面報告問題或提供反饋。
數據飛輪與LLM的持續增強
數據飛輪的概念對于LLM系統的持續增強至關重要。數據飛輪是一個自我強化的循環,它利用從運營環境中收集的數據來推動性能的持續改進。對于LLM系統而言,這意味著利用來自生產環境的實時觀察和反饋來優化工作流程,確保其隨著時間的推移變得更加準確、相關和有效。如前所述,來自指標的見解可用于更改工作流程的不同組件,從分塊策略到嵌入,再到提示詞和檢索方法。
需要注意的是,任何制定的指標都不是靜態的——隨著對最終用戶行為的了解加深,以及在生產環境中發現新的使用模式和故障場景,這些指標可能需要隨時間進行更改和調整。
通過了解用戶如何與系統交互,以及在哪些地方出現誤解或效率低下的情況,可以調整LLM系統,使其更清晰、更具體,并更好地與用戶意圖保持一致。同樣,可以簡化工作流程以減少摩擦并改善整體用戶體驗。
數據飛輪方法的美妙之處在于其周期性。根據觀察結果實施改進后,這些變化將生成新的數據,為進一步優化提供新的見解。這創造了一個不斷改進的系統,每次迭代都會變得更加有效和高效。
評估優先:構建可靠LLM應用的關鍵
要構建可靠且高性能的LLM應用,在開發工作流程中提前進行評估不僅有益,而且至關重要。通過從一開始就集成以評估為導向的方法,團隊可以主動發現差距、改進實現,并確保盡早與用戶期望保持一致。
評估方法的選擇應以應用程序的性質和期望的用戶體驗為指導。這意味著預先考慮正確的指標和基準至關重要。不要將評估視為事后諸葛亮,而應將其作為開發過程的基石,以構建強大、以用戶為中心的AI應用程序。




































