Datawhale llm-universe

系统评估和优化

如何评估LLM应用

验证评估的一般思路

使用LLM构建应用程序步骤:

  • 在一个到三个样本中调试Prompt,尝试在这些样本上起作用
  • 对系统进一步测试,这些例子不能通过Prompt或者算法的解决,需要有机的添加其他的难以处理的例子
  • 将足够多的例子添加到逐步扩大的开发集中,用手动运行每一个例子测试Prompt

大模型的评估方法

当验证集较小的时候使用人工评估,随着验证集扩张,体量会不断的增大,以至于人工评估时间和人力成本会扩大到无法接受的程度,所以需要使用自动评估的方法,自动评估系统对每一个验证案例的输出质量,从而评估整体的性能

量化评估

对每一个验证案例进行打分,最后计算所有案例的平均分

多维评估

从多个维度上进行打分,对每一个维度可以设置不同的量纲
评价维度

  • 知识查找正确性
  • 回答一致性
  • 回答幻觉比例
  • 回答正确性
  • 逻辑性
  • 通顺性
  • 智能性
构造客观题

客观题的评估很简单,主观题判别较为困难,构造客观题计算标准答案的相似度

计算答案相似度

使用人工构造一个标准答案,使用模型回答计算与标准的回答的相似度,BLEU
存在的问题:

  • 需要人工构造标准答案
  • 相似度计算存在问题
  • 通过计算与标准答案的一致性灵活性差
  • 无法评估回答智能性
使用大模型进行评估

存在的问题:

  • 目标是迭代改进Prompt以提升大模型的表现,选用的评估大模型要优于我们使用的大模型的基座
  • 大模型具有强大的能力,但是也存在能力的边界。问题和回答太复杂或者知识片段太长,或者评估维度太多,也会存在错误评估,错误格式,无法理解指令的情况

解决方法:

  • 改进Prompt Engineering,迭代优化评估Prompt Engineering,遵守PE的基本准则,核心建议
  • 拆分评估维度,如果评估维度过多,模型可能会出现格式错误导致无法解析
  • 合并评估维度,如果评估维度太细,模型可能无法理解以至于评估不正确
  • 提供详细的评估规范
  • 提供少量的示例
混合评估

混合评估方法:

  • 客观正确性。针对固定的正确的答案,模型可能给出正确的回答
  • 主观正确性,对于没有固定正确的答案,模型给出正确的,全面的回答
  • 智能性,智能性指模型的回答是不是足够的拟人化
  • 知识查找正确性,知识查找的正确性针对特定的问题,从知识库检索得到的知识片段是不是正确的,回答是不是正确

评估优化生成的部分

评估的目的是更好的优化应用效果,要优化应用性能,需要结合评估结果,对评估的Bad Case进行拆分,对每一个部分做出评估和优化
RAG全称为检索增强生成,检索和生成两个部分。检索是保证用户根据query得到对应的答案片段,生成是保证系统在得到答案可以发挥大模型的能力生成一个满足用户要求的答案

提升直观回答质量

改进Prompt,构造bad case,针对bad case,改进Prompt,要求答案按照几点进行分点标号

表明知识来源,提高可信度

附上原文来源,存在的问题上下文的增加和回复速度降低

构造思维链

大模型很好的理解执行指令,模型存在一些能力限制,例如:大模型的幻觉,无法理解的较为复杂的指令,无法执行复杂的步骤。我们可以构造一个两步的思维链,消除大模型的幻觉

增加指令解析

两种解决方法:

  • 设置一个LLM来理解指令,判断指令需要执行什么工具,针对需要调用的工具执行,这些工具是基于不同的Prompt Engineering的LLM

评估优化检索的部分

评估检索效果

在这里插入图片描述
针对用户的Query,系统将其转化为向量,并在向量库中进行匹配。检索的核心在找到存在于知识库中,可以正确回答用户query的文本。因此可以定义一个直观的准确率评估检索效果:对于N个给定的query,保证每一个query都在知识库中,加上对于一个query都找到k个文本片段,如果正确答案在这k个文本中,我们认为系统的检索准确率可以简单的计算为:
accuracy=MNaccuracy=\frac{M}{N}accuracy=NM
通过上面的准确率,衡量系统的检索能力。但是上面计算方法还是存在不足

  • 有的 query 可能需要联合多个知识片段才能做出回答,对于这种 query,我们如何评估?
  • 检索到的知识片段彼此之间的顺序其实会对大模型的生成带来影响,我们是否应该将检索片段的排序纳入考虑?
  • 除去检索到正确的知识片段之外,我们的系统还应尽量避免检索到错误的、误导性知识片段,否则大模型的生成结果很可能被错误片段误导。我们是否应当将检索到的错误片段纳入指标计算?

优化检索思路

知识片段被割裂导致答案丢失
对于格式统一的,组织清晰的文档,可以针对构建合适分割规则
对于格式混乱的,无法形成统一的分割文档,可以考虑纳入一定的人力进行分割

query提问需要长上下文概括问答
优化知识库的构建方式,针对此类的文档,使用LLM对文档进行概括总结,预设问题让LLM作出回答,从而将此类问题的答案预先填入知识库作为单独的chunk,解决该问题

关键词误导
query中有多个关键词,其中次要的关键词匹配影响主关键词
对用户的query改写,对用户的query,通过LLM将用户的query改写为一种合理的形式,去除次要关键词,错字,漏字影响
匹配关系不合理
RAG核心假设,假设我们匹配到强相关文段是问题对应的答案文本段,但是很多向量模型构建的是配对的语义相似而不是因果的语义相似
解决思路:优化向量模型或者构建倒排索引。倒排索引,针对知识库的每一个知识片段,构建一个可以表征该片段的内容但是query相对相关性更准确的索引,在检索匹配索引和query的相关性而不是全文,从而提高匹配关系准确性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值