V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
BlackSiao
V2EX  ›  OpenAI

使用 RAGAS 专业框架评估 RAG 应用时的体验

  •  
  •   BlackSiao · 15 天前 · 237 次点击
    前不久刚做了一个基于本地知识库的问答系统设计,也尝试了不同的大语言模型,Embedding 模型组合什么的,最终在如何评测系统的性能上犯了困,在中文社区短暂的搜索了一下,感觉大家讲的要么是自己的经验之谈,要么避重就轻,不好好完整的介绍这个框架的具体实现细节,接下来我将从如何使用这个框架和我使用时的问题和解决方式给出回答。

    本文所有的参考资料都来源于:
    1.https://docs.ragas.io/en/stable/getstarted/index.html
    2.Es, S., James, J.,Espinosa-Anke, L., & Schockaert, S. (2023). RAGAs: Automated Evaluation ofRetrieval Augmented Generation. arXiv preprintarXiv:2309.15217.

    一.如何使用
    按照官方的说明,使用这个框架需要用户提供四个用户参数,分别是:
    1. question:输入给你的 RAG 应用的问题
    2. answer:RAG 应用基于 question 生成的答案
    3. contexts:RAG 应用基于 question 检索到的上下文
    4. ground_truths: 对应 question 的参考答案
    在按照官方文档配置好这些参数后,就可以直接进行评估这四个关键指标了
    1.忠诚度( Faithfulness )
    2.上下文精确度(Context-precision)
    3.答案相关性(Answer-relevancy)
    4.上下文召回率(Context-recall)


    然而在实际计算中我发现,它无法将中文的问题很好的分割成陈述句,这计算出来的值就不对,但是转换为对应英文就对了,考虑到中英都是转换为带有语义的高维向量,就可以理解了。英文转的向量和中文转的向量,在空间上肯定离的远,因此这个框架只适用评估英文问题。
    例如这张图片所示: https://github.com/BlackSiao/LangChain-OpenAI-gradio/blob/main/img/%E5%BF%A0%E8%AF%9A%E5%BA%A6%E8%AE%A1%E7%AE%97%E9%97%AE%E9%A2%98.png


    2.同上所述,在实际应用中,即使我提供了评估所需的参数,然后在设置向量数据库为大 ChunkSize 的情况下,有时候会出现评估结果丢失的情况,虽然我们在进行测试的时候都是几百个数据测,丢失一二个数据好像没什么大碍,但是实在影响用户体验,并且我去网上搜了一圈也没有找到问题所在。只能通过我的实际使用发现,在设置文本切割时为小 ChunkSize 的时候评估指标都被计算出来了。而 ChunkSIze 越大,最后生成的结果丢失越严重。

    三.如果你也是使用 LangChain 框架搭建的本地知识库应用,可以参考我发布的测试代码进行测试: https://github.com/BlackSiao/LangChain-OpenAI-gradio/blob/main/%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE/RAGAs%E6%B5%8B%E8%AF%95.py
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3673 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.