【LLM】从软件工程视角看大语言模型测试
一、结论写在前面
论文标题:A Software Engineering Perspective on Testing Large Language Models: Research, Practice, Tools and Benchmarks
论文链接:https://arxiv.org/pdf/2406.08216
LLMs正迅速成为无处不在的工具,既是独立工具,也是当前和未来软件系统的组件。为了在2030年的高风险或安全关键系统中使用LLMs,它们需要经过严格的测试。软件工程(SE)对机器学习(ML)组件和基于ML的系统测试的研究已经系统地探讨了许多主题,如测试输入生成和鲁棒性。
论文认为,关于LLM测试相关的工具、基准、研究和实践者的观点也需要进行类似的组织。
为此,本文提出了一种愿景,通过软件工程中的机器学习测试分类法,组织和统一研究与工业实践中对LLM测试的努力。论文进行了初步研究,探讨了当前的研究方法、开源基准、测试工具以及实践者的在线讨论。
论文的研究结果回答了RQ1:大部分LLM测试研究尚未融入公开可用的工具中以及基准测试,引领未来的工程和研究方向。关于对RQ2的回答,论文注意到在线开发者并未明确提及软件工程(SE)或机器学习(ML)测试主题,但正在将SE测试技术融入其实践中。尽管初步,这些结果显示出利用如图1所示的分类法组织现有方法、识别差距和未来方向、促进研究者和行业实践者之间沟通与合作的良好前景。
论文的研究存在许多局限性:论文不仅只分析了部分基准、工具和在线讨论论坛,而且软件工程的快速变化将很快使得论文基于2024年3月的快照及其结论过时。
二、论文的简答介绍
2.1 论文的背景
鉴于LMs作为软件系统组件的使用日益增加,如何指定这些系统的预期属性(例如,正确性或公平性)并有效地测试它们变得非常重要。鉴于LMs迅速成为关注焦点,LLM测试方法和实践中的成功和缺口尚未以清晰、原则性和全面的方式进行系统化,导致在实践中应用它们的困难。
论文的愿景。当前关于LLM测试的研究和工业实践应通过软件工程(SE)的视角进行组织,即围绕SE中机器学习测试的主题组织现有方法。这种组织应有助于识别差距并促进利益相关者之间的沟通,包括LLM测试研究人员、工具开发者及用户。最终,这应有助于到2030年,在高度风险领域中更安全地使用LLMs。
为了验证论文的愿景,论文进行了一项初步研究,探讨了当前的LLM测试研究方法、基准、测试工具及工业实践,旨在回答两个研究问题:(RQ1) 当前开源基准、工具及在线讨论涉及的LLM测试研究主题在机器学习测试分类法中的覆盖程度如何?(RQ2) 哪些剩余的差距阻碍了实践者有效地应用LLM测试研究?
图1: SE中的ML测试分类[51],增加了LLM特定主题
2.2 LLM测试研究
这里论文通过图1中的LLM测试研究扩展了论文的分类法。由于基于LLM的研究最近急剧增加,论文选择了两篇最新的关于LLM评估的综合文献综述。
由LLM研究涵盖的ML测试主题。LLM研究已经探讨了几个ML测试主题,如图1中蓝色轮廓所示。对于测试工作流程,基于LLM的应用程序通常通过基准、合成数据和人工注释进行评估,这些对应于测试输入和oracle生成。与ML测试不同,现有的LLM评估工作主要集中在学习程序测试上,即测试训练过的LLMs,并且主要针对其特定应用进行测试,例如自然语言处理、推理、医疗用途等。
LLM研究探讨的测试属性包括鲁棒性、公平性和可信度。已经表明,LLMs可以制造听起来合理的虚假信息,即“幻觉”。因此,正确性测试还检查模型输出是否严格遵循事实信息。为此开发了几种技术,包括事实一致性测试、基于不确定性的测试和黑盒测试。在机器翻译中,幻觉也是一种研究过的故障模式,“其中翻译在语法上是正确的,但与源句无关”。这个定义与LLMs上下文中的幻觉略有不同,其中没有源句,生成文本的真实性是主要关注点。
新增条目:LLM特定主题。除了“通用”ML测试主题研究外,在LM测试中还探索了LLM特定的主题,如图1中蓝色文本所示。首先,由于LLMs的能力适合于大量任务,LLMs已被测试其正确性、鲁棒性、公平性、可信度。此外,LLMs已被部署在包括医学和社会科学在内的各种其他领域,或其他特定应用,如个性测试[4]。
结论。针对RQ1,论文的初步审查表明,多个软件工程(SE)测试主题与大型语言模型(LLM)测试研究相关,但尚未得到充分关注。
效度威胁。论文仅查看了两篇文献综述,尽管它们在撰写时是全面且近期的。
2.3 LLM评估基准
在LLM研究中,评估主要依赖于基准。流行的LLM如GPT-4和Gemini使用多个基准来传达和比较它们在广泛任务和领域中的性能。这里论文分析了OpenCompass GitHub仓库,这是一个包含76个公开可用基准的流行集合,旨在识别未充分探索的LLM测试主题。OpenCompass被选为GitHub上搜索“llm evaluation”时星标最高的LLM基准仓库。
基准覆盖。研究的基准包括通用基准,例如为通用语言理解开发的SQuAD2.0 ,特定任务的基准,例如为医疗应用开发的CMB ,以及涉及图像和文本的多模态基准,例如用于视觉语言模型的MMBench 。
在76个基准中,有74个用于测试模型在不同能力上的正确性,包括数学推理、内容摘要和代码生成 。剩余的两个基准,CrowS-Pairs 和 AdvGLUE ,分别测试模型的公平性和鲁棒性。某些基准,如SciBench 、HumanEval 和 CMB ,可用于评估模型与特定应用场景的相关性。集合中没有专门针对隐私、安全性、效率或可解释性的基准。某些应用,例如开放式聊天机器人,要求LLM在广泛的任务上进行测试,以查看其响应情况。OpenCompass中的复合基准,如MMBench 和 SummEdits ,是不同任务特定基准的集合,旨在解决这一挑战。通过提供一致的测试框架 ,复合基准允许实践者和研究人员理解LLM模型与开放式应用的相关性。
结论。论文对OpenCompass的分析确定,几乎所有基准都致力于测试模型的正确性和与特定应用领域的相关性。尽管需要更多工作来增加其采用和覆盖范围,但OpenCompass之外确实存在用于隐私、安全性、鲁棒性、效率、可解释性和公平性的基准。为了回答RQ1,基准本身充分覆盖了ML测试分类法中的少数主题。
有效性威胁。论文仅考虑了一个基准集合。它是GitHub上迄今为止最受欢迎的,因此代表了当前针对LLM测试的基准实践状态。OpenCompass专注于通用LLM能力,因此未考虑专注于特定用例的基准,如CodeXGLUE [24]。
2.4 开源测试工具
开源工具为实践者提供了接触研究中确立的测试技术的机会。这里论文将开源工具的功能与论文的分类法(图1)中概述的主题相对应,以确定在实践中应用LLM测试研究的差距。
工具选择。为了识别实践者常用的开源测试工具,论文在Github上搜索了“llm evaluation”,并根据GitHub星数对结果进行排名,这表明了实践者的兴趣和使用情况。论文仅考虑专注于测试和评估的仓库,排除了模型库、运行基准测试的工具以及其他没有突出测试包的LLM仓库。论文还限制了分析范围,仅限于适用于各种LLM部署(如总结、问答和文本生成)的文本输入、文本输出应用程序的通用工具。搜索结果显示有八个LLM测试仓库拥有超过1000颗星和适当的文档,其中三个仅包含其他仓库实现的功能,因此被排除。表1列出了选定的五个工具及其所涉及的分类法主题(见图1)。
开源工具的优势。所有研究的工具都解决了测试预言的识别和正确性测试问题,如图1中绿色部分所示。测试预言一直是许多开源工具的共同关注点,包括正则表达式或其他简单的字符串匹配函数[7, 34]。
此外,大型语言模型(LLMs)或检索增强生成(RAG)系统已被用作测试预言来测试LLMs,例如“LLM作为评判者”或“GEval”。对测试预言的关注源于LLMs的输入和输出由不受限制的自然语言文本组成。这使得识别正确输出的任务转变为自然语言理解挑战,涉及解释输出是否传达了预期的意义。在正确性方面,根据系统要求,LLM的输出可能因多种微妙的原因而被视为不正确。例如,由于礼貌和事实准确性对客户服务LLM的正确性都很重要,因此既有效又粗鲁的响应,或礼貌但错误的响应都被视为不正确。已经实施了测试来检查响应是否包含特定的、事实性的信息且没有幻觉。此外,还有专门用于检查抽象写作属性的测试,如“简洁”、“无争议”或“敏感”。最后,有测试检查输出是否符合指定的结构和格式,例如JSON。
开源工具的差距。几个研究主题未被任何研究过的工具解决。论文在表1中用空圈表示它们。其中,模型相关性已通过基准测试解决。尽管具有数百万参数的LLMs的推理非常昂贵,但没有任何调查的工具实现了优先处理测试或跳过冗余测试的基础设施。
因此,对于LLMs的测试简化和优先级排序仍然是未来研究和发展的一个有前景的领域。此外,LLMs的原始训练语料库通常对LLM实践者来说是未知的,并且据推测规模巨大,这为数据、学习程序和框架测试带来了挑战。尽管如此,LLM实践者和研究人员仍然可以通过测试调试LLMs并通过微调修复错误,无论是通过API还是本地使用定制的语料库和学习程序。然而,这些工作流程并未被论文研究的任何工具实现,因此是未来工作的重要方向。
结论。通过将开源工具映射到分类法中的主题,论文发现测试预言的识别和正确性得到了开源工具的良好解决,尽管对于不同任务的不同测试预言之间的比较尚未进行。此外,大多数其他ML测试主题仍未得到解决,即调试和修复、测试优先级和简化、测试充分性生成、框架测试、学习程序测试、数据测试以及模型相关性。为了回答RQ1和RQ2,开源工具仅覆盖了ML测试分类法中主题的一小部分,这种工具的缺乏直接阻碍了从业者有效应用LM测试研究。
效度威胁。论文的工具调查仅包括了当今最流行的五种工具,这些工具是通过在GitHub上的一次搜索查询选出的,因此显然是不完整的。此外,工具的功能完全基于文档确定,这可能与彻底的实验和代码审查相比提供有限的见解。
2.5 LLM测试的实践
这里论文通过分析在线论坛上与测试相关的讨论,来考察LLM测试在实践中的应用。通过比较讨论内容与论文的分类法和测试工具的主题,论文识别出当前测试实践中的潜在差距。
数据。论文专注于Reddit,这是最受欢迎的在线论坛之一,因为其子论坛是广泛使用且面向广泛受众的问题导向型论坛。
具体而言,论文选择了子论坛r/LocalLlama,因为它专注于LLMs且在该网站上颇受欢迎——自2023年3月创建以来,它已成为论坛上最受欢迎的子论坛之一,排名位于前五百分位。从Academic Torrents[39, 48]收集了自2023年3月至2024年1月的子论坛提交内容及其相应评论。为了描述平台上的对话,论文将提交内容和评论结合起来,使得分析单元如表1所示:涵盖ML测试不同主题的开源工具。2024年3月分析的工具,覆盖范围基于工具的官方文档。这是一个子论坛帖子。最终数据集包含15,209个提交和11,377条评论,涵盖了该子论坛的11,344个帖子(提交及其对应的评论)。
表1:涵盖ML测试不同主题的开源工具
测试相关关键词。为了探究来自不同背景的子论坛用户如何讨论大型语言模型(LLM)的测试,论文首先在数据中搜索与软件系统测试、机器学习、LLMs以及表1中列出的测试工具名称相关联的关键词。这些关键词来源于相应的文献,因此与图1中提出的分类法有所不同。表3报告了在数据中发现的测试特定关键词的频率和百分比。与测试相关的关键词大约出现在总帖子的0.8%中。
接下来,“单元测试”(N=38)和“毒性”(N=29)是最常被讨论的测试关键词,而其他传统软件(例如,“测试预言”(N=0),“功能测试”(N=0))和机器学习(例如,“对抗性攻击”(N=5),“对抗性示例”(N=0))测试关键词在数据中出现的频率不到0.05%,如果存在的话。表1中的测试工具同样在子论坛用户中不受欢迎,总共出现在不到0.02%的数据中。
讨论分析。为了更好地刻画与测试相关的对话,论文进行了语义主题分析,以识别和分析包含测试相关关键词的数据中的模式、主题和见解。这些对话的质量在帖子之间有所不同,范围从对测试的一般讨论到实际操作中的特定方法。论文注意到,前者在“毒性”方面尤为明显,这在讨论有毒或偏见的模型输出和新发布模型的性能报告中经常被提及。
相比之下,关于单元测试的讨论显得更具操作性,许多用户报告了他们个人开发的测试,用以评估模型或文献中报告的测试。尽管单元测试在子论坛上相对流行,但似乎缺乏关于如何实际测试大型语言模型(LLMs)的一致指导或步骤。例如,在回应一个帖子“提示工程似乎像猜测工作 - 如何正确评估LLM应用?”时,一些用户指出使用单元测试等方法,而其他用户则报告了他们独立开发的流程。例如,表2的A面板中引述了一种结合用户评估的组合测试方法。相反,B面板突出了一种由另一用户开发的层次化方法,该方法似乎借鉴了软件工程。
表2:来自r/LocalLama的示例引述
结论 在r/LocalLlama上观察到的许多方法的新颖性表明,软件工程(SE)和机器学习(ML)方法在测试大型语言模型(LLMs)方面具有实用性,同时也揭示了理论与实践之间可能存在的差异。
除了明确借鉴单元测试和集成测试等方法来测试LLMs外,用户提出的方法具有即兴和实验性质。有趣的是,论文注意到讨论中并未明确引用SE或ML术语。因此,所述的测试方法与学术文献及表1中的测试工具存在差异。论文的研究结果显示,研究与实践之间存在较大鸿沟,这强调了研究者与实践者之间加强沟通的必要性。
效度威胁。对r/LocalLama子论坛的分析是对LLM测试用户讨论的初步考察。具体而言,分析中使用的搜索词有限,可能导致遗漏与测试讨论相关的关键字。此外,子论坛上的用户群体多样,可能不完全代表活跃在测试领域的专业人士,从而影响研究结果的普遍性。
表3:数据中关键词的频率与比例
本文转载自 AI帝国,作者: 无影寺