13 天前

湍流:面向代码的指令微调大语言模型的系统化与自动化测试

Shahin Honarvar, Mark van der Wilk, Alastair Donaldson
湍流:面向代码的指令微调大语言模型的系统化与自动化测试
摘要

我们提出了一种系统性评估指令微调大型语言模型(LLM)代码生成正确性与鲁棒性的方法,并引入了一个新的基准测试框架——Turbulence。Turbulence 包含大量自然语言编写的问题模板(question templates),每个模板代表一个编程问题,并通过参数化设计,能够以多种不同形式被提出。每个问题模板均配备一个对应的测试判别器(test oracle),用于判断 LLM 返回的代码解决方案是否正确。因此,仅通过一个模板,即可向 LLM 提出一系列高度相似的编程问题(即一个“邻域”),并逐一评估其在每个变体上的求解正确性。这一机制使得能够有效识别 LLM 在代码生成能力上的薄弱环节,包括某些异常现象:即模型在邻域内几乎全部问题上均能正确求解,却在特定参数实例下出现失败。我们在来自 OpenAI、Cohere 和 Meta 的五种 LLM 上进行了实验,每种模型在两个不同的温度配置下进行测试。实验结果表明,Turbulence 能够系统性地揭示 LLM 在推理能力方面的缺陷。这不仅限于指出 LLM 有时会生成错误代码(这一现象本身并不意外),更重要的是,该方法能够精准识别出:当 LLM 能够解决邻域中部分问题,却无法实现对整个邻域的泛化时,所暴露的鲁棒性问题。我们还提供了详实的数据与具体案例,深入剖析了 LLM 在生成错误代码时所表现出的典型错误模式,为理解其局限性提供了有力支持。