【大模型行业应用入门系列】NO.11
【摘要】伴随着 LLM 日益广泛的应用,如何准确评估其输出质量,已经成为了一个亟待解决的关键问题。全面科学的LLM评估体系,不仅能够客观衡量系统的输出质量,更重要的是能够为持续优化和完善提供有力的价值支撑。
【作者】李杰,专注于Java虚拟机技术、云原生技术领域的探索与研究。
*了解本系列和阅读系列文章请看本文末,欢迎关注。
在当前人工智能的浪潮中,大型语言模型(LLM)无疑已成为炙手可热的焦点。凭借其惊人的语言生成能力,LLM 正在为各行各业带来前所未有的创新机遇。无论是自动问答、内容生成、机器翻译,还是文本摘要和分析等领域,LLM 都展现出了令人兴奋的应用前景。然而,伴随着 LLM 日益广泛的应用,如何准确评估其输出质量,已经成为了一个亟待解决的关键问题。
适当的LLM 评估指标不仅能够帮助我们客观衡量模型的性能表现,更重要的是,它们将为 LLM 的持续优化和发展提供宝贵的反馈和指引。只有通过全面、科学的评估,我们才能真正洞见 LLM 输出中存在的不足之处,找到改进的方向,从而不断提升其在特定任务和领域中的能力水平。
虽然评估LLM(大型语言模型)的输出对于那些希望提供强大的 LLM 应用程序的人来说无疑是一项必不可少的任务,但对于大多数人而言,LLM评估仍然是一个具有挑战性的领域。无论我们是通过 Fine-Tuning(微调)预训练模型,还是采用 RAG(检索增强生成)系统来提升上下文相关性从而改善模型输出的准确性,了解如何为特定的使用场景开发和决定合适的LLM评估指标集对于构建健壮可靠的LLM评估流程至关重要。
1. 为什么需要LLM评估?
在当前的数字时代,大型语言模型(LLM)正成为开发者和商业领袖为消费者创造新价值的利器。凭借其强大的语言理解和生成能力,LLM可以提供个性化建议、在结构化和非结构化数据之间进行高效翻译、对海量信息进行全面总结,并展现出更多令人惊叹的应用潜力。
然而,随着LLM驱动的应用程序日益普及,衡量和评估这类应用的性能表现变得前所未有的重要。传统的用户反馈或其他" 本质现象 "往往 存在固有缺陷 ,且无法充分反映现实世界中的 各种 复杂 场景 情况。即使可以获取人工标注数据,其成本也往往较为高昂。此外,LLM应用系统本身的复杂性也使得评估过程面临一系列重大挑战。
有鉴于此,如何构建高质量的LLM辅助评估机制便显得尤为迫切和必要。一个全面科学的LLM评估体系,不仅能够客观衡量系统的输出质量,更重要的是能够为持续优化和完善提供有力的价值支撑。
LLM 模型评估参考示意图
2. 什么是LLM评估指标?
大型语言模型(LLM, Large Language Model)作为一种强大的工具,被广泛应用于各种任务,例如生成文本、翻译语言以及编写不同类型的创意内容。然而,为了确保这些模型能够实现其预期目的和目标,对LLM进行评估是至关重要的。
LLM 评估指标是根据特定标准评估 LLM 输出质量的评分机制。这些指标不仅可以用于比较不同 LLM 的表现,还可以用于跟踪同一模型随时间的进展,或识别模型可以改进的领域。通过使用这些评估指标,研究人员和开发者可以获得关于模型性能的详细反馈,从而进行优化和调整。
LLM 评估指标参考架构
通常来讲,评估一个LLM 应用程序的表现,关键在于设计与应用场景高度相关的定制化评估指标。打个比方,假设我们需要构建一个总结“热点文章”的LLM系统,那么评估指标自然需要重点关注以下几个方面,具体可参考:
首先,生成的摘要是否包含了原始文本中足够的核心信息?毕竟一个无法引人入胜的摘要如果遗漏了大量关键内容,即使措词优美也将失去存在的意义。
其次,摘要是否与原文产生了任何矛盾或者错误引导?对于热点新闻报道这一信息高度敏感的领域而言,准确性是基本的底线要求。
再者,如果该系统采用了基于 RAG ( 检索-生成 )的 架构,那么检索上下文的质量同样是不可或缺的评判标准,因为上下文直接决定了LLM生成输出的前提基础。
通常而言,优秀的LLM评估指标应当具备以下三个核心特质,具体如下:
1、量化性
首先, LLM评估指标必须以 “ 量化 ” 的分数形式,对 当前 的任务进行严格打分。基于此 种方式 , 我们能够设置最低及格分数线, 从而有利于 判断我们的LLM应用程序是否"足够出色"。同时,也便于我们追踪这些分数在迭代优化实现过程中如何随时间变化,从而监控改进效果。
2、可靠性
其次是可靠性。尽管LLM输出本身具有不可预测的特点,但优秀的评价指标理应足够稳健和一致,避免出现脆弱的缺陷。尽管像G-Eval这样基于LLM的评估方法(LLM-Evals)相比传统打分方式更加准确,但它们往往存在不够一致的问题,这正是大多数LLM-Evals所欠缺的地方。因此,提高评估指标的鲁棒性、确保其能够得出稳定一致的结论,是一个亟须解决的重要课题。
3、准确性
诚然 可靠性固然重要,但如果所得评分与模型真实表现相去甚远,那可靠性也将失去意义。事实上,使优秀的评估指标变得卓越非凡的秘诀,就在于最大限度地贴近人类的期望和判断标准,确保评估结果能够真实反映LLM应用的实际表现水平。
因此,构建出符合上述三个特征的定制化评估指标,对于充分发挥LLM在不同领域的潜能至关重要。毕竟,即便是世界上最强大的模型,如果缺乏针对性且合理的评判体系,其实际价值也将大打折扣。
3.LLM评估指标的选择
在LLM (大型语言模型)的浪潮中,合理选择与应用场景高度贴合的评估指标,显然是发挥LLM潜能的关键一环。毕竟,即便是最先进的LLM,如果缺乏针对性的评判体系,其实际价值也将大打折扣。
评估指标的优选往往需要结合LLM应用程序的具体用例和架构来审慎考虑。以开发基于检索-生成(RAG)架构的客户支持聊天机器人为例,如果它建立在OpenAI的GPT模型之上,那么我们就需要引入诸如"忠诚度"、"答案相关性"、"上下文准确度"等一系列RAG指标。这些指标能够全面评估检索模块的上下文质量,以及生成模块对上下文的理解和利用程度,对保证系统的整体服务水平至关重要。
而如果我们正在微调自有的大型模型,比如说规模达7B参数的Mistral,那么除了上述RAG指标外,我们还需要引入"偏差"等指标,以评估LLM在各种应用场景下的公平性和包容性。这不仅有助于消除模型中可能存在的潜在偏见,更能增强其决策的透明度和可解释性,有利于赢得用户的信任。
除此之外,不同的应用场景还可能需要特定的量化指标。比如对于新闻文章摘要任务,我们需要评估摘要是否包含足够信息、是否存在内容矛盾等;而对于任务型对话系统,则需要检验其完成特定任务的成功率。
可以看出,量身定制的评估体系对LLM应用的成败至关重要。一套科学合理且全面的评价指标,不仅能够指导系统的优化迭代,还能为其投入实际应用提供重要的参考依据 。
3.1基于RAG指标
检索增强生成(RAG) 是一种前沿的自然语言处理 (NLP) 方法,结合了检索模型和生成模型的优势,可在各种任务上实现卓越的性能。为了有效评估 RAG 模型的性能,开发了多种指标来评估其各个方面。
1、Faithfulness (F)-忠诚度
在RAG (检索-增强生成)架构的评估体系中,忠实度(Faithfulness)是一个极为关键的指标,专门用于衡量生成模块输出的答案与检索到的上下文知识段落之间的符合程度。
忠实度指标的设计理念在于,生成模块在利用检索模块获取的相关知识时,应当尽可能贴近原始上下文信息,忠实再现其中蕴含的事实和观点,而不是过度曲解或者完全偏离上下文轨道。这一点对于RAG架构能否充分发挥"检索增强"的优势至关重要。
具体来说,忠实度指标会从多个维度对生成答案进行评估,其中包括但不限于:
1) 信息覆盖面:生成答案是否包含了上下文中的所有关键信息点,没有遗漏
2) 事实一致性:答案与上下文所述事实是否高度吻合,不存在矛盾或偏差
3) 观点忠实性:答案是否准确传达了上下文的中心观点,没有歪曲或断章取义;
4) 语义相似度:答案与上下文在语义上的相似程度,有无明显脱节。
除了考量答案与上下文的符合程度外,优秀的忠实度评估体系往往还会引入对上下文质量的检验,确保生成模块所参考的上下文知识本身就是准确无误的。因为即便生成输出与上下文高度一致,如果上下文本身存在问题,那最终的答案同样也难言信服。
另一个值得重视的维度,是评估答案对上下文的"过度依赖"程度。很多时候,生成模块对于上下文的利用会存在两个极端:
一是完全拷贝上下文,丧失了推理能力;二是完全无视上下文,单凭自身知识生成。优秀的忠实度指标应该能够平衡这两种极端,确保生成模块在充分利用上下文知识的同时,也保留了自主思考和推理的能力。
2、Context Recall (CR)-上下文回忆
作为衡量系统整体性能的又一重要指标。上下文回忆(Context Recall)是专门用于量化检索模块获取的相关知识在多大程度上被生成模块实际利用和参考。
上下文回忆率的设计理念,源于对RAG架构中两个模块协同的审视。一个优秀的RAG系统,不仅需要检索模块准确获取与任务高度相关的上下文知识,同时生成模块也应当能够充分吸收和消化这些上下文信息,并在生成答案时予以恰当应用。
只有两个模块的功能相互衔接、相得益彰,RAG架构才能最大限度地发挥出其"检索增强"生成的独特优势。而上下文回忆率正是评判这一点的重要依据。
具体来说,上下文回忆率的计算过程包括以下几个关键步骤 ,具体可参考如下:
首先,针对输入的问题,RAG系统会从知识库中检索出一组最相关的上下文段落作为支撑;
其次,使用自然语言处理和信息检索等技术,识别和提取上下文中的关键信息元素,构建"参考答案集合"RAS;
再次,将生成模块的输出答案与RAS进行精细比对,统计生成答案中包含了多少比例的RAS信息元素;
最后,基于上述统计结果给出上下文回忆率的量化评分。
从中不难看出,一个高质量的上下文回忆率评估体系,不仅需要对检索和生成模块有深入的分析能力,更需要对问答任务本身有充分的理解,才能够精准识别和提取上下文中真正关键的信息元素。
此外,由于自然语言的多样性和复杂性,上下文回忆体系还需要具备很强的泛化能力,可以应对各种表述方式和语义变体。这不仅需要语义理解技术的支撑,也需要借鉴语言学和认知科学等领域的理论知识。
3、Context Precision (CP)-上下文精度
在检索-增强生成(RAG)架构的评估体系中,当我们探讨上下文精度(Context Precision)这一指标时,无疑检索上下文与任务实际相关性是重中之重。
一个高度精准的检索器,应当能够从庞大的语料库中准确捕捉到与输入问题高度相关的上下文知识片段,并将其置于检索结果的顶端,为生成模块提供优质的"外部记忆"支持。反之,如果检索出的上下文大量包含与任务无关或甚至存在干扰的噪音信息,必将极大降低整体RAG系统的最终质量。
因此,通过对比检索器获取的上下文与实际相关度之间的契合程度,上下文精度指标可以有效体现出检索模块的优劣水平。一个较高的上下文精度评分意味着,检索器确实有能力识别出高质量的、与输入问题高度关联的语义信息,并予以优先呈现。而一个较低的分数,则说明检索器在这方面存在明显的不足和改进空间。
因此,我们可以说,高质量的上下文精度评估体现了检索模块和生成模块两者之间紧密协作、相互促进的关系。既要求检索器为生成器提供优质上下文支持,又催促生成器善于从噪音中识别实质内容。只有二者协同发力,RAG架构的独特优势才能最大限度地体现。
4、Answer Relevance (AR)-答案相关性
相对比前几项指标,答案相关性(Answer Relevance)无疑是一个更为重要的指标,用于评价生成模块的输出质量。它旨在判断生成答案中,究竟有多大比例是与原始输入问题真正相关、切题的内容。
毕竟,RAG系统的终极目标就是根据提出的问题,生成高度准确、简洁、专业的答复。如果生成模块的输出存在大量与问题无关的冗余内容,或是完全回避了问题核心,那无疑意味着系统的整体性能严重受损。
因此,通过对比生成答案与输入问题之间的语义关联程度,答案相关性指标可以较为直观地反映出RAG生成模块的实际表现水平。一个较高的分数意味着,模型确实具备了准确理解问题要旨、聚焦关键信息的能力;而一个较低的分数则说明,模型在这方面存在明显的不足和提升空间。
在具体的评估过程中,常见的做法是邀请领域专家或经过训练的人工评判者,审视生成答案中的每一个语义单元(通常是句子),判断其与输入问题的相关联程度。
随后,统计出所有被评定为"相关"的语义单元占据答案总长度的比例,即得到量化的答案相关性评分。这一评判流程虽然耗费人力,但却相对客观可信,因此被业界广泛接受和采纳。
3.2基于Fine-Tuning指标
Fine-Tuning(微调)是一种针对预训练语言模型进行进一步训练的技术,以使其适应特定任务或领域。在Fine-Tuning过程中,可以使用多种指标来评估模型的性能和调整训练的方向。
1、Hallucination-幻觉
在对大型语言模型进行Fine-Tuning优化时,Hallucination问题是需要高度重视的一个关键指标。Hallucination指的是模型在生成文本时,产生一些与训练数据、任务目标完全无关的虚假或无根据的内容。这种情况通常发生在模型经过微调后,过度适应了特定的数据分布,导致输出偏离了真实信息分布的情况。
Hallucination问题严重影响了模型的可靠性和安全性,尤其在一些关键应用领域,如医疗诊断、金融决策等,虚假信息的产生可能会造成严重的后果。因此,在对大型语言模型进行Fine-Tuning时,我们必须高度重视并有效控制Hallucination的发生。
评估Hallucination的常见方法包括人工审查和基于基准的自动评估。人工审查需要领域专家仔细检查模型输出,判断是否存在虚假或无关的内容。基于基准的方法则通过设计一些预定义的测试样例,检测模型在特定场景下是否会产生Hallucination。这两种方法各有优缺点,需要根据具体情况选择合适的方式。
为了缓解Hallucination问题,常见的策略包括:扩充训练数据覆盖范围,增强模型对真实分布的理解;采用稳健的Fine-Tuning方法,如正则化、对抗训练等;引入外部知识或先验约束,约束模型输出的合理性;以及在部署阶段进行持续监控和人工审核,及时发现并纠正Hallucination。
2、Kullback-Leibler Divergence-KL 散度
KL散度(Kullback-Leibler Divergence)作为一种非常重要的评估指标,主要用于衡量模型生成的结果与理想目标分布之间的差异程度。这种度量方式在生成式任务和概率分布比较中都有广泛应用。
KL散度的核心思想是,计算两个概率分布之间的相对熵差异。具体来说,它可以衡量一个概率分布P(x)相对于另一个参考分布Q(x)的信息损失程度。数值越大,表示P(x)与Q(x)之间的差异越大。
在生成式任务中,我们通常希望模型生成的结果尽可能接近理想的目标分布。此时,我们可以使用KL散度来评估模型输出与期望分布之间的差距。这对于提升生成质量和可靠性非常有帮助。
在Fine-Tuning(微调)过程中,KL散度也扮演着重要角色。通过最小化模型生成结果与期望分布之间的KL散度,我们可以促使模型输出逐步趋近于理想状态,从而提升微调后的性能。这种基于分布差异的优化方式,能够有效指导模型朝着预期方向改进。
此外,KL散度还广泛应用于概率分布的比较和分析。我们可以利用它来评估两个概率分布之间的相似度和差异,这对于一些概率模型的评估和校准非常有价值。
3、F1 Score-F1分数
F1分数是一个非常有用的评估指标,能够平衡模型的精确率和召回率,为我们提供一个更加综合的性能评估。
精确率和召回率作为两个常用的性能指标,但它们各有侧重。精确率关注模型正确预测的比例,而召回率关注模型成功识别的比例。这两个指标之间常常存在一定的权衡。例如,我们可以通过提高阈值来提高精确率,但同时也会降低召回率;反之亦然。
F1分数作为精确率和召回率的调和平均值,能够很好地平衡这两个指标。它综合考虑了模型在精确和召回方面的表现,给出一个综合性的打分。数值越高,代表模型在两个指标上的综合表现越优秀。
参考:
1.
2.
3.
暂无评论内容