Skip to main content
QUICK REVIEW

[论文解读] TACO: Topics in Algorithmic COde generation dataset

Rongni Li, Jie Fu|arXiv (Cornell University)|Dec 22, 2023
Software Engineering Research被引用 4
一句话总结

TACO 是一个大规模、开源的代码生成数据集,包含 26,443 个编程问题,对算法、技能和难度级别进行了细粒度标注,旨在提升并基准测试代码生成模型在复杂、竞赛级挑战中的表现。该数据集在针对特定算法主题(如排序或动态规划)进行微调时,能显著提升模型性能。

ABSTRACT

We introduce TACO, an open-source, large-scale code generation dataset, with a focus on the optics of algorithms, designed to provide a more challenging training dataset and evaluation benchmark in the field of code generation models. TACO includes competition-level programming questions that are more challenging, to enhance or evaluate problem understanding and reasoning abilities in real-world programming scenarios. There are 25433 and 1000 coding problems in training and test set, as well as up to 1.55 million diverse solution answers. Moreover, each TACO problem includes several fine-grained labels such as task topics, algorithms, programming skills, and difficulty levels, providing a more precise reference for the training and evaluation of code generation models. The dataset and evaluation scripts are available on Hugging Face Hub (https://huggingface.co/datasets/BAAI/TACO) and Github (https://github.com/FlagOpen/TACO).

研究动机与目标

  • 解决现有代码生成基准的局限性,包括任务过于简单、测试集质量不足以及缺乏细粒度标注。
  • 为代码生成模型提供更具挑战性且质量更高的评估基准,尤其针对现实世界中的编程推理与问题解决能力。
  • 通过使用详细标注实现针对特定算法主题的微调,从而提升模型性能。
  • 通过结构化的算法元数据支持多样化应用,如代码理解、教育、算法推荐以及大语言模型增强。

提出的方法

  • 从公开数据集和开源代码库中精选 26,443 个编程问题,聚焦 Python 3 解决方案以获得更清晰的语法。
  • 系统性地将原始标签归类为 36 个主要算法主题(例如:动态规划、排序),并添加了编程技能标注。
  • 为每个问题标注多个标签:算法主题、编程技能、难度等级和时间复杂度。
  • 构建了包含 25,433 个问题的训练集和 1,000 个问题的测试集,涵盖多达 155 万种多样的解决方案。
  • 提供评估脚本,并将数据集托管在 Hugging Face Hub 和 GitHub 上,以实现开放获取和可复现性。
  • 支持使用特定主题子集进行模型微调,以提升在目标算法挑战上的表现。

实验结果

研究问题

  • RQ1大规模、细粒度的代码生成数据集能否提升模型在复杂现实编程任务中的表现?
  • RQ2在 TACO 的特定主题子集上进行微调,相较于全数据集微调,对代码生成性能有何影响?
  • RQ3细粒度标注(如算法类型、技能水平、难度)在多大程度上提升了模型的推理能力和代码质量?
  • RQ4TACO 是否能作为超越 HumanEval 或 MBPP 等标准基准的可靠评估基准?
  • RQ5TACO 在支持下游应用(如算法推荐和代码理解)方面有多高效?

主要发现

  • GPT-4 在 Leetcode(困难)任务上的 pass@1 得分为 7%,凸显了当前基准的局限性,也凸显了像 TACO 这样更具挑战性的评估集的必要性。
  • 使用 TACO 训练集对 StarCoder-1B 等模型进行特定算法技能(如数据结构、贪心算法、排序)的微调,相比全数据集微调,实现了可测量的性能提升。
  • TACO 数据集的细粒度标签(如算法主题、技能水平、难度)支持更精确的模型训练与评估,减少了性能评估中的模糊性。
  • 该数据集丰富的标注模式支持高级应用,包括自动化代码文档生成、算法推荐和教育工具开发。
  • TACO 在捕捉算法多样性与复杂性方面优于现有基准,能更真实地评估模型能力。
  • 由于 TACO 经过严格筛选和人工验证,可有效避免 APPS 或 CodeContest 中可能存在的测试用例覆盖虚假阳性问题,因此推荐使用 TACO 进行评估。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。