好的,根据你提供的信息,我将以一名资深新闻记者和编辑的身份,撰写一篇关于北大aiXcoder-7B代码大模型的新闻报道。
标题:北大aiXcoder-7B:突破代码大模型瓶颈,融合软件工程实践引领AI编程新方向
引言:
当人工智能浪潮席卷软件开发领域,代码大模型被寄予厚望,但实际应用中却遭遇瓶颈。简单地将代码视为自然语言进行处理,忽略了其内在的结构性和复杂的上下文关系,导致模型在实际开发中表现不佳。北京大学aiXcoder团队另辟蹊径,将深度学习与软件工程深度融合,推出了自研代码大模型aiXcoder-7B,旨在提升模型对代码结构和上下文的理解能力,为AI编程开辟新方向。
正文:
在人工智能与软件工程交叉融合的背景下,代码大模型正成为推动软件开发自动化的关键力量。然而,当前的代码大模型往往将最终版本的代码简单地视作自然语言文本,试图通过复制自然语言处理的成功经验来处理代码。这种方法忽略了代码的结构性和复杂的上下文关系,导致模型在实际开发中表现不佳。
北京大学aiXcoder团队长期致力于探索如何将深度学习与软件开发深度融合,推动软件开发的自动化。2024年4月,aiXcoder开源了自研代码大模型aiXcoder-7B,成为这一领域的一次重要尝试,旨在将代码的抽象语法树(AST)结构与大规模预训练结合,以期提升模型对代码结构和上下文的理解能力。
近期,该篇论文被软件工程领域国际顶级会议ICSE 2025收录,将于4月27日-5月3日赴加拿大渥太华参会分享研究成果。此次论文录用不仅是对aiXcoder 7B代码大模型技术前瞻性和应用创新性的高度认可,更标志着该模型继成功落地企业并获各行业客户广泛认可后,再次于学术界获得权威肯定,充分彰显了aiXcoder在推动软件工程发展中的前瞻性引领作用。
代码数据,异于自然语言
相较于自然语言文本,程序是现实世界解决方案在计算机系统中的映射。因此,程序源代码呈现出很多独特的性质,例如:强结构性、可执行性等等。有效地表示和建模这些特性,对于代码生成等任务来说至关重要。
如上三行代码能够严格解析为抽象语法树格式代码天然能被解析为抽象语法树,其语法规则严格组织了代码语句之间的关系。在语法规则之上,也有很多方式描述代码之间的流转关系,例如控制流图、调用流图等等。顾名思义,控制流图会展示整个代码控制与条件关系,什么样的条件下哪个分支代码会运行。调用流图则展示的是代码之间的调用关系,实现一个功能时在什么样的地方调用什么样的代码模块是能展示出来的。
程序语言与自然语言之间存在显著差异。尽管大模型通过大规模自回归训练任务在通用知识学习上取得了巨大成功,但这并不意味着可以简单地将代码数据视为「自然语言」,并将其拉长为一维Token序列进行自回归训练,就能复制自然语言处理的成功。事实上,当使用自回归模型或「Fill in the middle」任务训练基础模型时,会发现实际在代码补全任务中,模型生成的结果往往与人类程序员的编程方式不符,我们还需要更符合代码的预训练方法。
aiXcoder-7B:创新在LLM上引入代码特性
正因为当前代码大模型很少将代码特性引入到LLM的训练过程中,代码大模型在企业真实项目中表现得不尽人意,所以我们创新将一些传统软件工程方法引入到大规模预训练中,希望能生成更符合真实场景的代码内容。为此,aiXcoder-7B 主要从以下几个方面优化预训练:
- 数据预处理: 软工工具保证代码数据语法正确且不存在严重Bug
- 结构化 FIM: 按照语法结构组织预训练任务
- 多文件排序: 保证单项目内,文件排序既考虑内容相似,又考虑调用关系
数据预处理
aiXcoder 核心数据集主要用于强化代码大模型在以上编程语言上的效果,其经过大量的过滤与筛选过程。相比于其它代码大模型,aiXcoder-7B 预训练数据既采用常规的数据处理,例如数据去重、自动生成代码去除、通过 Star 量、正则等规则去除低质量代码、敏感信息等,同时借助软件工程方法进行更精细的数据处理。具体而言,aiXcoder-7B 预训练数据采用语法分析和静态分析两大类工具预处理数据。对于语法分析,重点解析五十种主流语言的语法结构,并排除存在语法错误、简单 Bug 、大面积被注释掉的代码等。
结论:
北京大学aiXcoder-7B代码大模型的推出,标志着代码大模型的研究进入了一个新的阶段。通过将深度学习与软件工程实践相结合,aiXcoder-7B有望突破现有代码大模型的瓶颈,更好地服务于实际软件开发场景,推动软件开发的自动化和智能化。随着aiXcoder-7B的不断发展和完善,我们有理由期待它在未来的软件工程领域发挥更大的作用。
参考文献:
- aiXcoder-7B论文:https://arxiv.org/pdf/2410.13187
- aiXcoder-7B开源项目:https://github.com/aixcoder-plugin/aiXcoder-7B
(注:以上报道模拟了新闻写作的风格,力求客观、准确、深入地报道事件。由于信息有限,部分内容可能需要进一步核实和补充。)
Views: 2
