evalscope/docs/zh/blog/RAG/RAG_Evaluation.md

79 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(rag-evaluation)=
# RAG 评测调研:框架、指标和方法
## RAG检索增强生成流程
![RAG Pipeline](images/RAG_Pipeline_1.png)
## 框架
### 1. **LlamaIndex**
* [多模态RAG评测教程](https://docs.llamaindex.ai/en/stable/examples/evaluation/multi_modal/multi_modal_rag_evaluation/)
> 简介: 介绍了如何评测多模态检索生成RAG系统重点展示了如何使用llama-index库中的评测工具对检索器和生成器进行评测。通过美国手语ASL字母表的图像和文本描述作为用例演示了如何加载数据、构建索引、设置RAG系统并进行检索和生成评测。
### 2. **LangChain**
* [多模态(图文)RAG教程](https://github.com/langchain-ai/langchain/blob/master/cookbook/Multi_modal_RAG.ipynb)
* [半结构化(图文表)多模态RAG教程](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)
* Multi-modal RAG
![Multi-modal RAG](images/MM_RAG_LangChain_1.png)
### 3. **Ragas**
* [GitHub](https://github.com/explodinggradients/ragas)
* [Docs](https://docs.ragas.io/en/latest/getstarted/index.html)
* 教程:[Evaluating RAG Applications with RAGAs](https://towardsdatascience.com/evaluating-rag-applications-with-ragas-81d67b0ee31a)
> 简介: RAGAs是一个用于评测检索增强生成RAG应用的评测框架它的核心目标是提供一套综合性的评测指标和方法以量化地评测RAG管道(RAG Pipeline)在不同组件层面上的性能。RAGAs特别适用于那些结合了检索Retrieval和生成Generation两个主要组件的RAG系统支持Langchain 和 Llama-Index。
* **评测流程**
1. 开始启动准备和设置RAG应用的过程。
2. 数据准备:加载和分块处理文档。
3. 设置向量数据库:生成向量嵌入并存储在向量数据库中。
4. 设置检索器组件:基于向量数据库设置检索器。
5. 组合RAG管道结合检索器、提示模板和LLM组成RAG管道。
6. 准备评测数据:准备问题和对应的真实答案。
7. 构建数据集:通过推理准备数据并构建用于评测的数据集。
8. 评测RAG应用导入评测指标并对RAG应用进行评测。
9. 结束:完成评测过程。
* **评测体系**
* 无参考评测RAGAs最初设计为一种“无参考”评测框架意味着它不依赖于人工注释的真实标签而是利用大型语言模型LLM进行评测。
* 组件级评测RAGAs允许对RAG管道的两个主要组件——检索器和生成器——分别进行评测。这种分离评测方法有助于精确地识别管道中的性能瓶颈。
* 综合性评测指标RAGAs提供了一系列评测指标包括上下文精度(Context Precision)、上下文召回(Context Recall)、忠实度(Faithfulness)和答案相关性(Answer Relevancy)。这些指标共同构成了RAGAs评分用于全面评测RAG管道的性能。
### 4. **RAGChecker**
* [GitHub](https://github.com/amazon-science/RAGChecker)
> 简介: RAGChecker 是一个高级自动评测框架旨在评测和诊断检索增强生成RAG系统。它提供了一套全面的指标和工具用于深入分析 RAG 性能。该框架包括整体评测、诊断指标、细粒度评测、基准数据集和元评测。
### 5. **TruLens**
* [GitHub](https://github.com/truera/trulens)
* [Docs](https://www.trulens.org/trulens/getting_started/quickstarts/quickstart/)
> 简介: 开发者构建原型后通过TruLens进行监测和记录指定所需的反馈并在用户界面中迭代和比较应用版本支持Langchain 和 Llama-Index。
### 6. **FlagEmbedding**
* [GitHub](https://github.com/FlagOpen/FlagEmbedding)
* 评测教程 [Evaluation Tutorial](https://github.com/FlagOpen/FlagEmbedding/blob/master/Tutorials/4_Evaluation)
> 简介: FlagEmbedding是一个专注于检索增强型大型语言模型LLMs的项目包含多个子项目如长文本LLM、微调LM、嵌入模型、重排模型和基准测试。
### 7. **Continuous Eval**
* [GitHub](https://github.com/relari-ai/continuous-eval)
> 简介: continuous-eval 是一个开源软件包旨在为基于大型语言模型LLM的应用程序提供数据驱动的评测。它通过模块化评测、综合度量库、利用用户反馈、合成数据集生成等功能支持对LLM应用进行细粒度的评测。该工具还支持自定义指标和批量处理优化以及通过Relari Cloud生成合成数据集。
## 相关文章
* [Awesome-RAG-Evaluation](https://github.com/YHPeter/Awesome-RAG-Evaluation/blob/main/README_cn.md)
* [RAG 综述解读](https://zhuanlan.zhihu.com/p/673392898)
* [热门RAG文章摘译](https://zhuanlan.zhihu.com/p/673392898)
* [RAG Survey](https://arxiv.org/abs/2312.10997): Retrieval-Augmented Generation for Large Language Models: A Survey