OOP: Object-Oriented Programming Evaluation Benchmark for Large Language Models

📄 arXiv: 2401.06628v2 📥 PDF

作者: Shuai Wang, Liang Ding, Li Shen, Yong Luo, Bo Du, Dacheng Tao

分类: cs.CL

发布日期: 2024-01-12 (更新: 2024-02-21)

备注: 20 pages, 15 figures

🔗 代码/项目: GITHUB


💡 一句话要点

提出OOP基准以解决现有编程评估忽视面向对象问题

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 面向对象编程 代码生成 评估基准 大型语言模型 自动化编程

📋 核心要点

  1. 现有的代码生成评估框架主要集中在函数式编程,忽视了面向对象编程的特性和需求。
  2. 本研究提出了一个OOP专注的基准,包含431个Python程序,并引入了新评估指标pass@o,以更好地评估OOP代码生成能力。
  3. 对23个大型语言模型的评估结果显示,pass@o提供了更全面的评估,且当前模型在OOP任务上普遍表现不佳,亟需改进。

📝 摘要(中文)

随着自动化编程的发展,强大且全面的代码生成基准显得尤为重要。然而,现有评估框架大多忽视了面向对象编程(OOP),更倾向于函数式编程(FP),如HumanEval和MBPP。为此,我们的研究提出了一个开创性的OOP专注基准,包含431个涵盖基本OOP概念和特性的Python程序,如类和封装方法。我们还提出了一种新颖的评估指标pass@o,专为OOP设计,增强了传统的pass@k度量。对23个领先的大型语言模型(LLMs)的评估显示,pass@o为OOP代码生成提供了更相关和全面的评估,尽管在FP上表现出色的代码专用LLMs如WizardCoder在OOP上却落后于ChatGPT,所有先进的LLMs在我们的OOP基准上的表现不佳,突显了该领域改进的迫切需求。

🔬 方法详解

问题定义:本论文旨在解决现有编程评估框架对面向对象编程(OOP)的忽视,现有方法主要集中在函数式编程(FP),导致OOP相关能力评估不足。

核心思路:我们提出了一个专注于OOP的基准,包含431个Python程序,涵盖了OOP的基本概念和特性,并引入了新评估指标pass@o,以更准确地评估OOP代码生成能力。

技术框架:整体架构包括数据集构建、评估指标设计和模型评估三个主要模块。数据集包含多种OOP特性,评估指标pass@o专为OOP设计,最后对多种大型语言模型进行评估。

关键创新:最重要的创新点在于引入了pass@o评估指标,专门针对OOP的代码生成能力进行评估,与传统的pass@k指标相比,提供了更相关的评估结果。

关键设计:在数据集构建中,确保了程序涵盖类、封装等OOP特性;在评估中,使用了多种大型语言模型,包括通用和代码专用模型,以全面评估OOP能力。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果显示,pass@o指标为OOP代码生成提供了更相关的评估,尽管在FP上表现优异的模型如WizardCoder在OOP任务上却落后于ChatGPT。此外,所有评估的先进LLMs在OOP基准上的整体表现较差,显示出该领域的改进需求。

🎯 应用场景

该研究的潜在应用领域包括教育、软件开发和自动化编程工具的评估。通过提供一个专注于OOP的基准,开发者和研究人员可以更好地理解和提升模型在面向对象编程任务中的表现,从而推动自动化编程技术的发展。

📄 摘要(原文)

Advancing automated programming necessitates robust and comprehensive code generation benchmarks, yet current evaluation frameworks largely neglect object-oriented programming (OOP) in favor of functional programming (FP), e.g., HumanEval and MBPP. To address this, our study introduces a pioneering OOP-focused benchmark, featuring 431 Python programs that encompass essential OOP concepts and features like classes and encapsulation methods. We propose a novel evaluation metric, pass@o, tailored for OOP, enhancing traditional pass@k measures. Our evaluation of 23 leading large language models (LLMs), including both general and code-specialized models, reveals three key insights: 1) pass@o offers a more relevant and comprehensive assessment for OOP code generation; 2) Despite excelling in FP, code-specialized LLMs like WizardCoder lag in OOP compared to models like ChatGPT; 3) The poor performance of all advanced LLMs on our OOP benchmark highlights a critical need for improvements in this field. Our benchmark and scripts are publicly released at: https://github.com/alphadl/OOP-eval.