當您到達此階段時,您已經產生了搜尋索引,並確定了要執行的搜尋。 此階段從評估包含針對大語言模型檢索之真實資料的預期使用者提示角度,來解決評估檢索增強生成 (RAG) 解決方案的程序。 在進入這個階段之前,您應該完成準備階段,收集測試文件和查詢,將測試文件進行分塊,豐富這些區塊,嵌入區塊,建立搜索索引,並實作搜索策略。 您應該評估每個階段,並對結果感到滿意。 此時,您應該對您的解決方案能傳回使用者查詢的相關真實資料感到滿意。
這些真實資料形成您傳送到大語言模型,以處理使用者查詢的提示上下文。 提示工程策略不在本文討論的範圍內。 本文會從真實資料的角度,評估大語言模型的工程呼叫。 本文介紹了一些常見的大語言模型評估指標,以及可以在大型語言模型評估計算中使用的特定相似性和評估指標,或作為獨立指標使用。
本文並不提供大型語言模型指標或相似性和評估指標的完整清單。 這些指標的數量每天都在增加。 您從本文中需要記住的重要一點是,指標有很多種,而每個指標都有其獨特的使用案例。 您是唯一一個全面了解自己的工作量的人。 您和您的資料科學家必須確定您想要測量的內容以及哪些指標可以幫助您完成該任務。
本文是系列文章的一部分。 閱讀簡介。
大語言模型評估指標
您可以使用多種指標來評估大型語言模型的回應,包括真實性、完整性、使用率和相關性。
重要
大型語言模型回應是不確定的,這意味著對大型語言模型的相同提示可能並且經常會傳回不同的結果。 在使用大型語言模型作為評估流程的一部分時,理解這一點非常重要。 使用大型語言模型進行評估時,請考慮使用單一目標的目標範圍。
根據性
紮根性,有時稱為忠誠度,衡量回應是否完全基於情境。 它驗證回應沒有使用上下文中存在的資訊之外的資訊。 低真實性指標顯示大型語言模型可能會陷入想像或無意義的領域,即幻覺。
正在計算
- 以 Azure AI 內容安全服務 (AACS) 為基礎的真實性功能是一種自訂模型,它使用自然語言推理 (NLI) 來確定宣告 (在本例中為區塊) 是否包含在來源文件中。
- 以大型語言模型為基礎的真實性功能使用大型語言模型來確定回應的真實性等級。
- Ragas 忠實度庫
- MLflow 忠實度計算
正在評估
如果真實性較低,則表示大型語言模型認為這些區塊不相關。 您應該評估是否需要在語料庫中新增資料、調整分塊策略或分塊大小,或微調提示。
完整性
完整性衡量回應是否回答了查詢的所有部分。 完整性可以幫助您了解上下文中的區塊是否與查詢相關並直接相關,並提供完整的答案。
正在計算
- AI 輔助:檢索分數提示
- 大型語言模型可以幫助您衡量大型語言模型回應的品質。 您需要問題、上下文和生成的答案來執行此測量。 以下概述了進階流程:
- 使用大型語言模型來重新表達、總結或簡化問題。 此步驟確定意圖。
- 請模型檢查意圖或意圖的答案是否可以從檢索到的文件中找到或推導出來,每個文件的答案可以是「否」或「是」。 以「是」開頭的答案表示檢索到的文件與意圖相關或與意圖的答案相關。
- 計算答案以「是」開頭的意圖的比例。
- 將分數平方以突出顯示錯誤。
正在評估
如果完整性較低,請先評估您的嵌入模型。 將內容中的詞彙與所選嵌入模型中的詞彙進行比較。 確定您是否需要特定於領域的嵌入模型,或者是否需要微調現有模型。 下一步,評估您的分塊策略。 如果您使用固定長度,請考慮增加區塊大小。 您還可以評估您的測試資料是否有足夠的資料來完全解決問題。
使用率
利用率衡量回應由上下文中的區塊中的資訊組成的程度。 目標是確定每個區塊作為回應一部分的程度。 利用率低表示您的結果可能與查詢不相關。 應根據完整性來評估利用率。
正在計算
您可以使用大型語言模型來計算使用率。 您可以將回應和包含區塊的上下文傳遞給大型語言模型。 您可以要求大型語言模型來確定包含答案的區塊的數量。
正在評估
下表提供了兼顧完整性和利用率的指引。
利用率高 | 利用率低 | |
---|---|---|
完整性高 | 不需採取動作 | 在這種情況下,傳回的資料能夠解決問題,但傳回了不相關的區塊。 考慮減少 top-k 參數值以產生更有可能/確定性的結果。 |
完整性低 | 在這種情況下,您提供的區塊正在使用中,但無法完全解決問題。 請考慮下列事項:
|
在這種情況下,您並未完全回答問題,而您提供的區塊也未得到有效利用。 請考慮以下措施來解決這些問題:
|
相關性
衡量大型語言模型的回應與查詢相關的程度。
正在計算
- AI 輔助:Azure AI Studio 中的相關性 - 您可以使用 Azure AI Studio 執行計算,或使用本文中的指南自行計算相關性。
- Ragas 答案相關性庫
- MLflow 相關性計算
正在評估
當相關性較低時,評估以下內容:
- 確保提供給大語言模型的區塊是相關的。
- 確定是否存在未回傳的相關可行區塊。 如果有,請評估您的嵌入模型。
- 如果沒有可行的區塊,請查看是否有相關資料。 如果是這樣,請評估您的分塊策略。
- 如果返回了相關區塊,請評估您的提示。
應計算其他評估方法 (例如完整性),並應產生與相關性測量中觀察到的分數類似的分數。
相似性和評估指標
如簡介中所提到的,資料科學中使用了數百種相似性和評估指標。 有些演算法特定於某個領域,例如語音到文字或語言到語言的翻譯。 每種演算法都有獨特的計算其指標的策略。
資料科學家確定您想要衡量的內容以及您可以使用什麼指標或指標組合來衡量它。 例如,在語言翻譯領域,Bleu 指標檢查機器翻譯和人工翻譯中出現的 n-gram 數量,以基於使用相同單字來衡量相似性。 餘弦相似度使用機器翻譯和人工翻譯之間的嵌入來測量語義相似度。 如果您的目標是具有高語義相似度並使用與人工翻譯相似的單詞,那麼您的目標將是具有高餘弦相似度的高 Bleu 分數。 如果您只關心語義相似性,那麼您會關注餘弦相似性。
以下清單包含常見相似性和評估指標的小樣本。 請注意,列出的相似性測量被描述為基於標記、基於序列或基於編輯,說明了它們如何使用截然不同的方法來計算相似性。 另請注意,該清單包含三種用於評估從一種語言到另一種語言的文字翻譯品質的演算法。
- 最長公共子字串 - 一種基於序列的演算法,用於尋找兩個字串之間的最長公共子字串。 最長公共子字串百分比是將最長公共子字串的長度除以較小或較大輸入字串的字元數。
- 最長公共子序列 (LCS) - 一種基於序列的演算法,用於尋找兩個字串之間的最長子序列。 LCS 不要求子序列按連續順序排列。
- 餘弦相似度 - 一種基於標記的演算法,用於計算兩個向量之間的夾角餘弦值。
- Jaro Winkler - 一種基於編輯的演算法,計算將一個字串轉換為另一個字串的最小步驟數。
- Hamming - 一種基於編輯的演算法,用於測量將一個字串轉換為另一個字串所需的最小替換次數。
- Jaccard - 一種基於標記的演算法,透過將兩個字串的交集除以這些字串的聯集來計算相似度。
- Levenshtein - 一種基於編輯的演算法,透過確定將一個字串轉換為另一個字串所需的最小單字元編輯次數來計算相似性。
- BLEU - 評估從一種語言到另一種語言的機器翻譯結果的文字品質。 Bleu 透過計算機器翻譯和人工品質翻譯之間的 n 元語法重疊來進行評估。
- ROUGE - 將一種語言到另一種語言的機器翻譯,與人類建立的翻譯進行比較。 有幾種 ROUGE 變體,其使用 n 元語法重疊、跳躍二元語法或最長公共子序列來進行評估。
- METEOR - 透過查看精確匹配、詞幹化後的匹配、同義詞、釋義和一致性,來評估機器翻譯結果的文字品質。
有關常見相似性和評估指標,請參閱以下資源:
文件、報告和匯總
您應該記錄為實驗選擇的超參數以及產生的評估指標,以便了解超參數對結果的影響。 您應該在細粒度層級 (例如嵌入或搜尋評估) 和宏觀層級 (例如端對端測試整個系統) 記錄超參數和結果。
在設計和開發流程中,您也許能夠手動追蹤超參數和結果。 但是,在對整個測試文件和測試查詢語料庫執行多次評估時,可能會涉及數百次評估執行和數千個結果。 您應該自動儲存評估參數和結果。
保留超參數和結果後,您應該考慮建立圖表和圖形,以便更輕鬆地視覺化超參數選擇對指標的影響。 視覺化可以幫助您確定哪些選擇會導致效能下降或上升。
您必須了解,設計和評估 RAG 解決方案不是一次性操作,這一點很重要。 您的文件庫會隨著時間的推移而改變。 您的客戶提出的問題會隨著時間的推移而改變,您對問題類型的理解也會隨著您從生產中學習而不斷發展。 您應該一次又一次地重新審視這個流程。 維護過去評估的記錄對於未來的設計和評估工作至關重要。
RAG 實驗加速器
這些文章將引導您完成設計和評估 RAG 解決方案所涉及的所有階段和設計選擇。 這些文章的重點是您應該做什麼,而不是如何做。 工程團隊與 Microsoft 的頂級客戶合作,開發了一個名為 RAG Experiment Accelerator 的工具。 RAG Experiment Accelerator 是一個最先進的實驗架構,旨在最佳化和增強檢索增強生成 (RAG) 解決方案的開發。 RAG Experiment Accelerator 使研究人員和開發人員能夠有效率地探索和微調驅動 RAG 效能的關鍵元件,最終實現更準確、更連貫的文字生成。
借助其基於 CLI 的介面,您可以輕鬆試驗各種嵌入模型、完善分塊策略並評估不同的搜尋方法,以釋放 RAG 系統的全部潛力。 它允許您專注於 RAG 開發的核心方面,同時使用簡單的設定抽象化超參數微調的複雜性。
此外,該架構還提供對大型語言模型設定的全面支援,使您能夠在模型複雜度和生成品質之間取得完美平衡。 該工具可讓您簡化實驗流程、節省寶貴的時間並顯著提高 RAG 模型的效能。
無論您是推動自然語言理解邊界的資深研究人員,還是希望增強文字生成能力的行業專業人士,這個實驗架構都是加速您 RAG 開發旅程的最佳解決方案。 利用這款尖端工具擁抱 RAG 實驗的未來並釋放模型的真正潛力。
RAG with Vision Application Framework
本文中有關在 RAG 解決方案中使用媒體的大部分指導來自與 Microsoft 頂級客戶合作的另一個工程團隊。 該團隊編寫了一個名為 RAG with Vision Application Framework 的架構。 該架構提供了一個 Python 式檢索增強生成 (RAG) 管線,可處理 MHTML 文件中的文字和影像內容。
該架構從 MHTML 檔案載入、分塊和豐富文字和影像,並將這些區塊提取到 Azure 搜尋。 該架構實現了影像豐富的快取,以提高處理效率和成本效率。 該架構還將評估納入管線的一部分。
參與者
- Ritesh Modi
- Rob Bagby
- Ryan Pfalz
- Raouf Aliouat
- Randy Thurman
- Prabal Deb
- Mahdi Setayesh
- Soubhi Hadri
- Paul Butler