技术深度解析
Ragas的运行基于一个看似简单的原则:将RAG流水线的质量分解为可测量、原子化的组件。其核心架构围绕一组评估指标展开,每个指标针对特定的失败模式。主要指标包括:
- 忠实度(答案忠实度): 衡量生成的答案是否与检索到的上下文在事实上保持一致。它通过将答案分解为原子声明,并逐一对照上下文进行核查来实现。这能捕捉到LLM捏造文档中不存在事实的幻觉问题。
- 答案相关性: 评估答案对用户问题的回应程度。它计算问题与从答案生成的一组合成问题之间的余弦相似度。低分表明答案过于泛泛或偏离主题。
- 上下文精确度: 评估检索到的上下文是否相关且无噪声。它采用基于排名的指标:相关句子应出现在上下文的前面部分。这对于长文档至关重要,因为LLM可能被无关信息干扰。
- 上下文召回率: 衡量上下文是否包含回答问题所需的所有信息。它通过从真实答案中提取声明,并检查这些声明是否可归因于上下文来实现。低召回率表明检索系统遗漏了关键文档。
- 方面评判: 一个可配置的指标,使用LLM作为评判者来评估特定方面,如无害性、正确性或简洁性。这允许团队定义自定义质量标准。
Ragas通过两阶段流水线生成合成测试数据。首先,它接收文档语料库,并使用LLM基于内容生成合理的问题。然后,为这些问题生成真实答案。这一过程无需人工即可创建带标签的数据集。该框架支持单跳和多跳问题,适用于复杂推理任务。
在底层,Ragas结合使用嵌入模型(例如OpenAI的text-embedding-3-small、Cohere的embed-english-v3.0)和LLM(GPT-4、Claude、Llama 3)进行评分。用于评估的LLM选择会显著影响分数。Ragas提供了一个排行榜,展示不同评估LLM与人类判断的相关性。例如,GPT-4作为评估者在忠实度上实现了0.85的Spearman相关系数,而较小的模型如Llama-3-8B则达到0.72。
性能基准数据:
| 评估LLM | 忠实度(Spearman ρ) | 答案相关性(Spearman ρ) | 上下文精确度(Spearman ρ) | 每1K次评估成本 |
|---|---|---|---|---|
| GPT-4 | 0.85 | 0.82 | 0.78 | $12.00 |
| GPT-4o-mini | 0.80 | 0.79 | 0.74 | $2.50 |
| Claude 3.5 Sonnet | 0.83 | 0.81 | 0.76 | $8.00 |
| Llama-3-70B(通过Together) | 0.78 | 0.76 | 0.71 | $1.80 |
| Llama-3-8B(本地) | 0.72 | 0.69 | 0.65 | $0.10 |
数据要点: 使用较小模型时,与人类判断的相关性显著下降,但成本节省极为可观。预算紧张的团队可以使用较小的评估器进行快速迭代,并保留昂贵模型用于最终验证。GPT-4与Llama-3-8B在忠实度上0.13分的差距意义重大——这可能意味着能否捕捉到一次幻觉。
Ragas还提供了Python API和CLI,支持集成到CI/CD流水线中。GitHub仓库(`vibrantlabsai/ragas`)开发活跃,最近的提交增加了对多模态评估(图像+文本RAG)和流式评估(用于实时监控)的支持。14,000多颗星反映了强大的社区采用率,尽管该项目仍处于预1.0版本(当前版本0.2.x),意味着API可能发生变化。
关键参与者与案例研究
Ragas由vibrantlabsai创建,这是一个专注于LLM评估的小型研究工程师团队。该项目吸引了来自主要AI实验室和企业团队的贡献。关键参与者包括:
- Shahul Es(首席维护者): 一位曾在Hugging Face从事LLM安全研究的研究员。他对Ragas的愿景是让评估像软件工程中的单元测试一样标准化。
- Jithin James(核心贡献者): 专注于合成数据生成模块,这是Ragas最具创新性的部分。
- LangChain与LlamaIndex: 这两个框架均原生集成了Ragas。LangChain的`RagasEvaluatorChain`和LlamaIndex的`RagasEvaluator`允许用户直接将Ragas指标插入评估工作流。
案例研究:Cohere的RAG评估
企业AI平台Cohere采用Ragas对其Command R+模型进行基准测试,与竞争对手对比。他们在法律、医疗和金融领域运行了500个问题的评估。结果显示,Command R+在特定领域查询上的忠实度得分达到0.91,超过了GPT-4的0.88。这些数据被用于