CONGRA
收藏arXiv2024-09-21 更新2024-09-26 收录
下载链接:
https://github.com/HKUSystem-Security-Lab/ConGra
下载链接
链接失效反馈官方服务:
资源简介:
CONGRA是由香港大学系统安全实验室创建的一个大规模冲突分级基准数据集,旨在评估软件合并工具在不同复杂度冲突场景下的性能。该数据集包含44,948个冲突案例,来源于34个真实世界的开源项目,涵盖C、C++、Java和Python等多种编程语言。数据集通过代码操作分类方法,将冲突分为七个类别,以反映冲突的复杂性。创建过程包括从GitHub收集项目历史合并场景,通过轻量级语法树分析提取代码操作,并根据这些操作对冲突进行分类。CONGRA主要应用于自动冲突解决任务,旨在解决大规模项目中手动合并冲突的高成本问题,并评估大型语言模型在冲突解决中的表现。
CONGRA is a large-scale conflict grading benchmark dataset developed by the System Security Laboratory of the University of Hong Kong, designed to evaluate the performance of software merge tools in conflict scenarios with varying complexities. This dataset includes 44,948 conflict cases sourced from 34 real-world open-source projects, covering multiple programming languages such as C, C++, Java, and Python. Using code operation classification methods, it categorizes conflicts into seven categories to reflect their complexity levels. The dataset creation process involves collecting historical merge scenarios of projects from GitHub, extracting code operations via lightweight syntax tree analysis, and classifying conflicts based on these operations. CONGRA is primarily applied to automatic conflict resolution tasks, aiming to resolve the high costs associated with manually resolving merge conflicts in large-scale projects, and to evaluate the performance of large language models (LLMs) in conflict resolution.
提供机构:
香港大学
创建时间:
2024-09-21
搜集汇总
数据集介绍

构建方式
CONGRA数据集的构建基于对34个真实世界开源项目的深入分析,涵盖了C、C++、Java和Python四种编程语言。该数据集通过提取44,948个冲突案例,采用一种新颖的基于代码操作的分类方法,将冲突按照其解决复杂度分为七个类别。这种分类方法通过轻量级的语法树级别分析,提取冲突代码片段中的操作,并根据这些操作对冲突进行分类,从而构建了一个大规模的评估数据集。
使用方法
使用CONGRA数据集进行评估时,首先需要从数据集中提取冲突及其上下文信息,构建用于大型语言模型(LLMs)的提示。然后,通过LLMs生成冲突解决方案,并使用CONGRA的评估度量标准对生成的解决方案进行评估。具体步骤包括获取冲突及其上下文、构建提示、检查输入长度、查询LLMs并获取解决方案,最后通过CONGRA的评估指标对结果进行分析。通过这种方式,CONGRA不仅能够评估现有LLMs在冲突解决任务中的表现,还能揭示其在不同复杂度冲突下的性能差异。
背景与挑战
背景概述
在软件开发过程中,代码合并冲突的解决一直是一个复杂且耗时的任务。为了减少手动合并的开销,研究人员开发了基于程序分析的工具,但这些工具仅能解决特定类型的冲突,应用范围有限。随着语言模型的发展,研究人员开始将冲突代码视为文本,理论上可以解决几乎所有类型的冲突。然而,缺乏有效的冲突难度分级方法阻碍了对大型语言模型(LLMs)的全面评估,难以深入理解其局限性。此外,缺乏大规模的开放基准来评估LLMs在自动冲突解决中的性能。为此,香港大学的研究人员引入了CONGRA,一个用于评估软件合并工具在不同复杂度冲突场景下性能的基准方案。CONGRA提出了一种基于代码操作的新方法来分类冲突,并基于34个真实世界项目中的44,948个冲突构建了一个大规模评估数据集。通过使用该数据集,研究人员评估了多个最先进的LLMs和代码LLMs在冲突解决任务中的表现,揭示了两个反直觉但有洞察力的现象。
当前挑战
CONGRA数据集面临的挑战主要集中在两个方面。首先,解决领域问题的挑战,即图像分类的挑战。尽管LLMs在理论上可以处理几乎所有类型的冲突,但实际应用中,冲突难度的广泛变化和缺乏有效的分级方法使得评估其性能变得困难。例如,现有的ConflictBench分类方法未能准确反映冲突的复杂性。其次,构建过程中的挑战,包括缺乏全面的冲突解决基准,特别是在涉及长代码上下文的极端情况下。CONGRA通过引入一种新的冲突分类方法和构建大规模评估数据集来应对这些挑战,但仍需进一步优化以提高分类的准确性和评估的全面性。
常用场景
经典使用场景
CONGRA数据集在软件工程领域中被广泛用于评估自动冲突解决工具的性能。其经典使用场景包括对不同复杂度级别的代码冲突进行分类和评估,从而帮助研究人员和开发者理解大型语言模型(LLMs)在处理代码合并冲突时的局限性和优势。通过CONGRA,研究者可以系统地比较不同工具在处理各种冲突场景中的表现,从而推动自动冲突解决技术的发展。
解决学术问题
CONGRA数据集解决了在评估大型语言模型(LLMs)在自动冲突解决任务中的性能时,缺乏有效冲突难度分级方法的问题。传统的评估方法往往无法准确反映冲突的复杂性,导致对LLMs性能的评估不够全面。CONGRA通过引入一种新颖的冲突分类方法,构建了一个大规模的评估数据集,从而能够更全面地评估LLMs在不同复杂度冲突场景中的表现,为学术研究提供了重要的数据支持。
实际应用
在实际应用中,CONGRA数据集被用于开发和优化自动代码合并工具,这些工具在软件开发和维护过程中能够显著减少手动解决代码冲突的工作量。通过使用CONGRA数据集进行训练和评估,开发者可以创建更加智能和高效的合并工具,从而提高软件开发的效率和质量。此外,CONGRA还可以用于培训和教育,帮助开发者更好地理解和解决代码合并中的冲突问题。
数据集最近研究
最新研究方向
在软件工程领域,代码合并冲突的自动解决一直是一个具有挑战性的任务。随着语言模型的发展,研究人员开始将冲突代码视为文本,理论上可以解决几乎所有类型的冲突。然而,缺乏有效的冲突难度分级方法阻碍了对大型语言模型(LLMs)的全面评估。为了解决这一问题,CONGRA数据集应运而生,它通过引入一种新的冲突分类方法,构建了一个大规模的评估数据集,旨在评估软件合并工具在不同复杂度冲突场景下的性能。CONGRA不仅为LLMs在自动冲突解决任务中的表现提供了全面的评估,还揭示了两个反直觉的现象:具有较长上下文支持的LLMs并不总是表现更好,而通用LLMs在自动解决冲突方面优于专门的代码LLMs。这一研究方向不仅推动了自动冲突解决技术的发展,还为软件工程领域的工具评估提供了新的基准。
相关研究论文
- 1CONGRA: Benchmarking Automatic Conflict Resolution香港大学 · 2024年
以上内容由遇见数据集搜集并总结生成



