专攻大规模模型,却不知道怎么做:浙江大学CatCoder团队解决AI编程适配问题

图 | 胡星(来源:胡星)炒股的时候,看看金麒麟的分析师报告。本报告权威、专业、及时、全面,将帮助您抓住潜在的专题机会。 (来源:深科技)
最近,浙江大学胡星河副教授和他的团队开发了一种名为CatCoder的人工智能框架,它可以理解整个软件项目并生成准确可用的代码。对于Java任务,与业界领先代表之一的RepoCoder相比,代码构建通过率和测试通过率分别提高了14.44%和17.35%。
同时,它还提供了强大的多功能性。该团队使用不同大小和类型的人工智能模型进行测试,发现所有测试的模型都表现最佳。
照片|胡星(来源:胡星)
胡星告诉 DeepTech:“由于不同的公司和团队使用不同的编程语言,所以我们选择了两种语言进行测试:广泛使用的 Java 和更新但越来越重要的语言相信。 “我们发现,即使在 Rust 的情况下,我们的方法也能够生成高质量的代码,而 Rust 是一种资源相对较少的语言(用户群体和训练数据较少)。”
此外,提醒效果尤其明显,尤其是在小型号上,这有助于小型号缩小与大型号的差距。同时,这就像是在训练一个超级AI助手。该向导不仅了解编程语法,还熟悉项目的所有约定,例如可以调用哪些类以及如何使用函数。这样,您就可以编写不会丢失或出错的代码。
胡星还表示:“我们的方法具有可插拔、松耦合的设计,不需要对大模型本身进行训练。这意味着它可以灵活地与大模型和程序分析技术相结合,以适应不断变化的大模型的发展,避免重复训练的高昂成本。“我会的。
第二,准确解决了行业的实际问题。大型模型通常无法理解企业内的私有代码库和业务逻辑。通过引入本地上下文,我们的方法允许大型模型“读取”当前的代码库并生成更高质量、更与领域相关的代码。 ”
(来源:https://arxiv.org/pdf/2406.03283)
解决代码世界中的寻路挑战
人们在使用人工智能编写代码时遇到的问题是,如果你正在开发大型游戏,你的代码会分布在数百或数千个文件中。假设你需要添加一个新的函数,叫做“计算角色的跳跃轨迹”。
以前的人工智能即使经过大量训练也可能只能理解物理公式。我不知道如何在特定项目中创建“字符”对象,命名其坐标属性,或者应该为“跳跃”动作调用什么现成函数。
CatCoder的创新之处在于它提供了两个重要的工具对于人工智能。 :第一个工具是相似代码雷达,它允许您查找与相似项目中的示例具有相似功能和结构的代码。第二个工具是类型关系图,它可以自动分析并告诉AI当前代码环境中哪些类、接口、函数和属性可以直接使用。
这就像在一个巨大的图书馆中搜索信息一样。 CatCoder不仅可以帮助您找到基本主题相似的书籍,即相关代码,而且propIt直接链接图书馆索引和书籍关联图(类型上下文),因此它生成的代码更加精确和专业。
(来源:https://arxiv.org/pdf/2406.03283)
支持立国之本的基础软件和产业软件发展。
使用 CatCoder 时主要分为三个步骤。
第一步是收集线索,即对代码进行相关搜索。 CatCoder首先智能划分en的所有源代码文件轮胎突出成更小的零件。然后根据需要实现的功能的描述启动两个搜索引擎。第一个是关键字搜索,可以匹配函数名、变量名等关键字,类似于传统的搜索引擎。第二是语义搜索。它理解代码并找到功能相似的片段。然后 CatCoder 合并两个搜索结果,并使用第一个最相关的代码片段作为示例。
第二步是绘制地图以提取类型的上下文。这是CatCoder的独特能力。对于 Java 和 Rust 等静态类型语言,CatCoder 启动静态分析器。该分析器可以绘制项目中所有类和接口之间的依赖关系图。例如,如果一个新函数属于“角色”类,则解析器可以找到“角色”类可以调用的所有方法,以及与其关联的其他类,并对它们的指令进行分类。这个“地图”的存在可以防止AI调用不存在的函数。
第三步是生成代码。 CatCoder 将前两步中收集的参考样本和类型映射与任务描述打包在一起,形成非常详细的消息,发送到其背后的 AI 模型。有了足够的指示上下文,人工智能可以生成语法代码,完全集成到现有项目中,并像专家项目开发人员一样通过测试。
(来源:https://arxiv.org/pdf/2406.03283)

照片| CatCoder 徽标(来源:胡星)
根据结果,您有两个后续计划。第一步是研究“低资源”编程语言的代码生成。这意味着提高大型模型训练数据覆盖率不足的语言(Ruby、Julia 等)的代码生成质量。二是研究“小规模模型协作”的代码生成。这允许大型、强大但昂贵的模组els 引导更小、更轻的模型,使后者能够部署在计算资源有限的实验室和小型企业中,提供高质量的代码生成服务。
参考文献:
相关文件https://arxiv.org/pdf/2406.03283
管理及排版:何晨龙
新浪财经公众号
我们每天24小时播放最新的财经新闻和视频。更多粉丝福利,请扫描二维码关注我们(新浪财经)

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注

Facebook Twitter Instagram Linkedin Youtube