在LLM和聊天機械人的世界裡,幻覺是我們最常遇到的問題。 幻覺通常通過兩種常用的技術來處理,這些技術針對特定任務進行了微調。
檢索增強生成。
在這兩個選項中,RAG系統更受個人歡迎。 但是,在構建 RAG 應用程式時,有許多選項可供選擇,如圖 1 所示
如您所見,在構建 RAG 應用程式時,有很多選項可供選擇。 但是,更重要的是選擇適合您最佳需求的一種。 這裡有乙個很棒的框架 - RAGAS:用於評估基於 RAG 的應用程式的檢索增強生成的自動評估。 這側重於指標驅動開發 (MDD),以提高 RAG 應用程式的效能
注意:我們將使用 Open AI 的 GPT-4 來評估準備好的資料,確保您準備好了 Open AI API 金鑰)使用首選的包管理器安裝包。在這裡,我使用 pip 來安裝和管理依賴項。
pip install -u -q ragas tqdm datasets匯入已安裝的軟體包。
from ragas.metrics import ( answer_relevancy, faithfulness, context_recall, context_precision, context_relevancy, answer_correctness, answer_similarity)from ragas.metrics.critique import harmfulnessfrom ragas import evaluate假設您已經有要評估的資料,如果沒有,請使用以下示例資料。 ( 可選 )。
git clone sample_ragas_dataset使用從 Open AI Platform Dashboard 複製的 API 金鑰設定 API 金鑰環境變數。 在這裡,我通過 colab secret 傳遞變數。 因此,在執行裝置之前,請確保已將 API 金鑰值分配給金鑰變數。
import osfrom google.colab import userdataos.environ["openai_api_key"] = userdata.get('openai_api_key')在這裡,我從 json 檔案載入資料。
from datasets import load_datasetragas_dataset = load_dataset('json', data_files='data.json')data = ragas_dataset['train']使用從 ragas 匯入的指標評估包含列的資料集; 問題、答案、背景和基本事實。
result = evaluate( data, metrics=[ context_precision, faithfulness, answer_relevancy, context_recall, context_relevancy, answer_correctness, answer_similarity ],raise_exceptions=false)print(result)我對示例資料集的評估結果如下:使用 Plotly 將計算出的指標結果視覺化為雷達圖。 (如果您覺得其他劇集可能是本集固有的,請發表評論。
import plotly.graph_objects as godata = fig = go.figure()fig.add_trace(go.scatterpolar( r=list(data.values())theta=list(data.keys())fill='toself', name='ensemble rag'))fig.update_layout( polar=dict( radialaxis=dict( visible=true, range=[0, 1] )showlegend=true, title='retrieval augmented generation - evaluation', width=800,)fig.show()用於視覺化 RAG 評估指標的出色雷達圖。
Ragas 官方文件:
google colab:
原文鏈結:點讚並關注二師兄談話了解更多資訊,並閱讀我的簡短技術文章。