使用RAGAS评估您的RAG应用程序简单的3个步骤
作者: IT大咖说 来源: IT大咖说
◆RAG 评估的必要性
在 LLM 和聊天机器人的世界里,幻觉是我们正在对抗的最常见的问题。幻觉通常通过两种常用技术来处理
-
针对特定任务进行微调
-
检索增强生成
在这两个选项中,RAG 系统更受个人欢迎。然而,在构建 RAG 应用程序时有很多选项可供选择,如图 1 所示
如图所示,在构建 RAG 应用程序时,有很多选项可供选择。但是,选择适合您最佳需求的一种更为重要。 这里有一个很棒的框架 - RAGAS:检索增强生成的自动评估,用于评估基于 RAG 的应用程序。这侧重于指标驱动开发 (MDD),以提高 RAG 应用程序的性能。
◆执行
1. 安装和导入软件包
(注意:我们将使用 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 harmfulness
from ragas import evaluate
我们假设您已经有要评估的数据,如果不是,请使用以下示例数据。( 可选 )
git clone https://github.com/mahimairaja/sample_ragas_dataset.git
cd sample_ragas_dataset
2. 设置 API 密钥并加载数据
使用从 Open AI Platform Dashboard 复制的 API 密钥设置 api 密钥环境变量。在这里,我通过 Colab Secret 传递变量。因此,在运行单元之前,请确保您已为秘密变量分配了 api 键值。
import os
from google.colab import userdata
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
在这里,我从 json 文件加载数据。
from datasets import load_dataset
ragas_dataset = load_dataset('json', data_files='data.json')
data = ragas_dataset['train']
3. 评估和可视化
使用从 ragas 导入的指标,用列评估数据集;问题、答案、上下文和基本事实。
result = evaluate(
data,
metrics=[
context_precision,
faithfulness,
answer_relevancy,
context_recall,
context_relevancy,
answer_correctness,
answer_similarity
],
raise_exceptions=False
)
print(result)
我评估示例数据集的结果如下:
{
'context_precision': 0.9000,
'faithfulness': 1.0000,
'answer_relevancy': 0.9245,
'context_recall': 1.0000,
'context_relevancy': 0.1061,
'answer_correctness': 0.6074,
'answer_similarity': 0.9396
}
使用 Plotly 将计算的指标结果可视化为雷达图。(如果您觉得其他情节可能是这个固有的,请发表评论……)
import plotly.graph_objects as go
data = {
'context_precision': result['context_precision'],
'faithfulness': result['faithfulness'],
'answer_relevancy': result['answer_relevancy'],
'context_recall': result['context_recall'],
'context_relevancy': result['context_relevancy'],
'answer_correctness': result['answer_correctness'],
'answer_similarity': result['answer_similarity']
}
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 官方文档:https://docs.ragas.io/en/stable/
-
Google Colab:https://colab.research.google.com/drive/1VJYdQ5u–6X5BWezZ_R3YGqphk29EpEd?usp=sharing
-
原文链接:https://medium.com/@mahimairaja/evaluating-your-rag-application-using-ragas-in-easy-3-steps-a59263d321be
来源:https://www.toutiao.com/article/7339737219839558198/?log_from=eb31978b6bc72_1714007286594
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:[email protected]
来都来了,走啥走,留个言呗~
** IT大咖说 |**** 关于版权******
**由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。**投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!
相关推荐
推荐文章
更多AI工具,参考Github-AiBard123,国内AiBard123