AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


使用RAG技术构建企业级文档问答系统之使用GPT4进行评估
发布日期:2024-07-29 23:40:13 浏览次数: 1875 来源:超乎想象的科技圈


上篇内容介绍了如何使用TruLens进行RAG效果评估,本文介绍如何使用GPT-4进行打分,这也是目前常用的一种RAG自动化评估方法,比较适合有参考答案的RAG系统构建项目

虽然标题是说使用GPT4进行评估,但其实下文介绍的方法可以使用千问、智谱、百川等提供的模型,甚至Ollama本地部署的模型。实际情况中,大家可以根据实际情况灵活选择,总的来说是要选择相对较强的模型,因为要靠这个指标指导后续迭代方向。本文实际会使用GPT-4o-mini进行打分,使用Deepbricks所提供的服务,它可以使用支付宝付款,而且价格会比官方便宜不少

本文代码已开源,地址在:https://github.com/Steven-Luo/MasteringRAG/blob/main/evaluation/02_gpt_evaluation.ipynb

1 环境准备

1.1 安装Python依赖

pip install langchain_openai

版本为:0.1.7

1.2 准备测试集和预测结果

本次使用下图所示的样例数据进行测试,总共100条


字段介绍:
  • uuid:所使用文档的UUID,便于评估检索效果

  • question:问题

  • qa_type:问题类型,共有两种,分别是detailed和long_context

    • detailed:用于模拟实际情况中的具体问题,例如具体的增长率,具体的数字

    • long_text:用于模拟实际情况中,需要较长上下文,甚至需要综合整篇文档的问题,例如“文本主要内容是什么”、多步骤的操作流程等

  • ref_answer:参考答案

  • gen_answer:RAG生成的答案,打分主要是对这个结果进行打分

测试集,是使用下文介绍的方法构建的,感兴趣的朋友可以查看

使用RAG技术构建企业级文档问答系统之QA抽取gen_answer是对之前介绍的基础流程效果的打分,感兴趣的朋友可以参考下文:

使用RAG技术构建企业级文档问答系统之基础流程

2 示例代码

需要换用千问、智谱等API,只需要替换base_url和相应的api_key即可,需要使用Ollama,可以使用注释部分的代码

   ChatOpenAI

judge_llm = ChatOpenAI(
    api_key=os.environ[],
    base_url=os.environ[],


    model_name=
)









 (question, ref_answer, gen_answer):







    prompt = 



{{question}}




{{ref_answer}}




{{gen_answer}}


.replace(, question).replace(, (ref_answer)).replace(, gen_answer).strip()
    result = judge_llm.invoke(prompt).content
 result

打分

 = {}

 idx, row in tqdm(prediction_df.iterrows(), =len(prediction_df)):
 = row[]
 question in score_dict:

 = answer_dict[question][]
 = answer_dict[question][]
    score_dict[question] = evaluate(question, ref_answer, gen_answer)

prediction_df.loc[:, ] = prediction_df[].apply(lambda q: score_dict[q])

检查一下模型响应,是不是按Prompt要求返回了

prediction_df[].unique()

array(['是', '否'], dtype=object)

计算最终得分

prediction_df.loc[:, ] = prediction_df[].replace({: , : })
_ = prediction_df.pop()
(prediction_df[].mean())

0.74

如果你觉得我的文章对你有用的话,欢迎点赞、关注?


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询