大型语言模型(LLMs)的四种测试策略
测试机团队需要一套针对LLM的测试策略。在为嵌入在AI agent应用中的LLMs大模型制定测试策略时,可以考虑以下四点实践方法:
1)创建测试数据以扩展软件质量保证
2)自动化模型质量和性能测试
3)根据用例评估RAG质量
4)制定质量指标和基准
LLM大模型的质量测试并不是某一个或者一种单一测试技术就能覆盖的,对于大模型的复杂度需要使用多种维度的测试方法和策略进行质量和准确性测试。
Roadz公司的联合创始人兼首席运营官阿米特·杰恩(Amit Jain)表示:“测试LLM模型需要一种多方面的方法,这超出了技术严谨性的范畴。团队应该进行迭代改进,并创建详细的文档,以记录模型的开发过程、测试方法和性能指标。与研究社区合作,以基准测试和分享最佳实践也是有效的。”
构建具有LLM功能的应用程序的一些通用用例包括搜索体验、内容生成、文档摘要、聊天机器人和客户服务应用。行业实例包括在医疗保健领域开发患者门户、在金融服务领域改善初级银行家的工作流程,以及在制造业中为工厂的未来铺平道路。
对于以大模型为基础的应用开发公司或者团队则面临着包括改进数据质量方面的数据治理、选择LLM架构、解决安全风险以及制定云基础设施计划等方面的技术风险,如何保障应用后面嵌入的大模型的回答、推理、以及涉及的某一垂直领域的专业知识回答是准确的,大模型幻觉或者模型准确性这个点如果解决不了,则上层的应用就会被吐槽弱智或者智障^_^
比如:一家航空公司兑现了其聊天机器人提供的退款、因版权侵权而引发的诉讼以及降低“幻觉”风险。
下面我们对上面提到的四个方面逐一进行分析:
一、创建测试数据以扩展软件质量保证
大多数开发团队不会创建通用的大型语言模型,而是为特定的最终用户和使用场景开发应用。为了制定测试策略,团队需要了解涉及的用户角色、目标、工作流程和质量基准。“测试LLMs的首要要求是了解LLM应能够解决的任务,”Mindbreeze的首席技术官Jakob Praher说,“对于这些任务,人们会构建测试数据集,以建立LLM性能的指标。然后,人们可以系统地优化提示或微调模型。”
例如,一个为客户服务设计的大型语言模型可能包含一个包含常见用户问题和最佳响应的测试数据集。其他LLM用例可能没有直接评估结果的手段,但开发人员仍可以使用测试数据进行验证。
“测试LLM最可靠的方法是创建相关的测试数据,但挑战在于创建此类数据集的成本和时间,”“与其他软件一样,LLM测试包括单元测试、功能测试、回归测试和性能测试。此外,LLM测试还需要进行偏差、公平性、安全性、内容控制和可解释性测试。”
二、自动化模型质量和性能测试
经常用到的LLM测试库和工具:
AI Fairness 360,一个开源工具包,用于检查、报告和缓解机器学习模型中的歧视和偏见;
DeepEval,一个类似于Pytest但专用于LLM输出单元测试的开源LLM评估框架;
Baserun,一个用于帮助调试、测试和迭代改进模型的工具;
Nvidia NeMo-Guardrails,一个为LLM输出添加可编程约束的开源工具包。
IBM数据和人工智能部门的数据科学工具和运行时主管Monica Romila分享了企业在使用LLM时的两个测试领域:
模型质量评估使用学术和内部数据集评估模型质量,用于分类、提取、摘要、生成和增强生成(RAG)等用例。
模型性能测试验证模型的延迟(数据传输所用时间)和吞吐量(在特定时间段内处理的数据量)。
Romila表示,性能测试取决于两个关键参数:并发请求的数量和生成的令牌数量(模型使用的文本块)。“测试各种负载大小和类型,并将性能与现有模型进行比较,以查看是否需要更新,这一点很重要。”
DevOps和云架构师应考虑进行LLM应用程序的性能和负载测试所需的基础设施要求。SADA解决方案工程部总经理Heather Sundheim表示:“为大型语言模型部署测试基础设施涉及设置强大的计算资源、存储解决方案和测试框架。自动化配置工具(如Terraform)和版本控制系统(如Git)在可重复部署和有效协作中发挥着关键作用,强调了平衡资源、存储、部署策略和协作工具对于可靠LLM测试的重要性。”
三、根据用例评估RAG质量
提高LLM准确性的一些技术包括集中内容、用最新数据更新模型以及在查询流程中使用RAG。RAG对于将LLM的强大功能与公司的专有信息相结合至关重要。
在典型的LLM应用中,用户输入提示,应用程序将其发送到LLM,然后LLM生成响应,应用程序再将响应发送回用户。使用RAG时,应用程序首先将提示发送到信息数据库(如搜索引擎或向量数据库),以检索相关和主题相关的信息。应用程序将提示和这种上下文信息发送到LLM,LLM用它来制定响应。因此,RAG将LLM的响应限制在相关和上下文信息范围内。
RAG更适用于企业级部署,在这些部署中,需要对源内容进行可验证的归因,尤其是在关键基础设施中。
研究实践表明,使用RAG与LLM一起可以减少幻觉并提高准确性。但是,使用RAG也增加了一个新组件,需要对其相关性和性能进行测试。测试的类型取决于评估RAG和LLM响应的难易程度,以及开发团队能够在多大程度上利用最终用户的反馈。
用于生成式客户支持AI的RAG评估选项的三种不同的方法:
(1)黄金标准数据集,即针对查询的正确答案的人类标注数据集,可作为模型性能的基准;
(2)强化学习,即在真实场景中测试模型,例如在用户与聊天机器人交互后询问其满意度;
(3)对抗网络,即训练一个二级LLM来评估一级LLM的性能,这种方法通过不依赖人类反馈提供自动化评估。
每种方法都有其取舍,需要在人类投入和忽略错误的风险之间取得平衡。最佳的系统会跨系统组件利用这些方法,以最小化错误并促进稳健的AI部署。
四、制定质量指标和基准
准备好了测试数据、新的或更新的大型语言模型(LLM)以及测试策略,下一步就是根据既定的目标验证质量。
为确保开发出安全、可靠和值得信赖的人工智能,制定具体、可衡量的关键绩效指标(KPIs)和建立明确的防护栏至关重要。需要考虑的一些标准包括准确性、一致性、速度和与特定领域用例的相关性。开发人员需要评估目标领域中的整个LLM生态系统和运营模型,以确保其能够提供准确、相关且全面的结果。
Chatbot Arena工具是一个开放的环境,用于比较LLM的结果。它采用Elo评级系统,这是一种常用于竞技游戏排名玩家的算法,但在评估不同LLM算法或版本产生的响应时,它同样奏效。
人类评估是测试的核心部分,特别是在将LLM强化以适应现实世界中出现的查询时。Chatbot Arena是众包测试的一个例子,这类人类评估者研究可以提供重要的反馈循环,以便整合用户反馈。
IBM数据与人工智能部门的罗米拉(Romila)分享了根据LLM的不同用例需要考虑的三个指标。
(1)F1分数是精确度和召回率的综合得分,适用于LLM用于分类或预测的情况。例如,客户支持LLM可以通过评估其推荐行动方案的准确性来进行评估。
(2)RougeL可用于测试RAG和LLM在摘要用例中的性能,但通常需要一个由人类创建的摘要作为基准来评估结果。
(3)sacreBLEU原本是一种用于测试语言翻译的方法,现在也被用于对LLM响应进行定量评估,以及其他方法,如TER、ChrF和BERTScore。
一些行业有特定的质量和风险指标需要考虑,在教育领域,评估年龄适宜性和避免毒性内容至关重要,但在面向消费者的应用中,应优先考虑响应的相关性和延迟。
五、质量测试持续跟进和评估
模型部署后并不意味着测试结束,QA测试保障应寻求最终用户的反应、性能指标和其他反馈,以改进模型。部署后,将结果与行为分析相结合变得至关重要,它提供了快速反馈和更清晰的模型性能衡量标准。
通过RAG和LLM集成来构建应用程序可能相对容易,但与测试和支持改进工作相比,这仅仅是冰山一角。需要不断的优化测试数据和质量标准,不断的持续测试改进优化,保障大模型达到最优化能力。