CN112463161A - 基于联邦学习的代码注释生成方法、系统及装置 - Google Patents

基于联邦学习的代码注释生成方法、系统及装置 Download PDF

Info

Publication number
CN112463161A
CN112463161A CN202011355708.0A CN202011355708A CN112463161A CN 112463161 A CN112463161 A CN 112463161A CN 202011355708 A CN202011355708 A CN 202011355708A CN 112463161 A CN112463161 A CN 112463161A
Authority
CN
China
Prior art keywords
model
code annotation
parameter set
code
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011355708.0A
Other languages
English (en)
Other versions
CN112463161B (zh
Inventor
王健宗
李泽远
何安珣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202011355708.0A priority Critical patent/CN112463161B/zh
Publication of CN112463161A publication Critical patent/CN112463161A/zh
Application granted granted Critical
Publication of CN112463161B publication Critical patent/CN112463161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及人工智能,提供一种基于联邦学习的代码注释生成方法,包括:生成初始参数集,并将初始参数集发送至预设的客户端;通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的优化参数集;将各客户端的模型优化参数集发送至预设服务器,并基于预设服务器对接收到的优化参数集进行聚合,得到聚合优化参数集;将聚合优化参数集发送至各客户端,并基于聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;基于代码注释生成新模型对各客户端的待注释代码进行代码注释。本发明提供技术方案既能够解决现有代码注释自动生成方法满足特定公司或组织的需要的问题。

Description

基于联邦学习的代码注释生成方法、系统及装置
技术领域
本发明涉及数据编译技术领域,尤其涉及一种基于联邦学习的代码注释生成方法、系统、装置及存储介质。
背景技术
在计算机领域,软件维护过程当中,开发者需要花费大量时间去理解源代码。代码的注释是帮助开发者理解源代码的重要组成部分。然而,在软件实际维护过程中,由于代码注释质量不高或缺失,通常开发者仅仅只能根据源代码的内容去推断它的功能,这将导致软件的维护效率大大降低。因此,越来越多的研究者开始探索如何自动给源代码生成注释。
现有的关于代码注释自动生成的方法已经有很多,但是这些传统的方法通常都是基于公开项目的源代码进行训练的,然而,这种基于开源代码训练的模型可能不适用于某些公司或组织的内部业务需求。
此外,对于某一公司或组织来说,他们的内部数据量有限,无法仅用自己已有的数据单独训练一个高效的模型;另外,由于源代码是一个软件公司或组织最重要、隐私的部分,是需要被严格保护起来的。
基于以上问题,急需一个在各公司之间不暴露源代码的前提下的高性能的代码注释生成方法。
发明内容
本发明提供一种基于联邦学习的代码注释生成方法、系统、电子装置以及计算机存储介质,其主要目的在于解决代码注释自动生成方法通常只在开源项目的源代码上进行训练,以这样的方式训练出来的模型不满足特定公司或组织的需要的问题。
为实现上述目的,本发明提供一种基于联邦学习的代码注释生成方法,该方法包括如下步骤:
基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
优选地,所述预设样本数据集存储在区块链中,所述预设样本数据集包括源代码样本序列和注释单词样本序列;并且,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程包括:
对所述源代码样本序列进行编码,以提取所述源代码样本序列中的词汇特征序列;
对所述词汇特征序列进行译码,以通过模拟所述注释单词样本序列生成注释单词目标序列;其中,
在所述编码和所述译码过程中,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
另外,本发明还提供一种基于联邦学习的代码注释生成系统,所述系统包括:
初参生成单元,用于基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
初步训练单元,用于基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
参数聚合单元,用于将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
再次训练单元,用于将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
注释生成单元,用于基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
另外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的基于联邦学习的代码注释生成程序,所述基于联邦学习的代码注释生成程序被所述处理器执行时实现如下步骤:
基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
另外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有基于联邦学习的代码注释生成程序,所述基于联邦学习的代码注释生成程序被处理器执行时,实现如上述症发病部位抽取方法的步骤。
本发明提出的基于联邦学习的代码注释生成方法、电子装置及计算机可读存储介质,通过预先建立一个联邦学习框架,然后基于联邦学习的框架实现各方公司或组织协同训练代码注释生成模型,能够既能够解决传统方法只能在开源项目上训练的问题,又能够提高协同代码注释生成的性能、精度。此外,由于引入了第三方服务器(预设服务器),并且,在第三方服务器于各客户端之间设置了加密传输调节,能够有效地避免其他客户端获取到本公司的源代码数据,保护本公司的隐私。此外,通过设置重复循环聚合以及再次训练过程,能够进一步提高代码注释生成模型精度。
附图说明
图1为根据本发明实施例的基于联邦学习的代码注释生成方法的较佳实施例流程图;
图2为根据本发明实施例的联邦学习框架的结构图;
图3为根据本发明实施例的代码注释生成模型的结构图;
图4为根据本发明实施例的电子装置的较佳实施例结构示意图;
图5为根据本发明实施例的基于联邦学习的代码注释生成程序的内部逻辑示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。
以下将结合附图对本申请的具体实施例进行详细描述。
实施例1
为了说明本发明提供的基于联邦学习的代码注释生成方法,图1示出了根据本发明提供的基于联邦学习的代码注释生成方法的流程。
如图1所示,本发明提供的基于联邦学习的代码注释生成方法,包括:
S110:基于预设服务器生成模型初始参数集,并将该模型初始参数集发送至预设的至少两个客户端;其中,该预设服务器与该客户端构成联邦学习框架,该预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型。
需要说明的是,本发明提供的基于联邦学习的代码注释生成方法是基于预设的联邦学习框架实现的,因此需要预先设置一个联邦学习框架,图示出了为根据本发明实施例的联邦学习框架的结构,由图2可知该联邦学习框架包括一个可信赖的第三方服务器(即预设服务器)以及参与代码注释生成模型优化的多个公司或组织的客户端(包括客户端1、客户端2……客户端n),需要说明的是,各客户端具与该预设服务器双向连通,并且各客户端之间不直接连通。此外,各客户端均配置有相应的代码注释生成模型(即模型1、模型2……模型n),用于待模型训练完毕后对该客户端上的待注释代码进行代码注释。此外,各客户端上均预设有样本数据集,这些样本数据集均是公司内部的隐私数据,主要包括该公司内部源代码等信息,用于对该客户端相应的代码注释生成模型进行训练。
此外,还需要说明的是,本发明的主要目的在于对各客户端上的代码注释生成模型进行更新,以提高其代码注释精度。而每一个代码注释生成模型都需要预先设定多个初始参数,即初始参数集。此外,由于各客户端上的代码注释生成模型的结构基本一致,因此,可以基于预设服务器生成同一组初始参数集,并将该模型初始参数集发送至所有的客户端,供客户端上的代码注释生成模型初步训练。当然,由于各客户端对应的公司不同,各公司的主营业务不同,因此,各客户端上的代码注释生成模型在精度需求等方面略有不同,因此,也可以基于预设服务器为不同的代码注释生成模型生成多组初始参数集,并发送至相应的客户端。
此处需要强调的是,由于本发明的创新点在于基于联邦学习框架进行代码注释生成模型的训练,因此,对于如何基于各客户端的需求生成相应的初始参数集的过程,不再赘述。
S120:基于该模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集。
具体地,图3示出了根据本发明实施例的代码注释生成模型的结构,由图3可知,本发明提供的预设样本数据集是由本地的有注释的源代码解析出的,包括源代码样本序列和注释单词样本序列,这两种序列相互对应,前者代表源代码信息,后者代表相应的注释信息。
并且,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程包括:
对所述源代码样本序列进行编码,以提取所述源代码样本序列中的词汇特征序列;对所述词汇特征序列进行译码,以通过模拟所述注释单词样本序列生成注释单词目标序列;其中,在所述编码和所述译码过程中,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
此外,为进一步提高本发明提供的代码注释生成模型的精度,该预设样本数据集还包括抽象语法树样本序列(即AST样本序列),抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,各客户端通过对抽象语法树进行深度优先遍历,得到相应的抽象语法树序列。
并且,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程可以包括:
分别对所述源代码样本序列和所述抽象语法树样本序列进行编码,以提取所述源代码样本序列中的词汇特征序列以及所述抽象语法树样本序列中的语法特征序列;通过注意机制选择所述词汇特征序列与所述语法特征序列中的优质特征序列;对所述优质特征序列进行译码,以通过模拟所述注释单词样本序列生成注释单词目标序列;其中,在编码和译码过程中,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
当然,为提高模型的优化效果,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程还可以包括:
通过随机梯度下降法基于所述预设样本数据集对所述代码注释生成模型进行迭代训练,直至预设的目标函数收敛;其中,当所述目标函数收敛时,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
需要说明的是,在代码注释生成模型的训练过程中,通过上述编码和译码实现代码注释生成模型的训练,当模型收敛时(即目标函数收敛),代码注释生成模型训练完毕。
下面结合图3提供的代码注释生成模型的结构,对该代码注释生成模型的数据处理过程以及训练过程进行详细地介绍。
首先,用一个双向LSTM Encoder(双向长短时编码器)对源代码样本序列进行编码,以提取源代码样本序列中的词汇特征,得到词汇特征序列。
具体地,用
Figure BDA0002802491720000076
表示一段长度为
Figure BDA0002802491720000077
的源代码样本序列。对于每一个时间步t,隐藏状态st(对应一个词汇特征)可以计算为:
Figure BDA0002802491720000071
其中,
Figure BDA0002802491720000079
表示向量连接。最后,双向LSTM Encoder将X映射为一个隐藏状态序列
Figure BDA0002802491720000078
(即词汇特征序列)。
相应的,用一个双向LSTM Encoder对抽象语法树样本序列进行编码,以提取抽象语法树样本序列中的语法特征,得到语法特征序列。
具体地,用
Figure BDA00028024917200000712
表示一段长度为
Figure BDA00028024917200000713
的抽象语法树样本序列。对于每一个时间步t,隐藏状态s′t(对应一个语法特征)可以计算为:
Figure BDA0002802491720000072
其中,
Figure BDA00028024917200000710
表示向量连接。最后,双向LSTM Encoder将X′映射为一个隐藏状态序列
Figure BDA00028024917200000711
然后,通过注意机制环节提取出词汇特征序列以及语法特征序列中最重要的部分,即优质特征序列。
具体地,对于注释单词样本序列中每一个词,用注意机制环节来选择词汇特征序列以及语法特征序列中与之最重要的部分,从而提高模型对注释单词样本序列的模拟效果。
更为具体地,以ct是作为目标单词yt(对应注释单词样本序列的一个词)的attention(注意机制)值(对应优质特征序列中的一个优质特征),ct可以计算为:
Figure BDA0002802491720000073
其中,α和α′分别是源代码样本序列和抽象语法树样本序列的attention预设权重,可以按照公式计算:
Figure BDA0002802491720000074
Figure BDA0002802491720000075
其中,
etj=a(ht-1,sj)
e′tj=a(ht-1,s′j)
ht-1表示第t-1个时间步。
最后,通过解码器基于该优质特征序列模拟该注释单词样本序列,以生成注释单词目标序列。
具体地,可以通过模拟预测词yi的概率的方式来生成注释单词目标序列y,具体公式如下:
p(yi|y1,…,yi-1,x)=g(yi-1,hi,ci)
其中,g是一个用来计算词yi的概率的函数。
模型训练优化环节(对应模型的初步训练以及后续的再次训练过程),用于通过随机梯度下降法基于该预设样本数据集对该代码注释生成模型进行迭代训练,直至该目标函数收敛,目标函数如下:
Figure BDA0002802491720000081
其中N表示样本总数,l表示目标序列的长度。
Figure BDA0002802491720000085
表示注释单词目标序列中第i个样本的第j个词。
待该目标函数收敛后,该模型初始参数集即会随着模型的训练变为模型优化参数集。
另外,需要强调的是,为进一步保证上述预设样本数据集中数据的私密和安全性,预设样本数据集存储在区块链的节点中。
S130:将各客户端的该模型优化参数集发送至该预设服务器,并基于该预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集。
具体地,在基于该预设服务器对接收到的模型优化参数集进行聚合的过程中,
在该预设服务器接收到的所有的模型优化参数集中任取n′个模型优化参数集并基于预设聚合公式进行聚合处理,以得到该聚合优化参数集;其中,
该预设聚合公式为:
Figure BDA0002802491720000082
其中,n′<n,n为客户端的总个数,
Figure BDA0002802491720000084
为第i个客户端模型的第j个参数,
Figure BDA0002802491720000083
为聚合优化参数集的第j个聚合优化参数。
通过参数聚合的方式,可以实现各方公司或组织协同训练代码注释生成模型,能够既能够解决传统方法只能在开源项目上训练的问题,又能够提高协同代码注释生成的性能、精度。
S140:将该聚合优化参数集发送至各客户端,并基于该聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型。
进一步地,为提高模型的代码注释精度,本发明提供的基于联邦学习的代码注释生成方法还可以在基于该聚合优化参数集对各代码注释生成模型进行再次训练得到模型优化参数之后,包括:
重复循环基于该预设服务器对该模型优化参数聚合的过程以及基于该聚合优化参数集对各代码注释生成模型进行再次训练的过程,直至各代码注释生成模型的模拟注释精度达到预设精度阈值(优选值为98%)。
此处需要说明的是,各代码注释生成模型的模拟注释精度需要通过测试进行确定,即对于每一个代码注释生成模型,当其完成一轮训练之后,即可通过预先设定的测试样本进行测试,将测试后生成的模拟注释与测试样本中的实际注释进行相似度比较,当相似度达到98%时,即可停止模型训练,该代码注释生成模型即为达到预设精度阈值。
此外,还需要说明的是,关于测试后生成的模拟注释与测试样本中的实际注释的相似度,可以通过比较模拟注释和实际注释中的单词的相同率进行确定;例如,模拟注释中有98%即以上的单词与实际注释中的单词相同,则判定两者的相似度达到98%。
需要说明的是,由于不同的代码注释生成模型所需的模拟注释精度不同,因此需要所有的代码注释生成模型的模拟注释精度均达到预设精度阈值,才停止上述循序。对于预设精度阈值,可以根据不同的代码注释生成模型设置不同的值。
S150:基于该代码注释生成新模型对各客户端的待注释代码进行代码注释。
需要说明的是,在经过步骤S110至步骤S140后,已经得到了一个高精度的代码注释生成新模型,通过该代码注释生成新模型对待注释代码进行代码注释,即可快速准确的实现各客户端上新产生的待注释代码的注释过程,显著提高软件的维护效率。
此外,进一步提高整个联邦学习过程中各客户端内数据的保密性,可以在将各客户端的该模型优化参数集发送至该预设服务器之前,先对该模型优化参数集进行动态加密,然后发送至该预设服务器进行聚合;
在将该聚合优化参数集发送至各客户端之后,先对该聚合优化参数集进行解密,然后再基于该聚合优化参数集对各代码注释生成模型进行再次训练。
通过上述技术方案的表述可知,本发明提供的基于联邦学习的代码注释生成方法,通过预先建立一个联邦学习框架,然后基于联邦学习的框架实现各方公司或组织协同训练代码注释生成模型,能够既能够解决传统方法只能在开源项目上训练的问题,又能够提高协同代码注释生成的性能、精度。此外,由于引入了第三方服务器(预设服务器),并且,在第三方服务器于各客户端之间设置了加密传输调节,能够有效地避免其他客户端获取到本公司的源代码数据,保护本公司的隐私。此外,通过设置重复循环聚合以及再次训练过程,能够进一步提高代码注释生成模型精度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例2
与上述方法相对应,本申请还提供一种基于联邦学习的代码注释生成系统,该系统包括:
初参生成单元,用于基于预设服务器生成模型初始参数集,并将该模型初始参数集发送至预设的至少两个客户端;其中,
该预设服务器与该客户端构成联邦学习框架,该预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
初步训练单元,用于基于该模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
参数聚合单元,用于将各客户端的该模型优化参数集发送至该预设服务器,并基于该预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
再次训练单元,用于将该聚合优化参数集发送至各客户端,并基于该聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
注释生成单元,用于基于该代码注释生成新模型对各客户端的待注释代码进行代码注释。
实施例3
本发明还提供一种电子装置70。参照图4所示,该图为本发明提供的电子装置70的较佳实施例结构示意图。
在本实施例中,电子装置70可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置70包括:处理器71以及存储器72。
存储器72包括至少一种类型的可读存储介质。至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,可读存储介质可以是该电子装置70的内部存储单元,例如该电子装置70的硬盘。在另一些实施例中,可读存储介质也可以是电子装置1的外部存储器,例如电子装置70上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,存储器72的可读存储介质通常用于存储安装于电子装置70的基于医学文献的基于联邦学习的代码注释生成程序73。存储器72还可以用于暂时地存储已经输出或者将要输出的数据。
处理器72在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器72中存储的程序代码或处理数据,例如基于联邦学习的代码注释生成程序73等。
在一些实施例中,电子装置70为智能手机、平板电脑、便携计算机等的终端设备。在其他实施例中,电子装置70可以为服务器。
图4仅示出了具有组件71-73的电子装置70,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置70还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置70还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。显示器用于显示在电子装置70中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置70还可以包括触摸传感器。触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。
此外,该电子装置70的显示器的面积可以与触摸传感器的面积相同,也可以不同。可选地,将显示器与触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。
可选地,该电子装置70还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。
在图4所示的装置实施例中,作为一种计算机存储介质的存储器72中可以包括操作系统、以及基于联邦学习的代码注释生成程序73;处理器71执行存储器72中存储的基于联邦学习的代码注释生成程序73时实现如下步骤:
基于预设服务器生成模型初始参数集,并将该模型初始参数集发送至预设的至少两个客户端;其中,
该预设服务器与该客户端构成联邦学习框架,该预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于该模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的该模型优化参数集发送至该预设服务器,并基于该预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将该聚合优化参数集发送至各客户端,并基于该聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于该代码注释生成新模型对各客户端的待注释代码进行代码注释。
在该实施例中,图5为根据本发明实施例的基于联邦学习的代码注释生成程序的内部逻辑示意图,如图5所示,基于联邦学习的代码注释生成程序73还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器72中,并由处理器71执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图5所示,为图4中基于联邦学习的代码注释生成程序73较佳实施例的程序模块图。基于联邦学习的代码注释生成程序73可以被分割为:初参生成模块74、初步训练模块75、参数聚合模块76、再次训练模块77以及注释生成模块78。模块74-78所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如,其中:
初参生成模块74,用于基于预设服务器生成模型初始参数集,并将该模型初始参数集发送至预设的至少两个客户端;其中,
该预设服务器与该客户端构成联邦学习框架,该预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
初步训练模块75,用于基于该模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
参数聚合模块76,用于将各客户端的该模型优化参数集发送至该预设服务器,并基于该预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
再次训练模块77,用于将该聚合优化参数集发送至各客户端,并基于该聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
注释生成模块78,用于基于该代码注释生成新模型对各客户端的待注释代码进行代码注释。
实施例4
本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有基于联邦学习的代码注释生成程序73,基于联邦学习的代码注释生成程序73被处理器执行时实现如下操作:
基于预设服务器生成模型初始参数集,并将该模型初始参数集发送至预设的至少两个客户端;其中,
该预设服务器与该客户端构成联邦学习框架,该预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于该模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的该模型优化参数集发送至该预设服务器,并基于该预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将该聚合优化参数集发送至各客户端,并基于该聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于该代码注释生成新模型对各客户端的待注释代码进行代码注释。
本发明提供的计算机可读存储介质的具体实施方式与上述基于联邦学习的代码注释生成方法、电子装置的具体实施方式大致相同,在此不再赘述。
需要说明的是,本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要进一步说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于联邦学习的代码注释生成方法,应用于电子装置,其特征在于,所述方法包括:
基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
2.根据权利要求1所述的基于联邦学习的代码注释生成方法,其特征在于,所述预设样本数据集包括源代码样本序列和注释单词样本序列;并且,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程包括:
对所述源代码样本序列进行编码,以提取所述源代码样本序列中的词汇特征序列;
对所述词汇特征序列进行译码,以通过模拟所述注释单词样本序列生成注释单词目标序列;其中,
在所述编码和所述译码过程中,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
3.根据权利要求1所述的基于联邦学习的代码注释生成方法,其特征在于,所述预设样本数据集包括源代码样本序列和注释单词样本序列以及抽象语法树样本序列;并且,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程包括:
分别对所述源代码样本序列和所述抽象语法树样本序列进行编码,以提取所述源代码样本序列中的词汇特征序列以及所述抽象语法树样本序列中的语法特征序列;
通过注意机制选择所述词汇特征序列与所述语法特征序列中的优质特征序列;
对所述优质特征序列进行译码,以通过模拟所述注释单词样本序列生成注释单词目标序列;其中,
在编码和译码过程中,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
4.根据权利要求3所述的基于联邦学习的代码注释生成方法,其特征在于,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练的过程还包括:
通过随机梯度下降法基于所述预设样本数据集对所述代码注释生成模型进行迭代训练,直至预设的目标函数收敛;其中,
当所述目标函数收敛时,所述代码注释生成模型的模型参数得以优化以生成所述模型优化参数集。
5.根据权利要求1所述的基于联邦学习的代码注释生成方法,其特征在于,在将各客户端的所述模型优化参数集发送至所述预设服务器之前,先对所述模型优化参数集进行动态加密,然后发送至所述预设服务器进行聚合;
在将所述聚合优化参数集发送至各客户端之后,先对所述聚合优化参数集进行解密,然后再基于所述聚合优化参数集对各代码注释生成模型进行再次训练。
6.根据权利要求1所述的基于联邦学习的代码注释生成方法,其特征在于,在基于所述预设服务器对接收到的模型优化参数集进行聚合的过程中,
在所述预设服务器接收到的所有的模型优化参数集中任取n′个模型优化参数集并基于预设聚合公式进行聚合处理,以得到所述聚合优化参数集;其中,
所述预设聚合公式为:
Figure FDA0002802491710000031
其中,n′<n,n为客户端的总个数,
Figure FDA0002802491710000032
为第i个客户端模型的第j个参数,
Figure FDA0002802491710000033
为聚合优化参数集的第j个聚合优化参数。
7.根据权利要求6所述的基于联邦学习的代码注释生成方法,其特征在于,在基于所述聚合优化参数集对各代码注释生成模型进行再次训练得到模型优化参数之后,还包括:
重复循环基于所述预设服务器对所述模型优化参数聚合的过程以及基于所述聚合优化参数集对各代码注释生成模型进行再次训练的过程,直至各代码注释生成模型的模拟注释精度达到预设精度阈值。
8.一种基于联邦学习的代码注释生成系统,其特征在于,所述系统包括:
初参生成单元,用于基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
初步训练单元,用于基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
参数聚合单元,用于将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
再次训练单元,用于将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
注释生成单元,用于基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
9.一种电子装置,其特征在于,所述电子装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的基于联邦学习的代码注释生成程序,所述基于联邦学习的代码注释生成程序被所述处理器执行时实现如下步骤:
基于预设服务器生成模型初始参数集,并将所述模型初始参数集发送至预设的至少两个客户端;其中,
所述预设服务器与所述客户端构成联邦学习框架,所述预设服务器与各客户端之间均可进行双向信息传输,并且各客户端均配置有相应的代码注释生成模型;
基于所述模型初始参数集,通过各客户端上的预设样本数据集对其相应的代码注释生成模型进行初步训练,以得到各代码注释生成模型的模型优化参数集;
将各客户端的所述模型优化参数集发送至所述预设服务器,并基于所述预设服务器对接收到的模型优化参数集进行聚合,得到聚合优化参数集;
将所述聚合优化参数集发送至各客户端,并基于所述聚合优化参数集对各代码注释生成模型进行再次训练,得到代码注释生成新模型;
基于所述代码注释生成新模型对各客户端的待注释代码进行代码注释。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有基于联邦学习的代码注释生成程序,所述基于联邦学习的代码注释生成程序被处理器执行时,实现如权利要求1至7中任一项所述的基于联邦学习的代码注释生成方法的步骤。
CN202011355708.0A 2020-11-27 2020-11-27 基于联邦学习的代码注释生成方法、系统及装置 Active CN112463161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011355708.0A CN112463161B (zh) 2020-11-27 2020-11-27 基于联邦学习的代码注释生成方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011355708.0A CN112463161B (zh) 2020-11-27 2020-11-27 基于联邦学习的代码注释生成方法、系统及装置

Publications (2)

Publication Number Publication Date
CN112463161A true CN112463161A (zh) 2021-03-09
CN112463161B CN112463161B (zh) 2023-07-28

Family

ID=74809770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011355708.0A Active CN112463161B (zh) 2020-11-27 2020-11-27 基于联邦学习的代码注释生成方法、系统及装置

Country Status (1)

Country Link
CN (1) CN112463161B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965748A (zh) * 2021-04-08 2021-06-15 武汉众邦银行股份有限公司 一种可配置的自动添加代码注解的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180063265A1 (en) * 2016-08-31 2018-03-01 Oracle International Corporation Machine learning techniques for processing tag-based representations of sequential interaction events
CN109614083A (zh) * 2018-10-19 2019-04-12 北京大学 一种基于迁移学习的api辅助代码概要生成方法
US20190303140A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Source code peer review matchmaking
US20200082272A1 (en) * 2018-09-11 2020-03-12 International Business Machines Corporation Enhancing Data Privacy in Remote Deep Learning Services
CN111695674A (zh) * 2020-05-14 2020-09-22 平安科技(深圳)有限公司 联邦学习方法、装置、计算机设备及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180063265A1 (en) * 2016-08-31 2018-03-01 Oracle International Corporation Machine learning techniques for processing tag-based representations of sequential interaction events
US20190303140A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Source code peer review matchmaking
US20200082272A1 (en) * 2018-09-11 2020-03-12 International Business Machines Corporation Enhancing Data Privacy in Remote Deep Learning Services
CN109614083A (zh) * 2018-10-19 2019-04-12 北京大学 一种基于迁移学习的api辅助代码概要生成方法
CN111695674A (zh) * 2020-05-14 2020-09-22 平安科技(深圳)有限公司 联邦学习方法、装置、计算机设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965748A (zh) * 2021-04-08 2021-06-15 武汉众邦银行股份有限公司 一种可配置的自动添加代码注解的方法
CN112965748B (zh) * 2021-04-08 2022-04-15 武汉众邦银行股份有限公司 一种可配置的自动添加代码注解的方法

Also Published As

Publication number Publication date
CN112463161B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
US10824949B2 (en) Method and system for extracting information from graphs
WO2021217935A1 (zh) 问题生成模型的训练方法、问题生成方法及其相关设备
CN107220235B (zh) 基于人工智能的语音识别纠错方法、装置及存储介质
CN111814466A (zh) 基于机器阅读理解的信息抽取方法、及其相关设备
CN106575166B (zh) 手写输入字符的处理、数据拆分和合并及编解码处理方法
CA3022998A1 (en) Method and device for generative adversarial network training
CN111310436B (zh) 基于人工智能的文本处理方法、装置及电子设备
WO2022048363A1 (zh) 网站分类方法、装置、计算机设备及存储介质
CN111694937A (zh) 基于人工智能的面试方法、装置、计算机设备及存储介质
WO2023134057A1 (zh) 事务信息查询方法、装置、计算机设备及存储介质
WO2022105493A1 (zh) 基于语义识别的数据查询方法、装置、设备及存储介质
CN113656547B (zh) 文本匹配方法、装置、设备及存储介质
CN112328761A (zh) 一种意图标签设置方法、装置、计算机设备及存储介质
CN112925914B (zh) 数据安全分级方法、系统、设备及存储介质
CN112287069A (zh) 基于语音语义的信息检索方法、装置及计算机设备
US11373043B2 (en) Technique for generating and utilizing virtual fingerprint representing text data
CN113420212A (zh) 基于深度特征学习的推荐方法、装置、设备及存储介质
CN113947095A (zh) 多语种文本翻译方法、装置、计算机设备及存储介质
CN114780701A (zh) 自动问答匹配方法、装置、计算机设备及存储介质
CN112668325B (zh) 一种机器翻译增强方法、系统、终端及存储介质
WO2022073341A1 (zh) 基于语音语义的疾病实体匹配方法、装置及计算机设备
CN112598039B (zh) 获取nlp分类领域阳性样本方法及相关设备
CN112463161B (zh) 基于联邦学习的代码注释生成方法、系统及装置
CN113505595A (zh) 文本短语抽取方法、装置、计算机设备及存储介质
WO2020146784A1 (en) Converting unstructured technical reports to structured technical reports using machine learning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant