解锁!智能代码助手 Baidu Comate 硬核能力

近日,在全球软件开发大会上暨智能软件开发生态展上,来自 Baidu Comate 的资深研发工程师分享了精彩的专题演讲,小编整理了演讲精华,和大家一起玩转“大模型+软件研发”。

今天带来——吴玮琦《智能代码助手 Baidu Comate 的核心能力揭秘》,一起解锁 Baidu Comate 硬核能力。

图片

AI 如何助推软件生产领域代际变革

在过去的几十年里,软件发展经历了几个重要时代。借鉴行业和学术界的一些思考,我们可以做以下大致划分:

首先是上世纪五六十年代,随着软件复杂度和体积的急剧膨胀,人们发现软件领域出现所谓的“软件危机”,软件的质量问题暴露出来。先驱们开始把建筑、水利等“工程手段”,引入软件的开发和维护过程中,来解决上述问题,这是软件工程的开始。随着计算能力的大幅度提升,同时受到互联网以及开源软件运动的影响,进入到第二个阶段,我们称之为现代软件工程。

图片

来到当下,以 LLM 为代表的人工智能以及相关技术的推动,整个软件研发的生命周期和 AI 深度融合,我们姑且称为“未来软件工程”,也可以叫“AI 原生的软件工程”,其特点就是从需求定义到研发、测试、运维的整个流程里,工程师可以通过 Prompt 等技术手段让 LLM 协助我们工作,大幅提升研发工作的效率和产能。

百度如何应用 Baidu Comate 推动 AI 原生研发范式落地

Baidu Comate 是百度基于文心大模型研发的智能代码助手,以插件的形式深度集成在 IDE 中,借助文心大模型强大的文本理解与生成能力,为每一个工程师提供一个7*24小时的 AI 编码助手。Comate 的能力覆盖工程师开发工作的全流程,从代码生成到技术问答、生成单测等,一应俱全。我们简称为“三帮”:帮你想、帮你写、帮你改——需求开始阶段,帮我们解释已有代码,做一些疑难问题的回答;在编写阶段,结合上下文帮助我们续写代码,为代码生成注释;最后,还可以帮你改,比如 code review 时结合相应的编码规范做智能评审,在流水线上根据 Error 信息提供修复建议等等。

图片

Baidu Comate 有哪些核心能力?

1、专业的代码领域大模型

在编码这个垂直领域,需要强化大模型在编程领域的相关知识,通用 LLM 能做,但是做不好。所以需要从模型训练数据收集阶段,开始针对代码领域做定向增强。我们从开源代码和百度内部编程现场大数据,用多种手段精确筛选出高质量、高代表性,覆盖知识面、应用面广泛的代码数据,以提升信噪比。

图片

当然这些已经是同类产品的基本能力,Comate 有哪些特殊之处呢?

首先是 Comate 在文心大模型、PaddlePaddle 框架和应用层的三层架构组合优化后,端到端响应速度可以保持在600ms 以下。当然这也是我们在实践过程中找到的一个平衡:在保证代码生成质量的前提下,还可以尽量提升输出速度,做到代码生成速度跟上用户编写的状态。

其次是位代码编写昌吉给你定制的模型能力。Comate 在公司内部大规模落地过程中,我们深入到一线工程师的实际使用中去做调研,发现大家一半以上的时间不是编写新代码,而是在反复编辑与优化已有的代码。比如:在原有代码上添加和修改业务逻辑、为变量重新命名、为函数补充注释。但是以 GPT-3为代表的 decoder-based 的模型,只能根据上文来输出下文,无法感知下文。所以同时感知上文和下文,做所谓的“填空题”,即 Fill in the middle,这样的能力才是编码领域模型提升生成质量最核心的能力。为此我们重构了模型,来支持这种 FIM 的场景。

模型的灵魂是数据。有句数据领域的老话,Garbage in, garbage out。怎么教模型,模型就怎样生成。要想有高质量的生成结果,就要有高质量的精调数据。为了获取高质量的精调数据,我们邀请各技术委员会的语言专家分析、整理、优化训练和评估数据,确保数据能符合真实的使用场景,并借助公司内的 iDataset、iEValue 等工具有效的管理和迭代。

2、Prompt 工程,让模型更懂“你”

Prompt 工程第一个实践,是应用代码分析技术。我们观察用户的使用习惯,从研发现场去收集关键信息,得出这样一个结论:我们认为最近打开的文件和当前文件的引用是信噪比最高的信息。

图片

首先,因为设计良好的工程中肯定有很多公共模块被重复引用,这些模块往往不在当前文件中被定义,但是对模型来说,这些被引用的模块的定义又非常关键,只有知晓某些函数或者类的定义,才能准确的推理出他的使用方法。其次,如果工程师在某几个文件之间反复编辑,我们认为这几个文件内容是和工程师当前作业联系最紧密的,也是信息量最高的。

所以 Comate 在推理过程前,通过检索相关文件、使用 LSP 分析结果等手段,摘取一些关键信息送给模型,以生成更符合用户编码现场的代码。

