Turbulence: Systematically and Automatically Testing Instruction-Tuned Large Language Models for Code

2023年12月22日
  • 简介
    我们提出了一种方法,通过一个名为Turbulence的新基准测试来系统评估指令调整的大型语言模型(LLM)在代码生成方面的正确性和鲁棒性。Turbulence由大量自然语言“问题模板”组成,每个模板都是一个编程问题,参数化以便可以用许多不同的形式来提出。每个问题模板都有一个相关的“测试神谕”,用于判断LLM返回的代码解决方案是否正确。因此,从一个问题模板中,可以向LLM提出非常相似的编程问题“邻域”,并评估返回的每个问题的正确性。这可以识别LLM的代码生成能力中的差距,包括异常情况,其中LLM可以正确地解决“几乎所有”邻域问题,但对于特定的参数实例化失败。我们针对OpenAI、Cohere和Meta的五个LLM进行了实验,每个LLM都有两个温度配置。我们的发现表明,总体而言,Turbulence能够揭示LLM推理能力中的差距。这不仅仅是强调LLM有时会产生错误的代码(这并不令人惊讶):通过系统地识别LLM能够解决某些邻域问题但无法概括解决整个邻域的情况,我们的方法有效地突出了“鲁棒性”问题。我们提供了数据和示例,以阐明LLM在返回不正确的代码结果时所犯的错误类型。
  • 图表
  • 解决问题
    本论文旨在通过一个名为Turbulence的基准测试来系统评估指令调整的大型语言模型(LLM)在代码生成方面的正确性和鲁棒性。该测试可以揭示LLM推理能力中的差距和异常情况。
  • 关键思路
    通过Turbulence测试,可以评估LLM在解决类似编程问题时的正确性和鲁棒性。该测试包含大量自然语言问题模板,每个模板都是一个编程问题,并且每个问题模板都有一个测试预言,判断LLM生成的代码解决方案是否正确。通过测试模板的不同参数实例化,可以评估LLM在解决整个问题领域时的泛化能力。
  • 其它亮点
    本论文通过实验对比了来自OpenAI、Cohere和Meta的5个LLM在Turbulence测试中的表现。实验结果表明,Turbulence测试可以揭示LLM推理能力中的差距和异常情况,有效地评估LLM在解决类似编程问题时的正确性和鲁棒性。同时,论文还提供了数据和示例,揭示了LLM生成错误代码的一些常见错误类型。
  • 相关研究
    在最近的研究中,也有一些关于LLM的正确性和鲁棒性评估的工作,例如Puliyadi等人的论文“Probing Large Language Models for Code Generation: A Comprehensive Survey”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论