• 我的订阅
  • 科技

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

类别:科技 发布时间:2024-08-12 09:49:00 来源:量子位

代码生成和补全任务做不完了?!

不如试试让大语言模型(Large Language Models, LLMs)来帮忙。

不过,如果是处理大规模、多文件的代码库,LLMs就可能犯了难。这时候,往往需要需要Retrieval-Augmented Code Generation(RACG)系统来检索相关的代码信息。

现有解决方案,如基于语义相似度的检索和手动设计的工具与API,虽然在特定任务上有效,但在泛化能力和普适性方面存在局限。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

为了缓解现有RACG方法的通用性缺陷,来自新加坡国立大学、阿里巴巴、西安交通大学的研究人员提出了CodexGraph,一个以代码图数据库为媒介,连接了语言模型和代码库的系统。

研究团队在三个有代表性的学术benchmarks对CodexGraph进行了评测,同时也基于ModelScope-Agent,将CodexGraph实现在了五个真实代码应用场景。

实验和现实实践显示出了CodexGraph的有效性和通用性。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

研究方法

CodexGraph通过代码图数据库接⼝界⾯ ,创新性地将语⾔模型与代码库连接,以克服现有⽅法的不⾜。

该系统的⼯作流程主要包括以下⼏个步骤 :

首先,构建代码图数据库。

使⽤静态分析技术,根据预定义的Schema,将代码库中的代码符号(如模块、 类、 函数等)和它们之间的关系映射为图数据库中的节点和边。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

其次,代码结构感知查询。

利⽤graph query language的灵活性,同时结合图数据库的结构特性,实现对代码图的复杂查询和深度检索。

第三, “Write then translateˮ 策略。

Primary LM agent ⾸先分析代码问题,⽣成⾃然语⾔查询。

然后,专门的translation LM agent将这些查询翻译为为格式化的graph query language。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

第四,迭代式pipeline。

通过迭代的⽅式,LM agent根据⽤户问题和已获取的信息,逐步优化查询和检索结果。

实验

实验部分,CodexGraph在CrossCodeEval、 EvoCodeBench和SWE-bench三个具有代表性的代码库级基准测试上进⾏了评估。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

这些测试覆盖了跨⽂件代码补全、 代码⽣成和⾃动化GitHub问题解决等多个⽅⾯ 。

实验结果显示,CodexGraph在所有基准测试中均展现出了优异且稳定的性能,验证了代码图数据库作为语⾔模型和代码库之间的接⼝界⾯的有效性。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

原论⽂的分析进⼀步指出,CodexGraph在处理不同难度的推理任务时,单⼀查询与多重查询策略的效果存在差异。

在CrossCodeEval中,多重查询策略更有效;⽽在SWE- bench中,单⼀查询策略表现更佳。

让AI管理大型代码库,开发者福音 | 阿里/新加坡国立/西安交大

此外 ,去除Cypher LM agent会显著增加primary LM agent的推理负担,导致性能下降。

这表明Cypher LM agent在减轻primary LM Agent的推理压⼒中发挥了关键作⽤。

真实应⽤场景⽰例

基于ModelScope-Agent框架 ,CodexGraph的实际应⽤价值在多个场景中得到了体现,如:

代码聊天助⼿(Code Chat) 代码调试⼯具(Code Debugger) 单元测试⽣成器(Code Unit tester) 代码⽣成器(Code Generator) 代码注释⼯具(Code Commenter)

这些应⽤展⽰了CodexGraph如何在⽣产环境中帮助开发者解决实际问题 ,提⾼代码开发的效率和质量。

总结

以图数据库作为媒介,CodexGraph为语⾔模型与代码库提供了⼀个新的交互⽅式。

它不仅提升了语⾔模型对复杂代码库的理解能⼒,还增强了整体的代码检索和导航的准确性。

它的出现为⾃动化软件⼯程领域,尤其是在⾯临RACG挑战时,带来了新的解决⽅案 ,展⽰了在多样化代码任务和现实世界应⽤中的⼴泛潜⼒和实际价值。

随着技术的不断发展,CodexGraph有望在未来⽀持更多编程语⾔ ,并进⼀步优化其⼯作流程和索引构建效率。

代码链接 :

https://github.com/modelscope/modelscope-agent/tree/master/apps/codexgraph_agent

arXiv链接 :

https://arxiv.org/pdf/2408.03910

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2024-08-12 11:45:09

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

文化铸魂提质量 创新驱动促发展
...生国际视野,学校先后与美国、德国、英国、澳大利亚、新加坡等优秀学校建立友好关系,定期组织师生交流互访,丰富学生个人阅历。2022年11月15日,学校刚刚开展了与新加坡华侨中学
2022-12-29 01:53:00
...通大学机械工程学院展开校企深度合作。双方以联合指导西安交大机械工程专业本科生CDIO创新实践项目和毕业设计为主要形式,探索以CDIO实践和毕业设计为项目载体的校企协同实践育人
2023-01-30 04:47:00
西安交大春季综合类双选会吸引千家单位万名学子
本文转自:中国新闻网3月22日,西安交大春季综合类双选会吸引了两万余名学生参与。西安交通大学供图本次双选会是西安交通大学连续举办的第四届“千家单位 万名学子”招聘活动,参会单位的
2024-03-22 17:31:00
...教育产教融合促进中国-中亚国家合作”展开深入研讨。西安交大副校长席光详细介绍了西安交通大学在高等教育产教融合方面的实践,重点介绍了学校在产教融合领域的顶层设计“6352”创新
2023-10-19 04:13:00
本文转自:西安日报西安交大举办2023年暑期及秋季学期校级海外学生项目发布会走出交大 走向“全球校园”本报讯(记者 刘雪妮) 为实施西安交大教育国际化规划,培养具有国际视野和国际
2023-03-19 03:05:00
余承东罕见再写代码,马化腾、李彦宏、雷军等也是程序员出身
...代码,全面转型管理和产品开发。1992年,周鸿祎毕业于西安交大电信学院计算机系,因成绩优异而被保送本校研究生,1995年毕业后进入方正。鲜为人知的是,周鸿祎在大三过了一把黑客
2024-06-24 09:20:00
西安交大二附院呼吸与危重医学科全力应对感染波峰
...自:人民日报客户端龚仕建12月初,疫情波峰席卷西安,西安交大二附院医院疫情防控领导小组不断优化资源配置,提高收治效率。使命在肩 全力应对感染波峰12月中旬,面对严峻的疫情形势
2023-01-06 12:58:00
上海交大安泰经管学院纪念恢复建院40周年
...做视频致辞。此外,学院还收到了来自中国银行、中国驻新加坡特命全权大使等合作单位、个人,以及来自牛津大学、纽约大学、清华大学、西安交通大学等30余所国内外兄弟学院的贺信和祝福。
2024-06-16 17:51:00
为未来的企业,寻找企业的未来!《赢在AI+》“C9联盟+专场”路演完美收官
...路”、创新驱动及西部大开发三大国家战略的重要平台,西安交大在此深入推进“6352”工程、不断探索“1121”产学研融合新模式,持续将创新成果的集聚地转变为创新发展的动力源泉,
2024-11-18 08:36:00
更多关于科技的资讯: