[发明专利]一种代码补全方法、装置以及相关设备在审
申请号: | 202011507517.1 | 申请日: | 2020-12-18 |
公开(公告)号: | CN112527273A | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 王健宗;李泽远;何安珣 | 申请(专利权)人: | 平安科技(深圳)有限公司 |
主分类号: | G06F8/33 | 分类号: | G06F8/33;G06N20/00;G06N3/04 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 熊永强 |
地址: | 518000 广东省深圳市福田区福*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 方法 装置 以及 相关 设备 | ||
本申请提供一种代码补全方法,包括:获取本地数据集和聚合服务器发送的初始模型参数;根据初始模型参数和本地数据集训练局部模型,得到局部模型参数;将局部模型参数加密并发送给聚合服务器,以供聚合服务器根据多个参与方发送的局部模型参数进行聚合,得到全局模型参数;获取全局模型参数,根据全局模型参数和局部模型参数更新局部模型,得到训练好的代码补全模型;获取用户输入的代码,将代码输入至代码补全模型,得到目标代码。本申请实施例有效地解决了以往代码补全过程中数据集采用的是公开的数据集,缺乏数据隐私保护问题,并且可以提供个性化的代码补全服务,加快软件开发的进程。
技术领域
本申请涉及计算机技术领域,具体涉及一种代码补全方法、装置以及相关设备。
背景技术
随着计算机网络技术的日益普及,代码补全是集成开发环境(IntegratedDevelopment Environments,IDEs)最重要的功能之一,代码补全可以减少程序员的工作量,加快软件开发的进程。
目前,代码补全方法主要是首先从开源代码库(例如github上的开源项目)或者开源社区获得大量的数据作为深度学习的语料库,利用代码解析器对源代码进行处理,例如将源代码转化为Token序列或者转化为抽象语法树,然后选择或设计一个合适的深度神经网络对语料库中的数据进行训练。在这个过程中,数据集采用的是公开的数据集,通常缺乏数据隐私保护,而且无法根据IDEs用户的编程习惯提供个性化的代码补全服务。
发明内容
本申请提供了一种代码补全方法、装置以及相关设备,能够有效地解决以往代码补全过程中数据集采用的是公开的数据集,缺乏数据隐私保护而且无法提供个性化的代码补全服务的问题。
第一方面,本申请提供一种代码补全方法,应用于第一参与方,第一参与方是包括聚合服务器和多个参与方的系统中的任意一个参与方,包括:获取本地数据集和聚合服务器发送的初始模型参数,其中,本地数据集包括多个源代码;根据初始模型参数和本地数据集训练局部模型,得到局部模型参数;将局部模型参数加密并发送给聚合服务器,以供聚合服务器根据多个参与方发送的局部模型参数进行聚合,得到全局模型参数;获取全局模型参数,根据全局模型参数和局部模型参数更新局部模型,得到训练好的代码补全模型;获取用户输入的代码,将代码输入至代码补全模型,得到目标代码。
第二方面,本申请实施例提供了一种代码补全装置,包括:获取单元,用于获取本地数据集和聚合服务器发送的初始模型参数,其中,本地数据集包括多个源代码;局部训练单元,用于根据初始模型参数和本地数据集训练局部模型,得到局部模型参数;发送单元,用于将局部模型参数加密并发送给聚合服务器,以供聚合服务器根据多个参与方发送的局部模型参数进行聚合,得到全局模型参数;更新单元,用于获取全局模型参数,根据全局模型参数和局部模型参数更新局部模型得到训练好的代码补全模型;处理单元,用于获取用户输入的代码,将代码输入至代码补全模型,得到目标代码。
第三方面,本申请实施例提供一种代码补全设备,包括:处理器和存储器,处理器执行存储器中的代码执行如第一方面或第一方面任意一种实现方式提供的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,包括指令,当指令在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种实现方式提供的方法。
本申请实施例通过采用联邦学习的架构,可以在保证各个参与方的代码不公开情况下,一起训练一个高效的代码补全模型,模型可以根据每个参与方用户的编码习惯,提供更加个性化的代码补全服务,满足开发编程过程中的各种需求,进一步加快软件开发的过程。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种联邦学习的系统;
图2是本申请实施例提供的一种的代码补全方法流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安科技(深圳)有限公司,未经平安科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011507517.1/2.html,转载请声明来源钻瓜专利网。