CN117648079A - 任务处理、代码补全、代码问答及任务处理模型训练方法 - Google Patents
任务处理、代码补全、代码问答及任务处理模型训练方法 Download PDFInfo
- Publication number
- CN117648079A CN117648079A CN202410119809.XA CN202410119809A CN117648079A CN 117648079 A CN117648079 A CN 117648079A CN 202410119809 A CN202410119809 A CN 202410119809A CN 117648079 A CN117648079 A CN 117648079A
- Authority
- CN
- China
- Prior art keywords
- code
- sample
- task processing
- data
- sample code
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 342
- 238000000034 method Methods 0.000 title claims abstract description 150
- 238000012549 training Methods 0.000 title claims abstract description 114
- 238000003672 processing method Methods 0.000 claims abstract description 24
- 230000000875 corresponding effect Effects 0.000 claims description 60
- 230000000295 complement effect Effects 0.000 claims description 50
- 238000005457 optimization Methods 0.000 claims description 41
- 238000004140 cleaning Methods 0.000 claims description 29
- 238000001914 filtration Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 230000002596 correlated effect Effects 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 25
- 238000012360 testing method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000008676 import Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 230000009467 reduction Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/10—Pre-processing; Data cleansing
- G06F18/15—Statistical pre-processing, e.g. techniques for normalisation or restoring missing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本说明书实施例提供任务处理、代码补全、代码问答及任务处理模型训练方法,其中所述任务处理方法包括:获取目标任务的待处理代码数据;将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及任务处理结果的准确率。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及任务处理、代码补全、代码问答及任务处理模型训练方法。
背景技术
随着计算机技术的发展,大模型开始大放异彩,在语言理解、生成、交互和推理方面表现出的非凡能力,广泛应用于对话、翻译、代码处理等的自然语言处理领域。以代码处理领域为例,利用大模型可以为开发者提供代码补全和代码问答的智能化能力,因此逐渐成为研究重点。
目前,通常直接利用大模型对代码文本进行处理,获得代码处理结果。然而,上述方法中,大模型会将代码文本当作普通的自然语言去学习理解,损失了代码数据的特性,导致代码处理结果准确性较差,因此,亟需一种准确性高的任务处理方案。
发明内容
有鉴于此,本说明书实施例提供了一种任务处理方法。本说明书一个或者多个实施例同时涉及一种代码补全方法,一种代码问答方法,一种任务处理模型训练方法,一种任务处理装置,一种代码补全装置,一种代码问答装置,一种任务处理模型训练装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序产品,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种任务处理方法,包括:获取目标任务的待处理代码数据;将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第二方面,提供了一种代码补全方法,包括:获取代码补全任务的待补全代码数据;将待补全代码数据输入任务处理模型中,获得待补全代码数据的代码补全结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第三方面,提供了一种代码问答方法,包括:获取代码问答任务的待回答代码数据;将待回答代码数据输入任务处理模型中,获得待回答代码数据的代码答复结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第四方面,提供了一种任务处理模型训练方法,包括:获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签,样本代码块数据基于代码块类型从样本代码文本中提取得到;将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果;根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
根据本说明书实施例的第五方面,提供了一种任务处理装置,包括:第一获取模块,被配置为获取目标任务的待处理代码数据;第一输入模块,被配置为将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第六方面,提供了一种代码补全装置,包括:第二获取模块,被配置为获取代码补全任务的待补全代码数据;第二输入模块,被配置为将待补全代码数据输入任务处理模型中,获得待补全代码数据的代码补全结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第七方面,提供了一种代码问答装置,包括:第三获取模块,被配置为获取代码问答任务的待回答代码数据;第三输入模块,被配置为将待回答代码数据输入任务处理模型中,获得待回答代码数据的代码答复结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
根据本说明书实施例的第八方面,提供了一种任务处理模型训练装置,包括:第四获取模块,被配置为获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签,样本代码块数据基于代码块类型从样本代码文本中提取得到;第四输入模块,被配置为将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果;第一调整模块,被配置为根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
根据本说明书实施例的第九方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述第一方面或者第二方面或者第三方面或者第四方面所提供方法的步骤。
根据本说明书实施例的第十方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述第一方面或者第二方面或者第三方面或者第四方面所提供方法的步骤。
根据本说明书实施例的第十一方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面或者第二方面或者第三方面或者第四方面所提供方法的步骤。
本说明书一个实施例提供的任务处理方法,获取目标任务的待处理代码数据;将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及任务处理结果的准确率。
附图说明
图1是本说明书一个实施例提供的一种任务处理系统的架构图;
图2是本说明书一个实施例提供的另一种任务处理系统的架构图;
图3是本说明书一个实施例提供的一种任务处理方法的流程图;
图4是本说明书一个实施例提供的一种任务处理模型训练方法的处理过程流程图;
图5是本说明书一个实施例提供的一种代码补全方法的流程图;
图6是本说明书一个实施例提供的一种代码问答方法的流程图;
图7是本说明书一个实施例提供的一种任务处理模型训练方法的流程图;
图8是本说明书一个实施例提供的一种任务处理界面的界面示意图;
图9是本说明书一个实施例提供的一种任务处理装置的结构示意图;
图10是本说明书一个实施例提供的一种代码补全装置的结构示意图;
图11是本说明书一个实施例提供的一种代码问答装置的结构示意图;
图12是本说明书一个实施例提供的一种任务处理模型训练装置的结构示意图;
图13是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本说明书一个或多个实施例中,大模型是指具有大规模模型参数的深度学习模型,通常包含上亿、上百亿、上千亿、上万亿甚至十万亿以上的模型参数。大模型又可以称为基石模型/基础模型(Foundation Model),通过大规模无标注的语料进行大模型的预训练,产出亿级以上参数的预训练模型,这种模型能适应广泛的下游任务,模型具有较好的泛化能力,例如大规模语言模型(LLM,Large Language Model)、多模态预训练模型(multi-modal pre-training model)等。
大模型在实际应用时,仅需少量样本对预训练模型进行微调即可应用于不同的任务中,大模型可以广泛应用于自然语言处理(NLP,Natural Language Processing)、计算机视觉等领域,具体可以应用于如视觉问答(VQA,Visual Question Answering)、图像描述(IC,Image Caption)、图像生成等计算机视觉领域任务,以及基于文本的情感分类、文本摘要生成、机器翻译等自然语言处理领域任务,大模型主要的应用场景包括数字助理、智能机器人、搜索、在线教育、办公软件、电子商务、智能设计等。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
离线大规模静态分析:静态分析指的是在非代码编译状态下,通过代码文本的语法解析分析获取信息的方式。离线大规模指的是针对大规模数据量的场景,提前在一些大数据平台上做离线计算。离线大规模静态分析的整体含义为在大数据平台提前针对大规模代码文本做非编译状态下的语法解析,获取重要信息,生成想要的代码数据格式。
大数据平台:大数据平台是指能够并行高效地在多台机器上做离线计算的平台。
AIGC:AIGC(AI Generated Content)是指人工智能的内容生成,本说明书实施例中指的是基于人工智能大模型的代码生成,如代码补全内容生成,代码问答答案生成。
代码补全:基于代码上下文以及一些额外的跨文件信息组合成为提示词,帮助用户在编写代码过程中续写补全代码内容。
代码问答:代码领域的问答,除了通用的问答以外,也包含了特定的用途,如代码注释生成,测试用例生成,代码解释等等。
代码语法区块数据结构:代码语法区块是一块片段级代码,包含了比较完整的代码逻辑,如整个条件(if)语句区块,方法定义区块等等,代码语法区块数据结构的实际项目含义是指用户在代码补全时期望补全的内容为当前编写的区块,不希望生成过多的内容干扰阅读和采纳。
跨文件引用还原数据结构:当我们离线静态分析时,分析的对象是单个文件的文本内容,为了让代码补全更加精准,在处理训练数据的时候,还可以添加当前文件引用的位于其他文件里的代码元素,将其还原到当前文件的解析结果中,最终解析出来的跨文件引用还原数据结构,不仅仅有当前文件的代码区块和语法元素,也有当前文件引用了其他文件的类、方法或字段信息。
多语言:同样的数据结构和解析方法,可以适配不同的代码语言,如Java、Python、JavaScript等。
传统方案利用大模型进行代码处理时,可以分为解析结构体层面和解析方式层面。在解析结构体层面,第一种方法中,在训练阶段前可以直接截取代码文本,生成补全上下文和需要补全的内容,作为训练的数据。第二种方法中,可以将代码文本解析成抽象语法树,或者是代码数据流图结构,作为训练数据。然而,第一种方法中,损失了代码结构化信息,以及代码文件之间的代码元素依赖关系,大模型会将其当作普通的自然语言去学习理解,训练效率大幅降低,并且生成的质量较差。第二种方法中,代码补全容易停不下来,且没有跨文件信息。进一步地,在解析方式层面,可以基于编译的应用程序编程接口(API,Application Programming Interface)分析获得代码处理结果:调用大量计算资源,链接并下载三方库,适配不同代码仓库的编译方式,完成代码编译构建,不同的语言编译方式大不相同。然而,上述方法中,消耗了大量计算和存储资源,编译依赖不一定具备,编译报错风险高,损失大量有价值数据,并且无法解析不完整代码。
为了解决上述问题,本说明书实施例提出了一种基于AIGC的离线大规模静态分析服务,包括多语言代码区块拆分,多语言跨文件引用还原等离线大规模数据解析方法。通过离线大规模静态解析的方式,将多语言的代码内容解析成AIGC训练可使用的数据结构,包括但不限于用于代码补全任务训练的语法区块数据结构,跨文件引用还原数据结构,用于代码问答任务的注释与代码内容关联关系等,大幅提高生成质量,解决大部分无限生成,生成内容过多,补全无法理解跨文件信息而出现的幻觉,代码问答的注释生成任务只有方法级注释以及每行都有注释,测试用例数据集难以生成的一系列问题。
值得说明的是,在任务处理模型训练前,对代码类文本做特殊的结构化处理,使任务处理模型更能理解代码语言结构化信息,提升推理准确率和训练效率。并且,通过任务处理模型的能力,为开发者提供代码补全和代码问答的智能化能力,提升编码效率和代码质量。具体地,本说明书实施例提出了一种任务处理方法,获取目标任务的待处理代码数据;将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
在本说明书中,提供了一种任务处理方法,本说明书同时涉及一种代码补全方法,一种代码问答方法,一种任务处理模型训练方法,一种任务处理装置,一种代码补全装置,一种代码问答装置,一种任务处理模型训练装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了本说明书一个实施例提供的一种任务处理系统的架构图,任务处理系统可以包括客户端100和服务端200;
客户端100,用于向服务端200发送目标任务的待处理代码数据;
服务端200,用于将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到;向客户端100发送任务处理结果;
客户端100,还用于接收服务端200发送的任务处理结果。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及任务处理结果的准确率。
参见图2,图2示出了本说明书一个实施例提供的另一种任务处理系统的架构图,任务处理系统可以包括多个客户端100以及服务端200,其中,客户端100可以包括端侧设备,服务端200可以包括云侧设备。多个客户端100之间通过服务端200可以建立通信连接,在任务处理场景中,服务端200即用来在多个客户端100之间提供任务处理服务,多个客户端100可以分别作为发送端或接收端,通过服务端200实现通信。
用户通过客户端100可与服务端200进行交互以接收其它客户端100发送的数据,或将数据发送至其它客户端100等。在任务处理场景中,可以是用户通过客户端100向服务端200发布数据流,服务端200根据该数据流生成任务处理结果,并将任务处理结果推送至其他建立通信的客户端中。
其中,客户端100与服务端200之间通过网络建立连接。网络为客户端100与服务端200之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。客户端100所传输的数据可能需要经过编码、转码、压缩等处理之后才发布至服务端200。
客户端100可以为浏览器、APP(Application,应用程序)、或网页应用如H5(HyperText Markup Language5,超文本标记语言第5版)应用、或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,客户端100可以基于服务端200提供的相应服务的软件开发工具包(SDK,Software Development Kit),如基于实时通信(RTC,Real TimeCommunication)SDK开发获得等。客户端100可以部署在电子设备中,需要依赖设备运行或者设备中的某些APP而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等。在电子设备中通常还可以配置各种其它类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
服务端200可以包括提供各种服务的服务器,例如为多个客户端提供通信服务的服务器,又如为客户端上使用的模型提供支持的用于后台训练的服务器,又如对客户端发送的数据进行处理的服务器等。需要说明的是,服务端200可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content DeliveryNetwork)以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
值得说明的是,本说明书实施例中提供的任务处理方法一般由服务端执行,但是,在本说明书的其它实施例中,客户端也可以与服务端具有相似的功能,从而执行本说明书实施例所提供的任务处理方法。在其它实施例中,本说明书实施例所提供的任务处理方法还可以是由客户端与服务端共同执行。
参见图3,图3示出了本说明书一个实施例提供的一种任务处理方法的流程图,具体包括以下步骤:
步骤302:获取目标任务的待处理代码数据。
本说明书一个或多个实施例中,可以获取目标任务的待处理代码数据,从而基于目标任务对待处理代码数据进行处理,获得目标任务的任务处理结果。
具体地,目标任务是指代码处理任务,目标任务包括但不限于代码问答任务、代码补全任务。代码问答任务包括但不限于代码注释生成任务,代码测试用例生成任务,代码解释任务。待处理代码数据可以是多语言的代码数据。待处理代码数据可以是代码文本,也可以是代码块数据,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
实际应用中,获取目标任务的待处理代码数据的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以接收用户发送的目标任务的待处理代码数据。本说明书另一种可能的实现方式中,可以从其他数据获取设备或数据库中读取目标任务的待处理代码数据。
步骤304:将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
本说明书一个或多个实施例中,获取目标任务的待处理代码数据之后,进一步地,可以将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果。
具体地,任务处理模型可以是大模型,也可以基于多个样本代码块数据和样本代码块数据对应的样本代码标签对自然语言的神经网络模型训练得到的模型,如BERT(Bidirectional Encoder Representations from Transformers)模型、T5(Text-to-TextTransfer Transformer)模型。任务处理结果与目标任务对应,若目标任务为代码补全任务,则任务处理结果为代码补全结果,若目标任务为代码问答任务,则任务处理结果为代码答复结果。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及任务处理结果的准确率。
本说明书一种可选的实施例中,由于待处理代码数据可能会引用其他文件的类、方法或字段信息,因此,为了提高任务处理结果的准确性,可以添加当前文件引用的位于其他文件里的代码元素,将其还原到当前文件的解析结果中,获得关联代码数据,利用任务处理模型处理关联代码数据,获得任务处理结果,也即,上述将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果之前,还可以包括以下步骤:
对待处理代码数据进行解析,确定代码调用语句和代码调用语句所调用的代码定义文件;
获取代码定义文件,并从代码定义文件中解析得到代码定义语句;
将待处理代码数据中的代码调用语句与代码定义语句进行关联,获得关联代码数据;
将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,可以包括以下步骤:
将关联代码数据输入任务处理模型中,获得目标任务的任务处理结果。
具体地,代码调用(IMPORT)语句是指引用其他文件的类、方法或字段信息的语句。代码定义文件用于定义类、方法或字段信息。
需要说明的是,对待处理代码数据进行解析时,可以对待处理代码数据进行代码语法区块数据结构解析,根据待处理代码数据的语言类型,从待处理代码数据中提取代码块数据,进一步从代码块数据中筛选出代码调用语句,并确定代码调用语句所调用的代码定义文件。
实际应用中,获取代码定义文件的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以接收用户发送的代码定义文件。本说明书另一种可能的实现方式中,可以从存储设备中读取代码定义文件。
进一步地,获取代码定义文件之后,可以解析代码定义文件,获得代码定义文件的定义结构化数据,并从定义结构化数据中解析出代码定义语句。最后,可以将待处理代码数据中的代码调用语句与代码定义语句进行关联,获得关联代码数据,将关联代码数据输入任务处理模型中,获得目标任务的任务处理结果。
应用本说明书实施例的方案,将关联代码数据输入任务处理模型中,获得目标任务的任务处理结果,使得任务处理模型可以结合跨文件的上下文信息生成任务处理结果,提高了任务处理结果的准确性。
本说明书一种可选的实施例中,上述将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果之后,还可以包括以下步骤:
接收用户基于任务处理结果发送的代码调整数据,并根据代码调整数据调整任务处理模型的模型参数。
需要说明的是,获得任务处理结果之后,可以将任务处理结果发送给客户端,以使客户端向用户展示任务处理结果。客户端向用户展示任务处理结果的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以直接向用户展示任务处理结果。本说明书另一种可能的实现方式中,可以根据用户的展示需求信息向用户展示任务处理结果。其中,展示需求信息表征用户查看任务处理结果的需求,展示需求信息包括但不限于仅展示任务处理结果、展示任务处理结果的文件存储路径、展示待处理代码数据和任务处理结果。
实际应用中,用户可能对任务处理结果并不满意,此时,可以接收用户基于任务处理结果发送的代码调整数据,并根据代码调整数据调整任务处理模型的模型参数。其中,代码调整数据包括但不限于调整后的任务处理结果、调整后的样本集。根据代码调整数据调整任务处理模型的模型参数的实现方式与任务处理模型的训练方式相同,本说明书实施例便不再进行赘述。
应用本说明书实施例的方案,根据代码调整数据调整任务处理模型的模型参数,使得任务处理模型可以基于用户反馈的数据进行更新,提高了任务处理模型的精准性,同时,提高了用户体验度。
本说明书一种可选的实施例中,上述将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果之前,还可以包括以下步骤:
获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签;
将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果;
根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
具体地,样本代码块数据可以称为样本代码区块(Code Block)数据。代码区块是指较为完整的代码语义逻辑区块,代码区块可以是一行,也可以是多行。有些代码区块会有区块头,如if区块的条件语句,方法定义区块的方法定义,代码区块包括坐标范围,方便从原始代码中截取区块代码,部分代码区块定义有唯一的名称,方便在引用还原或测试用例关联时,通过唯一名称将引用方和定义相关联。任务处理模型的训练方式为有监督训练,也即,样本集中的各样本代码块数据是携带真实样本代码标签的,样本代码标签为初始任务处理模型的生成目标,用于指导初始任务处理模型的训练过程。初始任务处理模型可以是未经训练的大模型,也可以是未经训练的自然语言的神经网络模型。
需要说明的是,样本代码数据对应的样本代码标签基于样本代码块数据对应的任务类型确定。例如样本代码块数据对应的任务类型为代码注释生成任务,则样本代码标签为真实代码注释标签;又如样本代码块数据对应的任务类型为代码补全任务,则样本代码标签为真实代码补全标签。
实际应用中,获取样本集的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以接收用户输入的大量携带样本代码标签的样本代码块数据组成样本集。本说明书另一种可能的实现方式中,可以从其他数据获取设备或者数据库中读取大量携带样本代码标签的样本代码块数据组成样本集。
进一步地,根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数时,可以根据代码预测结果和样本代码标签计算损失值,根据损失值调整初始任务处理模型的模型参数,直至达到预设停止条件,获得完成训练的任务处理模型,其中,计算损失值的函数有很多,如交叉熵损失函数、L1范数损失函数、最大损失函数、均方误差损失函数、对数损失函数等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
本说明书一种可能的实现方式中,预设停止条件包括损失值小于或等于预设阈值。根据代码预测结果和样本代码标签计算损失值之后,将损失值与预设阈值进行比较。具体地,若损失值大于预设阈值,则说明代码预测结果和样本代码标签之间的差异较大,初始任务处理模型对于代码的处理能力较差,此时可以调整初始任务处理模型的模型参数,继续对初始任务处理模型进行训练,直至损失值小于或等于预设阈值,说明代码预测结果和样本代码标签的差异较小,达到预设停止条件,获得完成训练的任务处理模型。
本说明书另一种可能的实现方式中,除了比较损失值和预设阈值的大小关系之外,还可以结合迭代次数,确定当前的初始任务处理模型是否训练完成。具体地,若损失值大于预设阈值,则调整初始任务处理模型的模型参数,继续对初始任务处理模型进行训练,直至达到预设迭代次数的情况下,停止迭代,得到完成训练的任务处理模型,其中,预设阈值和预设迭代次数具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
应用本说明书实施例的方案,根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型,通过不断对初始任务处理模型的模型参数进行调整,能使最终得到的任务处理模型更加精准。
本说明书一种可选的实施例中,上述获取样本集,可以包括以下步骤:
获取多个样本代码文本;
针对第一样本代码文本,解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据,其中,第一样本代码文本为多个样本代码文本中的任一个;
根据预设代码块数据结构,从第一样本结构化数据中提取第一样本代码块数据;
基于第一样本代码块数据和第一样本代码块数据对应的第一样本代码标签,构建样本集。
具体地,样本代码文本是指由代码数据构成的文本。样本结构化数据是指有结构、有组织的代码数据,如抽象语法树(AST,Abstract Syntax Tree)。样本结构化数据包括但不限于代码逻辑单元。获取多个样本代码文本的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以接收用户输入的多个样本代码文本。本说明书另一种可能的实现方式中,可以从其他数据获取设备或者代码数据集中读取多个样本代码文本。
需要说明的是,解析第一样本代码文本,获得第一样本结构化数据的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以利用结构化解析模型对第一样本代码文本进行解析,获得第一样本结构化数据。本说明书另一种可能的实现方式中,可以利用代码解析工具基于第一样本代码文本生成第一样本结构化数据。
值得说明的是,由于不同语言类型的样本代码文本的区块节点类型可能不同,不同的区块节点类型对应的预设代码块数据结构可能不同,不同语言类型的样本代码文本的代码块数据可能不同,因此,可以基于样本代码文本对应的语言类型确定预设代码块数据结构。
示例性地,预设代码块数据结构包括但不限于:"endColumn":#结束列、"endLine":#结束行、"endOffset":#结束坐标点、"startColumn":#开始列、"startLine":#开始行、"startOffset":#开始坐标点、"type":#类型枚举值(对应区块节点类型)、"name":#库内唯一标识名称(类和方法独有)、"annotations":#注解文本(类和方法独有)。
区块节点类型包括但不限于:PACKAGE(包)、IMPORT(引用语句)、ANNOTATION(注解)、STATEMENT(声明语句)、IF(条件语句)、IF_HEADER(条件语句头)、IF_BODY(条件语句主体)、FOR(For循环语句)、FOR_HEADER(For循环语句头)、FOR_BODY(For循环语句主体)、WHILE(While循环语句)、TRY(异常处理语句)、CATCH(异常捕获语句)、SWITCH(多路分支控制语句)、CASES(多路分支控制条件语句)、CLASS(类定义)、SUPER_CLASS(继承父类语句)、INTERFACE(接口类)、ENUM(枚举类)、METHOD(函数或方法)、METHOD_HEADER(方法头,即声明部分)、METHOD_BODY(方法主体)、COMMENT(注释)、BLOCK_COMMENT(块注释)、LINE_COMMENT(行注释)、METHOD_REF(方法引用语句)、CLASS_REF(类引用语句)、FIELD_REF(字段引用)。
应用本说明书实施例的方案,通过利用多个样本代码块数据构建样本集,使得任务处理模型在代码处理时更能理解代码的处理范围以及理解代码语言结构化信息,使代码生成长度更加精准,尽可能避免了无限生成的场景,同时提升了任务处理模型的训练效率以及任务处理结果的准确率。
本说明书一种可选的实施例中,上述解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据之前,还可以包括以下步骤:
基于第一样本代码文本的第一语言类型,确定第一样本代码文本的第一代码块类型;
从第一样本代码文本中筛选出符合第一代码块类型的第一样本代码片段;
解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据,可以包括以下步骤:
解析第一样本代码片段,获得第一样本代码片段的第一样本结构化数据。
需要说明的是,由于不同语言类型的样本代码文本的代码块数据可能不同,因此,可以基于第一样本代码文本的第一语言类型,确定第一样本代码文本的第一代码块类型。确定第一代码块类型的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以从预设语言类型-代码块类型对照表里查找第一语言类型对应的第一代码块类型。本说明书另一种可能的实现方式中,可以将第一样本代码文本和第一语言类型输入代码块类型确定模型中,输出第一代码块类型。
实际应用中,确定第一样本代码文本的第一代码块类型之后,可以从第一样本代码文本中筛选出符合第一代码块类型的第一样本代码片段。具体地,可以获取第一样本代码文本中各样本代码片段的代码块类型,将代码块类型和第一代码块类型相同的样本代码文本确定为第一样本代码片段。
应用本说明书实施例的方案,基于第一样本代码文本的第一语言类型,确定第一样本代码文本的第一代码块类型;从第一样本代码文本中筛选出符合第一代码块类型的第一样本代码片段;解析第一样本代码片段,获得第一样本代码片段的第一样本结构化数据。通过利用第一代码块类型筛选出第一样本代码片段,减少了解析出第一样本结构化数据的数据解析量,提高了任务处理模型的训练速度。
本说明书一种可选的实施例中,上述解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据之前,还可以包括以下步骤:
根据预设代码清洗策略,对第一样本代码文本进行清洗过滤,获得清洗后的第一样本代码文本,其中,预设代码清洗策略包括代码长度清洗策略、代码来源清洗策略、代码规范性清洗策略中的至少一种;
解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据,可以包括以下步骤:
解析清洗后的第一样本代码文本,获得清洗后的第一样本代码文本的第一样本结构化数据。
需要说明的是,为了使得训练得到的任务处理模型精确性高,可以生成符合实际代码处理场景的任务处理结果,可以利用预设代码清洗策略对第一样本代码文本进行清洗过滤,减少不规范、不通用、不希望模型学习的样本代码文本。
实际应用中,预设代码清洗策略具体根据用户的实际需求设置,本说明书实施例对比不做任何限定。代码长度清洗策略用于根据代码的长度对样本代码文本进行清洗过滤,如过滤掉过长或过短的代码文本。代码来源清洗策略用于根据代码的来源对样本代码文本进行清洗过滤,如过滤自动生成的代码。代码规范性清洗策略用于根据代码是否携带敏感信息对样本代码文本进行清洗过滤,如过滤带有危险信息的代码。
示例性地,预设代码清洗策略包括但不限于:过滤掉小于1k的代码和大于50k的文件、过滤掉文件行数大于1000的文件、过滤掉字母比例25%以下的文件、过滤掉只包含几行,且每行都超长的文件,如每行大于1k字符、过滤掉自动生成的文件,如生成(Generated)代码、禁止修改(Donotmodify)代码、自动生成(Autogenerated)代码、过滤掉重复的文件、过滤掉注释比例大于80%的文件、过滤掉反编译(Decompiled)产出的文件、过滤纯字符串比例占比大于50%的文件、过滤掉二进制文件、特定编码的文件(可以只保留utf-8,或者utf-8+gbk)、过滤掉过短的文件(比如小于256字符)、筛选带有中文注释的文件(占比大于等于30%)、移除敏感信息、规则化移除AKSK、反动、危险信息过滤、移除文件里被注释的代码块、去掉与代码逻辑无关注释(注释符号包括但不限于TODO、FIXME、Author、Date、@deprecated、@since、@version、@link、@author、@date、@time@file)、去掉很多文件头存在的版权信息、去掉只有统一资源定位符(URL,Uniform Resource Locator)的注释、过滤掉删除行(删除行包括但不限于--------、************、==============、############、//////////////)。
应用本说明书实施例的方案,根据预设代码清洗策略,对第一样本代码文本进行清洗过滤,获得清洗后的第一样本代码文本,解析清洗后的第一样本代码文本,获得清洗后的第一样本代码文本的第一样本结构化数据。通过对样本代码文本进行清洗,减少不规范、不通用、不希望模型学习的样本代码文本,提高了任务处理模型的训练速度。
本说明书一种可选的实施例中,上述根据预设代码块数据结构,从第一样本结构化数据中提取第一样本代码块数据之后,还可以包括以下步骤:
对第一样本代码块数据进行解析,确定第一样本代码调用语句和第一样本代码调用语句所调用的第一样本代码定义文件;
获取第一样本代码定义文件,并从第一样本代码定义文件中解析得到第一样本代码定义语句;
将第一样本代码块数据中的第一样本代码调用语句与第一样本代码定义语句进行关联,获得第一样本关联代码数据;
基于第一样本代码块数据和第一样本代码块数据对应的第一样本代码标签,构建样本集,可以包括以下步骤:
基于第一样本关联代码数据和第一样本关联代码数据对应的第一样本代码标签,构建样本集。
需要说明的是,“对第一样本代码块数据进行解析,确定第一样本代码调用语句和第一样本代码调用语句所调用的第一样本代码定义文件”的方式可以参考上述“对待处理代码数据进行解析,确定代码调用语句和代码调用语句所调用的代码定义文件”的实现方式;“获取第一样本代码定义文件,并从第一样本代码定义文件中解析得到第一样本代码定义语句”的方式可以参考上述“获取代码定义文件,并从代码定义文件中解析得到代码定义语句”的实现方式;“将第一样本代码块数据中的第一样本代码调用语句与第一样本代码定义语句进行关联,获得第一样本关联代码数据”的方式可以参考上述“关联代码调用语句和代码定义语句,获得关联代码数据”的实现方式,本说明书便不再进行赘述。
应用本说明书实施例的方案,通过代码区块解析,使任务处理模型在代码处理时更能理解代码需要补全和答复的范围,使生成的代码长度更加精准,尽可能避免了无限生成的场景。同时,任务处理模型可以结合跨文件的上下文信息进行训练,提高了任务处理模型的精准性。
本说明书一种可选的实施例中,上述获取第一样本代码定义文件之前,还可以包括以下步骤:
解析第一样本代码文本,确定第一样本代码文本的第一样本代码定义语句;
根据第一样本代码定义语句,构建第一样本代码定义文件;
基于第一样本代码文本的第一语言类型,存储第一样本代码定义文件。
需要说明的,解析第一样本代码文本时,可以先将需要用来关联的样本代码定义语句解析出来,然后上传到存储设备,如对象存储服务(OSS,Object Storage Service)中,将各样本代码文本解析为一组定义,定义的结构可以是:
{List[import_def], List[class_def], List[func_def]}
其中,List[import_def]是指一个包含导入声明(import definitions)的列表。这些声明通常位于源代码文件的顶部,用于引入其他模块或包中的功能。List[class_def]是指一个包含类定义(class definitions)的列表。每个类定义都描述了一个新的数据类型,包括其属性和方法。List[func_def]是指一个包含函数定义(function definitions)的列表。函数是可重复使用的代码块,它们接收输入参数并返回结果。同时,定义的接口还可以包括字段定义、字段引用定义等等。在各定义(definitions)中,可以包含名称、库名、所属类、可见性、全路径签名、注释、方法参数、是否构造类等基础信息。
实际应用中,基于第一样本代码文本的第一语言类型,存储第一样本代码定义文件时,存储路径可以按照[库名]/[文件全路径]确定。其中,文件全路径根据样本代码文本的语言类型区分,比如Java是以类为单位,那么文件全路径就是包名+类名,Python是以文件为单位的,那么文件全路径就是Python文件路径+文件名,Go是以模块为单位引用的,那么文件全路径就是模块全路径。
应用本说明书实施例的方案,解析第一样本代码文本,确定第一样本代码文本的第一样本代码定义语句;根据第一样本代码定义语句,构建第一样本代码定义文件;基于第一样本代码文本的第一语言类型,存储第一样本代码定义文件。通过存储各样本代码文本对应的样本代码定义文件,实现了任务处理模型训练过程以及任务处理过程的引用还原解析,使任务处理模型在训练阶段就提前理解了跨语言模式,辅以推理阶段同样的跨文件信息结构,使代码处理的内容更加精准,尽可能避免了跨文件方法、字段补全时出现的幻觉问题。
本说明书一种可选的实施例中,跨文件关联也可以提前使用其他方式预先解析出关联关系,如Python的IMPORT信息无法容易地捕捉到关联的文件信息。Python的跨文件依赖解析主要有以下几个难点:Python文件既可以定义类、又可以定义方法;IMPORT既可以IMPORT文件,也可以IMPORT文件内的类或者方法,甚至是一个目录;IMPORT语法众多;目录下的用于指示一个目录应该被视为一个包的文件(__init__.py)还可以IMPORT,用来转发引用;IMPORT可以引用相对路径。因此针对Python,本说明书实施例可以使用本地仓库分析的方式,先通过数据集的文件路径(file path)构建出真实的文件目录,再使用开源的工具解析出Python文件之间的引用关系,提前存储。当然,其他语言也可以根据其特性做提前的依赖关联。
参见图4,图4示出了本说明书一个实施例提供的一种任务处理模型训练方法的处理过程流程图,如图4所示,根据预设代码清洗策略,对样本代码文件进行清洗过滤去重,获得清洗后的样本代码文本;对清洗后的样本代码文本进行定义解析,获得样本代码定义文件,并将样本代码定义文件写入对象存储服务。在解析引用还原的时候,当解析到A文件,通过解析代码块数据中的代码调用语句得知关联了B文件,将B文件的代码定义文件从OSS中加载到内存,在A文件的代码正文中,当方法调用时(如调用了B文件的foo方法),从提前加载的代码定义文件中寻找匹配的代码定义语句,并将代码调用语句和代码定义语句进行关联,获得关联代码数据。
应用本说明书实施例的方案,在不进行编译的情况下,用最小的代价和最快的速度解析大数据,并且利用定义存储,静态解析等方式,使文件解析无状态,可以同时并行地解析多个文件。采用区块代码解析技术,在训练阶段让任务处理模型知道代码补全场景的生成停止机制,尽可能避免了无限生成和越界生成的情况,提升了代码补全长度的准确性,减少用户的补全内容阅读理解压力,提升用户体验。采用引用还原技术,使任务处理模型能够在训练补全能力时结合跨文件的上下文信息,辅以推理侧同样格式的跨文件信息输入,使代码补全在遇到跨文件的方法、类、字段补全时,尽可能减少幻觉的情况,使补全内容更加精准。在代码问答的测试用例生成和注释生成的场景的训练数据集生成过程中,复用了大规模离线语法解析的能力,使数据产出效率更高,数据量更多,且组合更灵活,提升用户在使用代码问答功能时,体验到的回答效果更好。
参见图5,图5示出了本说明书一个实施例提供的一种代码补全方法的流程图,具体包括以下步骤:
步骤502:获取代码补全任务的待补全代码数据。
步骤504:将待补全代码数据输入任务处理模型中,获得待补全代码数据的代码补全结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
需要说明的是,步骤502至步骤504的实现方式可以参考上述步骤302至步骤304的实现方式,本说明书实施例便不再进行赘述。
实际应用中,可以分别为不同的代码处理任务训练不同的任务处理模型。以代码补全任务为例,可以基于多个样本关联代码数据和样本代码标签训练得到代码补全模型,样本关联代码数据是对样本代码块数据中的样本代码调用语句与样本代码定义语句进行关联得到。利用代码补全模型处理待补全代码数据时,可以根据待补全代码数据生成关联代码数据,将关联代码数据输入代码补全模型,获得代码补全结果。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及代码补全结果的准确率。
参见图6,图6示出了本说明书一个实施例提供的一种代码问答方法的流程图,具体包括以下步骤:
步骤602:获取代码问答任务的待回答代码数据。
步骤604:将待回答代码数据输入任务处理模型中,获得待回答代码数据的代码答复结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
需要说明的是,步骤602至步骤604的实现方式可以参考上述步骤302至步骤304的实现方式,本说明书实施例便不再进行赘述。
实际应用中,代码问答任务包括但不限于代码注释生成任务,测试用例生成任务、代码解释生成任务。可以分别为不同的代码处理任务训练不同的任务处理模型。
以测试用例生成模型为例,用于测试用例生成任务训练的数据结构是一个问答对,问题是一堆原始的代码方法,答案标签是其对应的测试用例。具体地,通过文件关联解析的方式得到测试用例文件关联的被测方法集合,利用测试用例文件和关联的被测方法集合训练得到测试用例生成模型。并且,用于生成测试用例时需要包含整个测试方法类,剔除掉其他测试用例方法,只保留一个测试用例,并且保留测试用例方法和测试用例类的注解。最后通过测试用例方法名和被测方法集合中的方法名的相似度排序,找到概率最高的被测方法。
以代码注释生成模型为例,用于代码注释生成任务训练的数据结构是一个问答对,问题是一段没有注释的代码,答案标签是带有注释的这段代码。由于注释也属于一种代码块,基于前面解析得到的样本代码块数据,根据代码块中的坐标信息关联,就可以获得带有注释的代码内容,和去掉注释的代码内容的问答对。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及代码答复结果的准确率。并且,通过语法解析生成的测试用例训练集包含了类信息和注解信息,并且剔除了其他测试方法的干扰,使用例生成能完整地生成出仅有此测试方法的测试用例类。通过测试方法名和被测方法名的相关度排序,使匹配更加精准。通过基于样本代码块数据生成的代码注释问答对,能够动态地组合方法和方法级块级注释数据,组合代码行和行级注释的数据,还减少了生成的结果里每一行都有注释的异常情况,提高了代码问答的准确性。
参见图7,图7示出了本说明书一个实施例提供的一种任务处理模型训练方法的流程图,具体包括以下步骤:
步骤702:获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签,样本代码块数据基于代码块类型从样本代码文本中提取得到。
步骤704:将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果。
步骤706:根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
需要说明的是,步骤702至步骤706的实现方式可以参考上述任务处理方法中任务处理模型的训练方式,本说明书实施例便不再进行赘述。
实际应用中,获得训练完成的任务处理模型之后,可以将训练完成的任务处理模型的模型参数发送至端侧设备,以使用户基于模型参数在本地构建任务处理模型,进行代码问答、代码补全等代码任务。
应用本说明书实施例的方案,根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型,通过不断对初始任务处理模型的模型参数进行调整,能使最终得到的任务处理模型更加精准。
本说明书一种可选的实施例中,上述根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型之后,还可以包括以下步骤:
响应于用户针对任务处理模型发送的反馈信息,生成优化提示信息,其中,优化提示信息用于引导用户发送用于优化任务处理模型的模型优化数据;
接收用户基于优化提示信息发送的模型优化数据,并根据模型优化数据调整任务处理模型的模型参数。
具体地,反馈信息可以是针对任务处理模型是否准确的反馈信息,如“模型不准确”,也可使针对任务处理模型适用领域的反馈,如“能否处理XXX领域的任务”。模型优化数据可以是准确的优化样本集,也可以是模型的优化领域,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
需要说明的是,响应于用户针对任务处理模型发送的反馈信息,生成优化提示信息的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。本说明书一种可能的实现方式中,可以直接获取预先设置的优化提示信息,如“非常抱歉给您带来了不准确的信息。请您指出具体哪里不够准确或者提供相关问题的正确答案,我将尽快修正并优化我的回答,以便更好地为您服务”。本说明书另一种可能的实现方式中,可以对反馈信息进行类型识别,确定反馈信息的信息类型,进一步将信息类型与提示信息库中各提示信息的提示类型进行匹配,将提示类型与信息类型相同的提示信息确定为优化提示信息。
进一步地,生成优化提示信息之后,可以将优化提示信息发送至客户端,以使客户端向用户展示优化提示信息。接收用户基于优化提示信息发送的模型优化数据之后,若模型优化数据为准确的优化样本集,则可以直接利用优化样本集对任务处理模型进行训练,获得更新后的任务处理模型。若模型优化数据为模型的优化领域,如XXX领域,则可以获取XXX领域的样本集,利用XXX领域的样本集对任务处理模型进行训练,获得更新后的任务处理模型。其中,对任务处理模型进行训练的过程与任务处理模型的训练过程相同,本说明书实施例变不再进行赘述。
应用本说明书实施例的方案,响应于用户针对任务处理模型发送的反馈信息,生成优化提示信息,其中,优化提示信息用于引导用户发送用于优化任务处理模型的模型优化数据;接收用户基于优化提示信息发送的模型优化数据,并根据模型优化数据调整任务处理模型的模型参数。接收用户针对任务处理模型发送的反馈信息后,通过交互式的引导方式获取模型优化数据,对任务处理模型进行参数优化,使得任务处理模型更加精准,同时,提高了与用户之间的交互性,提高了用户满意度。
参见图8,图8示出了本说明书一个实施例提供的一种任务处理界面的界面示意图。任务处理界面分为请求输入界面和结果展示界面。请求输入界面中包括请求输入框、“确定”控件以及“取消”控件。结果展示界面中包括结果展示框。
用户通过客户端显示的请求输入框输入目标任务的任务处理请求,其中,任务处理请求携带待处理代码数据,点选“确定”控件,服务端接收客户端发送的待处理代码数据,将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到,并将任务处理结果发送至客户端。客户端在结果展示框中显示任务处理结果。
实际应用中,用户对控件进行操作的方式包括点击、双击、触控、鼠标悬停、滑动、长按、语音控制或摇一摇等任一方式,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
与上述任务处理方法实施例相对应,本说明书还提供了任务处理装置实施例,图9示出了本说明书一个实施例提供的一种任务处理装置的结构示意图。如图9所示,该装置包括:
第一获取模块902,被配置为获取目标任务的待处理代码数据;
第一输入模块904,被配置为将待处理代码数据输入任务处理模型中,获得目标任务的任务处理结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
可选地,该装置还包括:解析模块,被配置为对待处理代码数据进行解析,确定代码调用语句和代码调用语句所调用的代码定义文件;获取代码定义文件,并从代码定义文件中解析得到代码定义语句;将待处理代码数据中的代码调用语句与代码定义语句进行关联,获得关联代码数据;第一输入模块904,进一步被配置为将关联代码数据输入任务处理模型中,获得目标任务的任务处理结果。
可选地,该装置还包括:第二调整模块,被配置为接收用户基于任务处理结果发送的代码调整数据,并根据代码调整数据调整任务处理模型的模型参数。
可选地,该装置还包括:任务处理模块,被配置为获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签;将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果;根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
可选地,任务处理模块,进一步被配置为获取多个样本代码文本;针对第一样本代码文本,解析第一样本代码文本,获得第一样本代码文本的第一样本结构化数据,其中,第一样本代码文本为多个样本代码文本中的任一个;根据预设代码块数据结构,从第一样本结构化数据中提取第一样本代码块数据;基于第一样本代码块数据和第一样本代码块数据对应的第一样本代码标签,构建样本集。
可选地,任务处理模块,进一步被配置为对第一样本代码块数据进行解析,确定第一样本代码调用语句和第一样本代码调用语句所调用的第一样本代码定义文件;获取第一样本代码定义文件,并从第一样本代码定义文件中解析得到第一样本代码定义语句;将第一样本代码块数据中的第一样本代码调用语句与第一样本代码定义语句进行关联,获得第一样本关联代码数据;基于第一样本关联代码数据和第一样本关联代码数据对应的第一样本代码标签,构建样本集。
可选地,任务处理模块,进一步被配置为解析第一样本代码文本,确定第一样本代码文本的第一样本代码定义语句;根据第一样本代码定义语句,构建第一样本代码定义文件;基于第一样本代码文本的第一语言类型,存储第一样本代码定义文件。
可选地,任务处理模块,进一步被配置为基于第一样本代码文本的第一语言类型,确定第一样本代码文本的第一代码块类型;从第一样本代码文本中筛选出符合第一代码块类型的第一样本代码片段;解析第一样本代码片段,获得第一样本代码片段的第一样本结构化数据。
可选地,任务处理模块,进一步被配置为根据预设代码清洗策略,对第一样本代码文本进行清洗过滤,获得清洗后的第一样本代码文本,其中,预设代码清洗策略包括代码长度清洗策略、代码来源清洗策略、代码规范性清洗策略中的至少一种;解析清洗后的第一样本代码文本,获得清洗后的第一样本代码文本的第一样本结构化数据。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及任务处理结果的准确率。
上述为本实施例的一种任务处理装置的示意性方案。需要说明的是,该任务处理装置的技术方案与上述的任务处理方法的技术方案属于同一构思,任务处理装置的技术方案未详细描述的细节内容,均可以参见上述任务处理方法的技术方案的描述。
与上述代码补全方法实施例相对应,本说明书还提供了代码补全装置实施例,图10示出了本说明书一个实施例提供的一种代码补全装置的结构示意图。如图10所示,该装置包括:
第二获取模块1002,被配置为获取代码补全任务的待补全代码数据;
第二输入模块1004,被配置为将待补全代码数据输入任务处理模型中,获得待补全代码数据的代码补全结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及代码补全结果的准确率。
上述为本实施例的一种代码补全装置的示意性方案。需要说明的是,该代码补全装置的技术方案与上述的代码补全方法的技术方案属于同一构思,代码补全装置的技术方案未详细描述的细节内容,均可以参见上述代码补全方法的技术方案的描述。
与上述代码问答方法实施例相对应,本说明书还提供了代码问答装置实施例,图11示出了本说明书一个实施例提供的一种代码问答装置的结构示意图。如图11所示,该装置包括:
第三获取模块1102,被配置为获取代码问答任务的待回答代码数据;
第三输入模块1104,被配置为将待回答代码数据输入任务处理模型中,获得待回答代码数据的代码答复结果,其中,任务处理模型基于多个样本代码块数据和样本代码块数据对应的样本代码标签训练得到,样本代码块数据基于代码块类型从样本代码文本中提取得到。
应用本说明书实施例的方案,由于任务处理模型是基于多个样本代码块数据训练得到的,使得任务处理模型可以理解代码语言结构化信息,提升了任务处理模型的训练效率以及代码答复结果的准确率。
上述为本实施例的一种代码问答装置的示意性方案。需要说明的是,该代码问答装置的技术方案与上述的代码问答方法的技术方案属于同一构思,代码问答装置的技术方案未详细描述的细节内容,均可以参见上述代码问答方法的技术方案的描述。
与上述任务处理模型训练方法实施例相对应,本说明书还提供了任务处理模型训练装置实施例,图12示出了本说明书一个实施例提供的一种任务处理模型训练装置的结构示意图。如图12所示,包括:
第四获取模块1202,被配置为获取样本集,其中,样本集包括多个样本代码块数据和样本代码块数据对应的样本代码标签,样本代码块数据基于代码块类型从样本代码文本中提取得到;
第四输入模块1204,被配置为将多个样本代码块数据输入初始任务处理模型,获得多个样本代码块数据分别对应的代码预测结果;
第一调整模块1206,被配置为根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型。
可选地,该装置还包括:接收模块,被配置为响应于用户针对任务处理模型发送的反馈信息,生成优化提示信息,其中,优化提示信息用于引导用户发送用于优化任务处理模型的模型优化数据;接收用户基于优化提示信息发送的模型优化数据,并根据模型优化数据调整任务处理模型的模型参数。
应用本说明书实施例的方案,根据代码预测结果和样本代码标签,调整初始任务处理模型的模型参数,获得训练完成的任务处理模型,通过不断对初始任务处理模型的模型参数进行调整,能使最终得到的任务处理模型更加精准。
上述为本实施例的一种任务处理模型训练装置的示意性方案。需要说明的是,该任务处理模型训练装置的技术方案与上述的任务处理模型训练方法的技术方案属于同一构思,任务处理模型训练装置的技术方案未详细描述的细节内容,均可以参见上述任务处理模型训练方法的技术方案的描述。
图13示出了本说明书一个实施例提供的一种计算设备的结构框图。该计算设备1300的部件包括但不限于存储器1310和处理器1320。处理器1320与存储器1310通过总线1330相连接,数据库1350用于保存数据。
计算设备1300还包括接入设备1340,接入设备1340使得计算设备1300能够经由一个或多个网络1360通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备1340可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Card))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,Wireless LocalArea Networks)无线接口、全球微波互联接入(Wi-MAX,World Interoperability forMicrowave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备1300的上述部件以及图13中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图13所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1300可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备1300还可以是移动式或静止式的服务器。
其中,处理器1320用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的任务处理方法、代码补全方法、代码问答方法以及任务处理模型训练方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的任务处理方法、代码补全方法、代码问答方法以及任务处理模型训练方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的步骤。
上述为本实施例的一种计算机程序产品的示意性方案。需要说明的是,该计算机程序产品的技术方案与上述的任务处理方法、代码补全方法、代码问答方法以及任务处理模型训练方法的技术方案属于同一构思,计算机程序产品的技术方案未详细描述的细节内容,均可以参见上述任务处理方法或者代码补全方法或者代码问答方法或者任务处理模型训练方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (16)
1.一种任务处理方法,包括:
获取目标任务的待处理代码数据;
将所述待处理代码数据输入任务处理模型中,获得所述目标任务的任务处理结果,其中,所述任务处理模型基于多个样本代码块数据和所述样本代码块数据对应的样本代码标签训练得到,所述样本代码块数据基于代码块类型从样本代码文本中提取得到。
2.根据权利要求1所述的方法,所述将所述待处理代码数据输入任务处理模型中,获得所述目标任务的任务处理结果之前,还包括:
对所述待处理代码数据进行解析,确定代码调用语句和所述代码调用语句所调用的代码定义文件;
获取所述代码定义文件,并从所述代码定义文件中解析得到代码定义语句;
将所述待处理代码数据中的所述代码调用语句与所述代码定义语句进行关联,获得关联代码数据;
所述将所述待处理代码数据输入任务处理模型中,获得所述目标任务的任务处理结果,包括:
将所述关联代码数据输入所述任务处理模型中,获得所述目标任务的任务处理结果。
3.根据权利要求1所述的方法,所述将所述待处理代码数据输入任务处理模型中,获得所述目标任务的任务处理结果之后,还包括:
接收用户基于所述任务处理结果发送的代码调整数据,并根据所述代码调整数据调整所述任务处理模型的模型参数。
4.根据权利要求1所述的方法,所述将所述待处理代码数据输入任务处理模型中,获得所述目标任务的任务处理结果之前,还包括:
获取样本集,其中,所述样本集包括多个样本代码块数据和所述样本代码块数据对应的样本代码标签;
将所述多个样本代码块数据输入初始任务处理模型,获得所述多个样本代码块数据分别对应的代码预测结果;
根据所述代码预测结果和所述样本代码标签,调整所述初始任务处理模型的模型参数,获得训练完成的任务处理模型。
5.根据权利要求4所述的方法,所述获取样本集,包括:
获取多个样本代码文本;
针对第一样本代码文本,解析所述第一样本代码文本,获得所述第一样本代码文本的第一样本结构化数据,其中,所述第一样本代码文本为所述多个样本代码文本中的任一个;
根据预设代码块数据结构,从所述第一样本结构化数据中提取第一样本代码块数据;
基于所述第一样本代码块数据和所述第一样本代码块数据对应的第一样本代码标签,构建样本集。
6.根据权利要求5所述的方法,所述根据预设代码块数据结构,从所述第一样本结构化数据中提取第一样本代码块数据之后,还包括:
对所述第一样本代码块数据进行解析,确定第一样本代码调用语句和所述第一样本代码调用语句所调用的第一样本代码定义文件;
获取所述第一样本代码定义文件,并从所述第一样本代码定义文件中解析得到第一样本代码定义语句;
将所述第一样本代码块数据中的所述第一样本代码调用语句与所述第一样本代码定义语句进行关联,获得第一样本关联代码数据;
所述基于所述第一样本代码块数据和所述第一样本代码块数据对应的第一样本代码标签,构建样本集,包括:
基于所述第一样本关联代码数据和所述第一样本关联代码数据对应的第一样本代码标签,构建样本集。
7.根据权利要求6所述的方法,所述获取所述第一样本代码定义文件之前,还包括:
解析所述第一样本代码文本,确定所述第一样本代码文本的第一样本代码定义语句;
根据所述第一样本代码定义语句,构建第一样本代码定义文件;
基于所述第一样本代码文本的第一语言类型,存储所述第一样本代码定义文件。
8.根据权利要求5所述的方法,所述解析所述第一样本代码文本,获得所述第一样本代码文本的第一样本结构化数据之前,还包括:
基于所述第一样本代码文本的第一语言类型,确定所述第一样本代码文本的第一代码块类型;
从所述第一样本代码文本中筛选出符合所述第一代码块类型的第一样本代码片段;
所述解析所述第一样本代码文本,获得所述第一样本代码文本的第一样本结构化数据,包括:
解析所述第一样本代码片段,获得所述第一样本代码片段的第一样本结构化数据。
9.根据权利要求5所述的方法,所述解析所述第一样本代码文本,获得所述第一样本代码文本的第一样本结构化数据之前,还包括:
根据预设代码清洗策略,对所述第一样本代码文本进行清洗过滤,获得清洗后的第一样本代码文本,其中,所述预设代码清洗策略包括代码长度清洗策略、代码来源清洗策略、代码规范性清洗策略中的至少一种;
所述解析所述第一样本代码文本,获得所述第一样本代码文本的第一样本结构化数据,包括:
解析所述清洗后的第一样本代码文本,获得所述清洗后的第一样本代码文本的第一样本结构化数据。
10.一种代码补全方法,包括:
获取代码补全任务的待补全代码数据;
将所述待补全代码数据输入任务处理模型中,获得所述待补全代码数据的代码补全结果,其中,所述任务处理模型基于多个样本代码块数据和所述样本代码块数据对应的样本代码标签训练得到,所述样本代码块数据基于代码块类型从样本代码文本中提取得到。
11.一种代码问答方法,包括:
获取代码问答任务的待回答代码数据;
将所述待回答代码数据输入任务处理模型中,获得所述待回答代码数据的代码答复结果,其中,所述任务处理模型基于多个样本代码块数据和所述样本代码块数据对应的样本代码标签训练得到,所述样本代码块数据基于代码块类型从样本代码文本中提取得到。
12.一种任务处理模型训练方法,包括:
获取样本集,其中,所述样本集包括多个样本代码块数据和所述样本代码块数据对应的样本代码标签,所述样本代码块数据基于代码块类型从样本代码文本中提取得到;
将所述多个样本代码块数据输入初始任务处理模型,获得所述多个样本代码块数据分别对应的代码预测结果;
根据所述代码预测结果和所述样本代码标签,调整所述初始任务处理模型的模型参数,获得训练完成的任务处理模型。
13.根据权利要求12所述的方法,所述根据所述代码预测结果和所述样本代码标签,调整所述初始任务处理模型的模型参数,获得训练完成的任务处理模型之后,还包括:
响应于用户针对所述任务处理模型发送的反馈信息,生成优化提示信息,其中,所述优化提示信息用于引导所述用户发送用于优化所述任务处理模型的模型优化数据;
接收所述用户基于所述优化提示信息发送的所述模型优化数据,并根据所述模型优化数据调整所述任务处理模型的模型参数。
14.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机程序/指令,所述处理器用于执行所述计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1至9任意一项或者权利要求10或者权利要求11或者权利要求12至13任意一项所述方法的步骤。
15.一种计算机可读存储介质,其存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1至9任意一项或者权利要求10或者权利要求11或者权利要求12至13任意一项所述方法的步骤。
16.一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现权利要求1至9任意一项或者权利要求10或者权利要求11或者权利要求12至13任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410119809.XA CN117648079B (zh) | 2024-01-29 | 2024-01-29 | 任务处理、代码补全、代码问答及任务处理模型训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410119809.XA CN117648079B (zh) | 2024-01-29 | 2024-01-29 | 任务处理、代码补全、代码问答及任务处理模型训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117648079A true CN117648079A (zh) | 2024-03-05 |
CN117648079B CN117648079B (zh) | 2024-05-14 |
Family
ID=90046309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410119809.XA Active CN117648079B (zh) | 2024-01-29 | 2024-01-29 | 任务处理、代码补全、代码问答及任务处理模型训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648079B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170212748A1 (en) * | 2015-09-18 | 2017-07-27 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program |
US20190318030A1 (en) * | 2018-04-17 | 2019-10-17 | International Business Machines Corporation | Refining search results generated from a combination of multiple types of searches |
US20190332968A1 (en) * | 2018-04-29 | 2019-10-31 | Microsoft Technology Licensing, Llc. | Code completion for languages with hierarchical structures |
CN111459491A (zh) * | 2020-03-17 | 2020-07-28 | 南京航空航天大学 | 一种基于树形神经网络的代码推荐方法 |
CN113064586A (zh) * | 2021-05-12 | 2021-07-02 | 南京大学 | 一种基于抽象语法树增广图模型的代码补全方法 |
CN113867710A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 代码补全的方法和装置 |
CN114840252A (zh) * | 2022-05-12 | 2022-08-02 | 中国工商银行股份有限公司 | 代码注释生成方法、模型的训练方法、装置和设备 |
WO2022226716A1 (zh) * | 2021-04-25 | 2022-11-03 | 南京大学 | 基于深度学习的Java程序内部注释的生成方法及系统 |
CN116166271A (zh) * | 2023-02-23 | 2023-05-26 | 抖音视界有限公司 | 代码生成方法、装置、存储介质及电子设备 |
CN116610781A (zh) * | 2023-04-25 | 2023-08-18 | 阿里巴巴(中国)有限公司 | 任务模型训练方法以及装置 |
CN116798053A (zh) * | 2023-07-20 | 2023-09-22 | 上海合芯数字科技有限公司 | 图标生成方法及装置 |
CN117111952A (zh) * | 2023-08-23 | 2023-11-24 | 网易(杭州)网络有限公司 | 基于生成式人工智能的代码补全方法和装置、介质 |
CN117435230A (zh) * | 2023-07-19 | 2024-01-23 | 中国工商银行股份有限公司 | 基于神经网络的代码注释处理方法及装置 |
-
2024
- 2024-01-29 CN CN202410119809.XA patent/CN117648079B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170212748A1 (en) * | 2015-09-18 | 2017-07-27 | ReactiveCore LLC | System and method for providing supplemental functionalities to a computer program |
US20190318030A1 (en) * | 2018-04-17 | 2019-10-17 | International Business Machines Corporation | Refining search results generated from a combination of multiple types of searches |
US20190332968A1 (en) * | 2018-04-29 | 2019-10-31 | Microsoft Technology Licensing, Llc. | Code completion for languages with hierarchical structures |
CN111459491A (zh) * | 2020-03-17 | 2020-07-28 | 南京航空航天大学 | 一种基于树形神经网络的代码推荐方法 |
CN113867710A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 代码补全的方法和装置 |
WO2022226716A1 (zh) * | 2021-04-25 | 2022-11-03 | 南京大学 | 基于深度学习的Java程序内部注释的生成方法及系统 |
CN113064586A (zh) * | 2021-05-12 | 2021-07-02 | 南京大学 | 一种基于抽象语法树增广图模型的代码补全方法 |
CN114840252A (zh) * | 2022-05-12 | 2022-08-02 | 中国工商银行股份有限公司 | 代码注释生成方法、模型的训练方法、装置和设备 |
CN116166271A (zh) * | 2023-02-23 | 2023-05-26 | 抖音视界有限公司 | 代码生成方法、装置、存储介质及电子设备 |
CN116610781A (zh) * | 2023-04-25 | 2023-08-18 | 阿里巴巴(中国)有限公司 | 任务模型训练方法以及装置 |
CN117435230A (zh) * | 2023-07-19 | 2024-01-23 | 中国工商银行股份有限公司 | 基于神经网络的代码注释处理方法及装置 |
CN116798053A (zh) * | 2023-07-20 | 2023-09-22 | 上海合芯数字科技有限公司 | 图标生成方法及装置 |
CN117111952A (zh) * | 2023-08-23 | 2023-11-24 | 网易(杭州)网络有限公司 | 基于生成式人工智能的代码补全方法和装置、介质 |
Non-Patent Citations (1)
Title |
---|
虞慧群;黄家杰;范贵生;刁旭炀;: "融合定向自注意机制的代码完成方法", 小型微型计算机系统, no. 05, 15 May 2020 (2020-05-15), pages 1078 - 1083 * |
Also Published As
Publication number | Publication date |
---|---|
CN117648079B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107491534B (zh) | 信息处理方法和装置 | |
US11468342B2 (en) | Systems and methods for generating and using knowledge graphs | |
CN117521675A (zh) | 基于大语言模型的信息处理方法、装置、设备及存储介质 | |
CN117332072B (zh) | 对话处理、语音摘要提取以及目标对话模型训练方法 | |
CN116595154A (zh) | 任务处理方法以及自动问答方法 | |
CN116610781A (zh) | 任务模型训练方法以及装置 | |
CN117573842B (zh) | 文档检索方法以及自动问答方法 | |
CN117971420A (zh) | 任务处理、交通任务处理以及任务处理模型训练方法 | |
CN117193964A (zh) | 任务处理方法以及自动问答方法 | |
WO2021080735A1 (en) | Automated exception featurization and search | |
CN117648079B (zh) | 任务处理、代码补全、代码问答及任务处理模型训练方法 | |
US11316807B2 (en) | Microservice deployment in multi-tenant environments | |
CN116467500B (zh) | 数据关系识别、自动问答、查询语句生成方法 | |
CN118227770B (zh) | 任务处理方法、法律问答方法及任务处理模型训练方法 | |
CN118363601A (zh) | 任务处理方法、代码补全方法、代码处理模型训练方法、基于代码处理模型的信息处理方法及模型训练平台 | |
CN117539438B (zh) | 软件开发方法 | |
CN118051429A (zh) | 测试处理方法及系统 | |
CN118428330A (zh) | 数据处理方法及装置 | |
CN117648986A (zh) | 任务处理和代码处理方法、计算设备、介质和程序产品 | |
CN117830447A (zh) | 图像生成、自动问答以及参数生成模型训练方法 | |
CN118170928A (zh) | 分析信息生成方法以及财报分析信息生成方法 | |
CN118212460A (zh) | 图像分类方法、自动问答方法、图像类别特征融合模型训练方法及基于深度学习模型的信息处理方法 | |
CN118227731A (zh) | 样本数据构建方法及问答模型的训练方法 | |
Manoj Krishna et al. | Computer science and Engineering, Srinivas Institute of Technology, Mangalore, Karnataka, India | |
CN117851557A (zh) | 模型处理方法及问答系统 |
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 |