Prompt 工程的另一方面尝试,是关联工程和模型外的私域知识,让 Comate 更懂你。

图片

说到关联外部知识,其实有不少方法,比较常见的就是 PT、SFT 和 RAG。首先 PT、SFT 成本高昂,假如我是一个个人开发者,肯定没有那么多资源来做模型精调。其次,开发相关的数据比如代码、三方库更新都很频繁,PT 和 SFT 有明显的滞后性。为了让用户更丝滑地接入外部知识,我们选择了用 RAG 做 Prompt 工程的另一部分实践。常见的外挂知识大多是自然语言,但是编程语言拥有严格的结构、逻辑和语法,需要定制化的数据处理逻辑,我们详细聊下 RAG 如何结合代码数据检索。

首先,代码作为结构化语言,有明确的 scope 和关联关系,通过定制的算法处理保证切分后也拥有完整的信息,提升代码文本的召回质量。代码块的划分就是根据不同语言的特点,解析代码的语法树并将代码文件切分为类、块、函数、行等不同级别的块(chunk)。

其次,Comate 的思考过程采用了与 TOT 和 Agent 的有效结合,形成了一种连续且多步骤的反馈机制。在这个过程中,Teacher Agent 负责对 Agent 的执行结果进行评估,并提供"整改策略"。根据这些策略,Agent 决定下一步的行动,无论是继续执行还是回溯并重新执行某个步骤。这样的机制保证了我们的模型不断调整并优化输出结果,直至满足预定标准,从而显著提升了模型输出的质量和准确率。

3、更智能、更易用

Comate 还在极致产品力上做了进一步探索,让 Comate 更智能,更易用。

图片

首先是更智能。无论你是一位开发者,还是项目经理,我们都知道写代码是一项复杂且需要高度专注的任务。现在,你可以通过 Comate 创新的 AutoWork 功能实现从需求到编码的全流程智能化,包括需求理解确认、复杂代码库分析、多编码任务分解等。

在技术层面,Autowork 结合了文心大模型思维链(COT)技术,使其具有了人类级别的思考能力,这意味着它可以像人类一样听懂和理解用户的需求,然后按照逻辑顺序,逐步完成一系列复杂的编码任务。另外,借助先进的 RAG 代码智能检索技术,这使得它能够将掌握的知识库信息完美地融入到大语言模型中。当用户提出问题时,它将利用这些知识库信息,让生成的回答更准确,更具价值。

另一方面是更易用。“Comate+”即开放平台,是指把 Comate 的能力开放给第三方开发者,支持知识扩展与能力扩展,第三方服务可以将能力连接到编程现场,并打造自己的定制化能力,建设更适合自己团队的研发助手。

“Comate+”开放平台核心主张是通过开放性,可以更好的让 Comate 来适应不同组织和个人,取得更贴合具体需求的智能化效果。

通过 Comate 插件这一使用形态,可以让平台能力直接触达开发人员第一工作现场,无需重复建设即可快速应用大模型能力,无限扩充平台场景,让 Comate 更适配团队的业务知识、团队规范、固化团队流程等。

——————END——————

推荐阅读

基于afx透明视频的视觉增强前端方案

百度一站式数据自助分析平台(TDA)建设

浅析如何加速商业业务实时化

登录系统演进、便捷登录设计与实现

一文带你完整了解Go语言IO基础库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python时序预测系列】灰狼算法(GWO)优化LSTM实现单变量时间序列预测(案例+源码)

这是我的第279篇原创文章。 一、引言 灰狼算法(GWO)是一种新型的优化算法,灵感来源于灰狼群体中的社会行为。在灰狼算法中,每只灰狼都有自己的位置和适应度值,通过模拟灰狼群体的行为来搜索最优解。将灰狼算法应用于优…

支持不同业务模式与安全要求的跨网传输解决方案,了解一下

对于科技研发型企业来说,最值钱的是研发代码这类数据资产。因此很多企业会想将这些数据“困”在内部,防止数据泄露。最常见的做法是通过防火墙、DMZ区、双网卡主机、虚拟机、网闸/光闸等隔离方式,将网络划分为企业内外网,较为常见…

职校智慧校园现状及问题解决

近年来,智慧校园已经可以满足学校日常办公的需要,但是还是存在缺乏整体规划、缺乏统一技术标准、原有应用陈旧、多重身份和密码体系、业务系统的开发和维护模式不统一、现有应用重管理轻服务现象严重、数据资产利用不足等问题。 职校智慧校园现状及问题分…

Redis详解(二)

事务 什么是事务? 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都…

怎么批量下载视频?DY视频爬虫在线提取采集工具

短视频批量下载工具,具有多种模块和功能,方便用户快速批量下载短视频。该软件的详细介绍: 功能模块介绍: 一. 搜索词批量搜索下载 视频关键词添加:支持添加多个视频关键词Q530269148进行全平台视频搜索。历史去重&a…

【全网瞩目】OpenAI春季发布会结束,一夜过后又惊喜——GPT4O,新的 LLM 标准诞生了

