AI 文摘

使用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

可关注我们的公众号:每天AI新工具