在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:
原文链接:点赞并关注二师兄谈话了解更多信息,并阅读我的简短技术文章。