虽然昨天我就一直关注到OpenAI的主页提示,即将发布春季直播,而且也有很多媒体透露没有Sora,可能是AI Search等等,但是没想到结果还是这么惊喜。就连OpenAI方面也在直播前几天透露,不是搜索引擎,而是GPT的优…

vwmare虚拟机迁移磁盘方法

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理 虚拟机迁移磁盘的方法 简单方便快上手 当前目标 当前迁移文件: 当前位置: 目的地: e盘虚拟机文件夹 迁移到当前目录。 实际操作 先打开虚拟机的设置,找到这个虚拟机当前的位置…

渗透测试工具及插件第二期

一、OWASP Penetration Testing Kit 这个工具他集成了中间件,等版本信息,漏洞信息,url,标识头等信息,WAF/CDN识别,密匙等信息,多种信息的功能上集合的插件。 说明书:https://micros…

照明灯具十大排名都有哪些?市面上比较流行的十大护眼台灯品牌推荐

照明灯具十大排名都有哪些?护眼台灯排名当中靠前的主要有书客、飞利浦、松下等品牌。照明灯具作为家居与办公环境中不可或缺的元素,其品质与选择直接关系到人们的视觉健康与舒适度。本文将为大家揭示照明灯具的十大排名,让大家了解市场上最受…

SQL Server中怎么排查死锁问题

一、背景 我们在UAT环境压测的时候,遇到了如下的死锁异常。 Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 82) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Re…

Spring Cloud Alibaba 分布式配置中心(9)

项目的源码地址 Spring Cloud Alibaba 工程搭建(1) Spring Cloud Alibaba 工程搭建连接数据库(2) Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用(3) Spring Cloud Alibaba Ribbo…

C++深度解析教程笔记8

C深度解析教程笔记8 第17课 - 对象的构造(上)类定义中成员变量i和j的初始值?实验-成员变量的初始值对象初始化解决方案1实验-手动调用函数初始化对象对象初始化解决方案2:构造函数实验-构造函数小结 第18课 - 对象的构造&#xff…

Spring AI项目Open AI绘画开发指导

Spring AI项目创建 Spring AI简介创建Spring AI项目配置项目pom和application文件controller接口开发运行测试 Spring AI简介 Spring AI 是 AI 工程的应用框架。其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI,并推广…

【机器学习】机器学习与人工智能融合新篇章:自适应智能代理在多元化复杂环境中的创新应用与演进趋势

🔒文章目录: 💥1.引言 🚋1.1 机器学习与人工智能的发展背景 🚌1.2 自适应智能代理的概念与重要性 🚐1.3 研究目的与意义 ☔2.自适应智能代理的关键技术 🛣️2.1 环境感知与信息处理技术 …

RelationMap图谱--VUE,真实项目提供mock数据

RelationMap官网&#xff1a; 在线配置官网&#xff08;可以把数据放进去&#xff0c;直接看效果&#xff09; VUE2 效果&#xff1a;左侧列表栏&#xff0c;点击右侧显示对应的图谱 代码&#xff1a;按照代码直接贴过去&#xff0c;直接出效果 relationMap/index.vue <te…

泽攸科技无掩模光刻机:引领微纳制造新纪元

在当今科技迅猛发展的时代&#xff0c;微纳制造技术正变得越来越重要。泽攸科技作为这一领域的先行者&#xff0c;推出了其创新的无掩模光刻机&#xff0c;这一设备在微电子制造、微纳加工、MEMS、LED、生物芯片等多个高科技领域展现出了其独特的价值和广泛的应用前景。 技术革…

Python-VBA函数之旅-tuple函数

目录 一、tuple函数的常见应用场景 二、tuple函数使用注意事项 三、如何用好tuple函数&#xff1f; 1、tuple函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、tu…

爱普生推出适用于物联网小尺寸温补晶振TG1612SLN

爱普生推出一款小尺寸温补晶振TG1612SLN&#xff0c;之前推出的小尺寸温补晶振TG2016SLN&#xff0c;封装2016已经是很小了&#xff0c;而TG1612SLN的尺寸仅为1.6x1.2x0.45毫米&#xff0c;不得不佩服爱普生的研发能力。 温度补偿晶体振荡器TG1612SLN使用爱普生开发和制造…

程序员的神奇应用:从代码创造到问题解决的魔法世界之持续集成/持续部署

文章目录 持续集成/持续部署 在软件开发的海洋中&#xff0c;程序员的实用神器如同航海中的指南针&#xff0c;帮助他们导航、加速开发、优化代码质量&#xff0c;并最终抵达成功的彼岸。这些工具覆盖了从代码编写、版本控制到测试和部署的各个环节。 在当今数字化的世界里&…

Llama 3 是怎么回事?Arena 数据分析

4 月 18 日,Meta 发布了他们最新的开放权重大型语言模型 Llama 3。从那时起,Llama 3-70B 就在 English Chatbot Arena 排行榜上迅速上升,拥有超过 50,000 次对战。Meta 的这一非凡成就对开源社区来说是个好消息。在这篇博文中,我们旨在深入探讨为什么用户将 Llama 3-70b 与 GPT…