CIFE: Code Instruction-Following Evaluation
作者: Sravani Gunnu, Shanmukha Guttula, Hima Patel
分类: cs.SE, cs.CL
发布日期: 2025-12-19
备注: 20 pages, 22 figures, 2 tables
💡 一句话要点
CIFE:提出代码指令遵循评估基准,衡量LLM在代码生成中对开发者约束的遵守程度
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码生成 大型语言模型 指令遵循 评估基准 开发者约束
📋 核心要点
- 现有代码生成基准侧重于功能正确性,忽略了开发者对代码鲁棒性、格式和安全性的约束。
- CIFE基准包含1000个Python任务,每个任务带有多个开发者约束,通过人工-LLM流程保证约束质量。
- 实验表明,现有模型在部分约束遵守方面表现较好,但在严格遵守所有约束方面仍有较大提升空间。
📝 摘要(中文)
大型语言模型(LLMs)越来越多地应用于实际的代码生成任务中。仅仅保证功能正确性不足以支持可靠的部署,开发者还期望模型能够遵守明确的需求,例如鲁棒性、格式和安全性。现有的基准主要通过测试用例执行来评估正确性,对于模型如何可靠地遵循这些约束的洞察有限。我们提出了一个包含1000个Python任务的基准,每个任务都配有平均7个开发者指定的约束,涵盖13个类别。约束通过四阶段的人工-LLM流程进行管理,以确保其原子性、相关性和客观性。我们使用互补的遵守度指标评估了14个开源和闭源模型,并提出了C2A评分,这是一个综合指标,共同捕捉正确性和约束合规性。结果表明,部分满足和严格满足之间存在巨大差距,虽然强大的模型实现了超过90%的部分遵守度,但严格遵守度仍然在39-66%之间。这些发现强调,可信的代码生成不仅需要正确性,还需要始终如一地遵守开发者意图。
🔬 方法详解
问题定义:现有代码生成评估主要关注功能正确性,即生成的代码是否能通过预设的测试用例。然而,在实际开发中,开发者通常会对代码提出额外的约束,例如代码风格、安全性要求、鲁棒性要求等。现有评估方法缺乏对这些约束的有效评估,导致生成的代码可能功能正确但难以维护或存在安全隐患。
核心思路:CIFE的核心思路是构建一个包含丰富开发者约束的代码生成评估基准。通过评估模型在满足功能正确性的同时,对这些约束的遵守程度,更全面地衡量代码生成模型的性能。CIFE的目标是推动代码生成模型朝着更可靠、更符合开发者意图的方向发展。
技术框架:CIFE基准的构建包含以下几个主要阶段:1) 任务收集:收集1000个Python代码生成任务。2) 约束生成:针对每个任务,通过人工和LLM协作的方式生成平均7个开发者约束,涵盖13个类别。3) 约束筛选:通过多轮迭代,确保约束的原子性、相关性和客观性。4) 模型评估:使用多种指标评估模型在正确性和约束遵守方面的表现,并提出C2A评分作为综合评估指标。
关键创新:CIFE的关键创新在于其对开发者约束的关注和系统性的约束生成流程。与以往只关注功能正确性的基准不同,CIFE将开发者约束纳入评估范围,更贴近实际开发需求。此外,CIFE采用人工-LLM协作的方式生成约束,保证了约束的质量和多样性。
关键设计:CIFE基准包含13个类别的约束,例如代码风格、错误处理、资源管理、安全性等。C2A评分是正确率和约束遵守率的加权平均,用于综合评估模型的性能。具体权重设置未知。
🖼️ 关键图片
📊 实验亮点
实验结果表明,虽然强大的模型在部分约束遵守方面可以达到90%以上的准确率,但在严格遵守所有约束方面,准确率仍然只有39-66%。这表明现有模型在理解和执行复杂约束方面仍有很大的提升空间。C2A评分能够更全面地反映模型的性能,为模型选择和优化提供更有效的指导。
🎯 应用场景
CIFE基准可以用于评估和比较不同代码生成模型在实际开发场景下的性能。它可以帮助开发者选择更可靠、更符合需求的模型,并促进代码生成模型朝着更智能、更安全的方向发展。此外,CIFE还可以用于指导模型训练,提高模型对开发者约束的理解和遵守能力。
📄 摘要(原文)
Large Language Models (LLMs) are increasingly applied to real-world code generation, where functional correctness alone is insufficient for reliable deployment, developers also expect adherence to explicit requirements for robustness, formatting, and security. Existing benchmarks primarily assess correctness through test-case execution, offering limited insight into how reliably models follow such constraints. We introduce a benchmark of 1,000 Python tasks, each paired with an average of 7 developer-specified constraints spanning 13 categories. Constraints are curated through a four-stage human-LLM pipeline to ensure they are atomic, relevant, and objective. We evaluate 14 open- and closed-source models using complementary adherence metrics and propose the C2A Score, a composite measure that jointly captures correctness and constraint compliance. Results reveal a substantial gap between partial and strict satisfaction, while strong models achieve over 90% partial adherence, strict adherence remains between 39-66%. These findings highlight that trustworthy code generation requires not only correctness but also consistent adherence to developer intent.