测试基于LLM的应用需要专门的评估技术——如今被称为“评估(evals)”——以确保它们符合性能和可靠性标准。
大型语言模型(LLM)应用的评估因其独特性而具有内在挑战性。与传统软件应用不同,传统软件的输出具有确定性和可预测性,而LLM即使在输入相同的情况下,每次运行生成的输出也可能不同。这种可变性源于这些模型的概率特性,这意味着对于任何给定的输入,都没有单一的正确输出。因此,测试基于LLM的应用需要专门的评估技术——如今被称为“评估(evals)”——以确保它们符合性能和可靠性标准。
为何评估如此关键?
AI评估之所以至关重要,原因众多。从广义上讲,它们的价值主要体现在四个关键方面:
- 建立性能标准 评估有助于为LLM系统建立性能标准,通过为设计选择和超参数提供方向性结果来指导开发过程。通过设定基准,开发人员可以衡量不同方法的有效性,并做出明智的决策来提升模型的性能。
- 有助于确保输出的一致性和可靠性 一致性和可靠性对于LLM系统的实际部署至关重要。定期评估有助于识别和缓解可能导致不可预测或错误输出的问题。确保系统产生稳定且可靠的结果,能够在用户和利益相关者中建立信任和信心。
- 提供指导改进的见解 持续评估提供了关于LLM系统性能的宝贵见解。它突出了系统表现出色的领域和存在不足的地方,为有针对性的改进提供了机会。通过了解模型的优势和劣势,开发人员可以优化系统以获得更好的性能。
- 支持回归测试 当对LLM系统进行更改时——无论是在提示词、设计选择还是底层算法方面——回归测试变得至关重要。评估确保这些更改不会降低输出质量。它验证新的更新是否维持或增强了系统性能,防止意外后果并保持应用程序的完整性。
LLM系统的评估大致可分为两类:部署前评估和生产环境评估。每一类都有其独特的目的,并且在开发和部署生命周期的不同阶段都至关重要。
部署前评估
部署前评估侧重于在开发阶段对LLM系统进行评估。这个阶段对于在系统上线前塑造其性能和可靠性至关重要。以下是部署前评估必不可少的原因:
- 性能测量和基准测试 在开发阶段,评估LLM系统可以清晰地衡量其性能。通过使用各种指标和评估技术,开发人员可以为系统的能力设定基准。这种基准测试有助于比较模型的不同版本,并了解各种架构和设计选择的影响。通过及早发现优势和劣势,开发人员可以做出明智的决策,以提高效率、准确性和整体性能。
- 确保无回归更新 随着系统的持续开发,代码库、模型参数或数据的变化可能会无意中导致回归——性能或准确性的非预期下降。定期的部署前评估有助于确保每次修改都能提高或至少维持性能标准。
如何进行部署前评估
- 创建用于评估的基准数据集 评估LLM系统的第一步,或许也是最关键的一步,是创建一个强大的基准数据集。该数据集包含由专业人类用户生成的一组问答对。这些本质上充当了评估LLM性能的基准。
基准数据至关重要,因为它提供了一个参考点,可以将模型的输出与之进行比较。它应该代表最终用户在生产环境中可能提出的问题类型,并包括各种可能的问题,以涵盖不同的场景和背景。
创建基准数据需要对业务领域和用户行为有深刻理解的人类专家的专业知识。这些专家能够准确预测用户会提出的问题类型,并提供最佳答案。尽管LLM具有先进的能力,但它们可能缺乏这种理解和上下文知识。
- LLM能否创建基准数据? LLM可以协助生成基准数据,但不应完全依赖它们来完成这项任务。原因如下:
它们不理解用户行为:LLM不理解用户行为和特定业务领域的上下文。它们可以生成看似合理的问题和答案,但这些可能无法准确反映用户会提出的查询类型或对用户最有用的答案。
它们需要人类监督:人类专家有必要审查和完善由LLM生成的问题和答案。他们确保数据集是真实的、上下文准确的,并且对最终用户有价值。
确保质量和相关性至关重要:基准数据集的质量至关重要。人类监督保证问题和答案不仅相关,而且符合业务标准和用户期望。
例如,对于一个检索增强生成(RAG)应用程序,一个好的基准数据集除了查询和答案之外,还会提供知识库中与查询相关的不同段落。
- 确定LLM系统的相关指标 选择适当的评估指标对于评估LLM系统的性能至关重要。指标的选择取决于LLM系统的具体用例,因为不同的应用可能需要测量模型性能的不同方面。
以下是一些评估指标及其定义:
- 答案相关性:该指标衡量所提供的答案与给定问题的相关性。它评估响应是否直接针对查询并提供有用且相关的信息。重要性在于,确保模型的答案具有相关性有助于维持用户对系统的满意度和信任。不相关的答案可能会让用户感到困惑或沮丧,降低应用程序的价值。
- 连贯性:连贯性评估生成文本的逻辑流程和清晰度。它检查响应在整体上是否内部一致且有意义。重要性体现在,连贯的响应更易于用户理解和跟进。对于客户支持或教育工具等应用程序,清晰度和可理解性至关重要,因此该指标非常关键。
- 上下文相关性:该指标衡量模型的输出与所提供的更广泛上下文的契合程度。它评估响应是否适当地考虑了周围的文本或对话。其重要性在于,上下文相关性确保模型的响应在给定的上下文中是适当且有意义的。这对于维持对话或内容的连续性和相关性至关重要。
- 责任性指标:责任性指标评估模型输出的伦理和适当性。这包括检查偏见、有害内容以及是否符合伦理标准。确保AI的负责任使用对于防止错误信息、有害刻板印象和不道德内容的传播至关重要。这些指标有助于建立信任,并确保LLM系统遵守社会和伦理规范。
- RAG评估指标:RAG三元组包含以下指标(此处因原文显示问题暂不展开具体内容)。- 特定任务指标:虽然上述示例指标可跨用例和任务使用,但还需要一些更适合所执行特定任务的指标。特定任务指标评估模型在特定任务上的性能,专为应用程序的特定要求量身定制。例如,用于摘要、翻译和情感分析的指标。
- 为何需要特定任务指标:大多数评估指标是通用的,提供对LLM系统性能的广泛评估。然而,要了解系统执行特定任务的好坏,需要为手头任务量身定制的自定义指标。特定任务指标提供有关模型在实现特定功能方面的有效性的详细见解,确保LLM系统满足每个应用程序的独特要求。
例如,对于抽象摘要任务,Kryscinski等人(2019)提出了相关指标(此处因原文显示问题暂不展开具体内容)。
- 根据基准数据计算每个已定义指标的分数 评估LLM系统的下一步是根据基准数据计算每个已定义指标的分数。对于基准数据集中的每个问题,使用LLM系统生成的答案来计算相应的指标。如果一个或多个指标产生不令人满意的结果,对LLM系统进行必要的调整以改进这些指标。像DeepEval和Relari-ai这样的库使用自然语言处理(NLP)库将LLM响应与基准数据进行比较,并计算这些指标。这些指标是通过利用LLM、其他NLP模型或传统代码函数来计算的。
基于观察到的指标对LLM系统的设计做出基于指标的决策是很重要的。例如,对于期望简短事实性答案的问题,如果召回率较低,可能需要减小块大小。即使在K值较高的情况下,如果精确率较低,对检索到的块进行重新排序可能会有所帮助。同样,LLM系统工作流程的不同元素,如提示词、推理参数、分块策略、检索机制、嵌入选择等,都应根据指标进行优化。
有一种新兴趋势是使用强大的LLM(例如GPT-4)作为无参考(无基准数据)指标来评估其他LLM的生成结果。这有时被称为“LLM作为评判者”。G-eval框架就是一个很好的例子。该论文认为,通过该框架使用时,GPT-4与人类评估者有很强的相关性。Vicuna和QLoRA的论文中也提出了类似的观点。
然而,如某篇博客中详细阐述的那样,使用基准数据进行评估的可靠性和粒度要比使用评估者LLM好得多。此外,像上下文召回率这样的一些指标,如果没有基准数据是无法测量的。
- 将评估纳入部署流程 为确保LLM系统始终满足所需的性能标准,将评估纳入部署流程至关重要。这种集成不仅在部署前验证模型的性能,还在整个开发生命周期中维持质量和可靠性。
每次提交代码和部署发布前都会自动运行测试,以确保代码更改不会引入错误或降低性能。有文章详细讨论了为LLM编写单元测试用例的内容。
除了运行已编写的自动化测试外,像Giskard这样的工具可以帮助在部署流程中运行扫描,从多个方面测试LLM,如有害性、幻觉和敏感信息等。以下是使用Giskard实现的用于检查幻觉和有害性的自动化测试示例(此处因原文显示问题暂不展开具体内容)。
需要注意的一个关键点是,针对LLM系统的自动化测试还需要为数据预处理和摄入阶段编写测试。
部署后评估和数据飞轮
为确保LLM系统在部署后继续保持最佳性能,实施强大的可观测性层至关重要。这些层提供输入和输出交互的必要痕迹,帮助了解系统可能出现故障或性能不佳的地方。
监控交互可以捕获关于LLM系统如何处理不同问题和场景的实时数据。
建立持续监控以检测异常和性能问题。
虽然自动化测试提供了持续的监督,但它们本身并不足够。人类评估对于捕捉自动化系统可能忽略的细微差别和上下文至关重要。
安排与领域专家的定期评估会议,以评估LLM的性能并提供改进反馈。
最后,创建一个反馈机制,让用户可以直接从界面报告问题或提供反馈。
数据飞轮与LLM的持续增强
数据飞轮的概念对于LLM系统的持续增强至关重要。数据飞轮是一个自我强化的循环,它利用从运营环境中收集的数据来推动性能的持续改进。对于LLM系统而言,这意味着利用来自生产环境的实时观察和反馈来优化工作流程,确保其随着时间的推移变得更加准确、相关和有效。如前所述,来自指标的见解可用于更改工作流程的不同组件,从分块策略到嵌入,再到提示词和检索方法。
需要注意的是,任何制定的指标都不是静态的——随着对最终用户行为的了解加深,以及在生产环境中发现新的使用模式和故障场景,这些指标可能需要随时间进行更改和调整。
通过了解用户如何与系统交互,以及在哪些地方出现误解或效率低下的情况,可以调整LLM系统,使其更清晰、更具体,并更好地与用户意图保持一致。同样,可以简化工作流程以减少摩擦并改善整体用户体验。
数据飞轮方法的美妙之处在于其周期性。根据观察结果实施改进后,这些变化将生成新的数据,为进一步优化提供新的见解。这创造了一个不断改进的系统,每次迭代都会变得更加有效和高效。
评估优先:构建可靠LLM应用的关键
要构建可靠且高性能的LLM应用,在开发工作流程中提前进行评估不仅有益,而且至关重要。通过从一开始就集成以评估为导向的方法,团队可以主动发现差距、改进实现,并确保尽早与用户期望保持一致。
评估方法的选择应以应用程序的性质和期望的用户体验为指导。这意味着预先考虑正确的指标和基准至关重要。不要将评估视为事后诸葛亮,而应将其作为开发过程的基石,以构建强大、以用户为中心的AI应用程序。
如何系统的去学习大模型LLM ?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
事实上,抢你饭碗的不是AI,而是会利用AI的人。
继科大讯飞、阿里、华为
等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?
与其焦虑……
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等
一、LLM大模型经典书籍
AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。
二、640套LLM大模型报告合集
这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
三、LLM大模型系列视频教程
四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)
LLM大模型学习路线 ↓
阶段1:AI大模型时代的基础理解
-
目标:了解AI大模型的基本概念、发展历程和核心原理。
-
内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践
- L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
-
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
-
内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例
- L2.2 Prompt框架
- L2.3 流水线工程
- L2.4 总结与展望
阶段3:AI大模型应用架构实践
-
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
-
内容:
- L3.1 Agent模型框架
- L3.2 MetaGPT
- L3.3 ChatGLM
- L3.4 LLAMA
- L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
-
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
-
内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
这份 LLM大模型资料
包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 下方小卡片领取🆓↓↓↓