CN117724695B - 大型语言模型的代码生成优化方法、装置、设备及介质 - Google Patents
大型语言模型的代码生成优化方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117724695B CN117724695B CN202410179354.0A CN202410179354A CN117724695B CN 117724695 B CN117724695 B CN 117724695B CN 202410179354 A CN202410179354 A CN 202410179354A CN 117724695 B CN117724695 B CN 117724695B
- Authority
- CN
- China
- Prior art keywords
- error message
- message generation
- model
- generation model
- current
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000005457 optimization Methods 0.000 title claims abstract description 48
- 230000008439 repair process Effects 0.000 claims abstract description 65
- 230000006870 function Effects 0.000 claims description 82
- 238000012549 training Methods 0.000 claims description 67
- 239000013598 vector Substances 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013528 artificial neural network Methods 0.000 claims description 11
- 230000008901 benefit Effects 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 7
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 239000012634 fragment Substances 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 3
- 230000009471 action Effects 0.000 description 26
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000002787 reinforcement Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种大型语言模型的代码生成优化方法、装置、设备及介质,涉及计算机技术领域,该方法包括:生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。通过上述方案,能够提升大型语言模型的代码生成能力及其自动化代码调试能力。
Description
技术领域
本发明涉及计算机技术领域,特别涉及大型语言模型的代码生成优化方法、装置、设备及介质。
背景技术
随着语言模型技术的不断发展,语言模型的参数规模已经扩展到千亿乃至万亿级别。其中,大型语言模型的出现,极大地推动了自然语言处理(Natural LanguageProcessing,即NLP)领域的技术进步。代码生成一直是各种应用程序面临的长期挑战,例如自然语言的代码合成、示例编程和代码翻译,特别是最近的大型语言模型(Large LanguageModel,即LLM)已经证明在改进之前的深度神经网络方面有了重大飞跃。然而,对于许多编程任务而言,一次尝试生成正确的代码具有挑战性,即使对于人类程序员,也不能保证第一次尝试编写的代码总是准确的。
当代码片段出现错误时,人们通常不会完全丢弃不正确的代码,而是查看代码并调查执行结果,然后进行更改以解决出现的错误。现有自调试方法通过指示模型执行代码,然后根据代码及其执行结果生成反馈消息,从而使得大型语言模型通过少量提示来调试自身的预测代码;但是现有技术中的大型语言模型缺乏高级语义理解能力、错误定位不准确、解决错误的能力较低,导致大型语言模型的代码生成效果较差,降低了大型语言模型在编程及代码生成领域的应用效果,使得程序员在使用大型语言模型进行自我调试及代码生成时面临一些挑战。
综上可见,如何提升大型语言模型的代码生成能力及其自动化代码调试能力是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种大型语言模型的代码生成优化方法、装置、设备及介质,提升大型语言模型的代码生成能力及其自动化代码调试能力。其具体方案如下:
第一方面,本申请公开了一种大型语言模型的代码生成优化方法,包括:
生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;
获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;
将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;
利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。
可选的,所述生成当前代码片段的语义表示,包括:
利用代码嵌入器生成当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。
可选的,所述生成当前代码片段的语义表示,包括:
将当前代码片段转换为有向无环图;
利用递归神经网络对所述有向无环图进行编码,以得到所述当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。
可选的,所述获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略之前,还包括:
采集第一训练样本;其中,所述第一训练样本包括各个训练代码片段以及对应的标注修复建议、标注调试策略;
构建初始策略网络,并确定所述初始策略网络的优势函数、第一损失函数以及价值网络;
将所述第一训练样本输入至所述初始策略网络,以利用所述优势函数、所述第一损失函数以及所述价值网络训练所述初始策略网络,得到目标策略网络。
可选的,所述将所述修复建议和所述调试策略输入至目标错误消息生成模型之前,还包括:
采集第二训练样本;其中,所述第二训练样本包括训练修复建议、训练调试策略以及对应的标注错误消息,所述标注错误消息包括错误类型、错误原因以及解决方法;
对所述第二训练样本进行特征提取,以得到样本特征,并利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型;
相应的,所述将所述修复建议和所述调试策略输入至目标错误消息生成模型,包括:
对所述修复建议和所述调试策略进行特征提取,以得到目标特征,并将所述目标特征输入至所述目标错误消息生成模型。
可选的,所述利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型,包括:
构建初始错误消息生成模型,并设置所述初始错误消息生成模型的第二损失函数;
将所述初始错误消息生成模型确定为当前错误消息生成模型,并将所述样本特征输入至所述当前错误消息生成模型,以获取所述当前错误消息生成模型输出的预测错误消息;
利用所述第二损失函数计算所述标注错误消息与所述预测错误消息之间的损失函数值;
若所述损失函数值大于预设阈值,则利用所述损失函数值更新所述当前错误消息生成模型的参数,以得到下一错误消息生成模型,并将所述下一错误消息生成模型更新为当前错误消息生成模型,然后重新跳转至所述将所述样本特征输入至所述当前错误消息生成模型的步骤;
若所述损失函数值不大于预设阈值,则将所述当前错误消息生成模型确定为目标错误消息生成模型。
可选的,所述获取所述当前代码片段的错误信息,包括:
利用执行器或编译器获取所述当前代码片段的调试信息;
从所述调试信息中筛选出所述当前代码片段的错误信息。
第二方面,本申请公开了一种大型语言模型的代码生成优化装置,包括:
代码信息获取模块,用于生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;
修复策略获取模块,用于获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;
错误消息生成模块,用于将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;
语言模型优化模块,用于利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的大型语言模型的代码生成优化方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的大型语言模型的代码生成优化方法的步骤。
本申请有益效果为:本申请生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。由此可见,首先,本申请生成当前代码片段的语义表示,而语义表示更能够准确的捕捉代码的意图、功能和逻辑,更能够提供准确和详细的代码解释,基于语义表示可以提升大型语言模型的语义理解能力;目标策略网络输出与当前代码片段对应的修复建议和调试策略,可以帮助大型语言模型更准确的进行错误定位和解决错误;与当前代码片段对应的错误消息可以提供更具信息量和指导性的反馈;如此一来,利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,能够提升大型语言模型在代码生成方面的自动调试能力,提高大型语言模型代码生成效果和能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种大型语言模型的代码生成优化方法流程图;
图2为本申请公开的一种具体的大型语言模型的代码生成优化示意图;
图3为本申请公开的一种大型语言模型的代码生成优化装置结构示意图;
图4为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当代码片段出现错误时,人们通常不会完全丢弃不正确的代码,而是查看代码并调查执行结果,然后进行更改以解决出现的错误。现有自调试方法通过指示模型执行代码,然后根据代码及其执行结果生成反馈消息,从而使得大型语言模型通过少量提示来调试自身的预测代码;但是现有技术中的大型语言模型缺乏高级语义理解能力、错误定位不准确、解决错误的能力较低,导致大型语言模型的代码生成效果较差,降低了大型语言模型在编程及代码生成领域的应用效果,使得程序员在使用大型语言模型进行自我调试及代码生成时面临一些挑战。
为此本申请相应的提供了一种大型语言模型的代码生成优化方案,提升大型语言模型的代码生成能力及其自动化代码调试能力。
参见图1所示,本申请实施例公开了一种大型语言模型的代码生成优化方法,包括:
步骤S11:生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息。
在一种具体实施例中,所述生成当前代码片段的语义表示,包括:利用代码嵌入器生成当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。使用嵌入向量来表示代码的语义信息,并将其输入到目标策略网络中,具体来说,可以使用预训练的代码嵌入器将当前代码片段转换为嵌入向量,得到当前代码片段的语义表示,其中代码嵌入器例如Code2Vec。
在另一种具体实施例中,所述生成当前代码片段的语义表示,包括:将当前代码片段转换为有向无环图;利用递归神经网络对所述有向无环图进行编码,以得到所述当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。
1)将代码表示为图形结构,在代码中,每个变量、函数和类等元素都可以看作是一个节点,它们之间的依赖关系可以看作是边。因此可以将这些节点和边转化为一个图,其中节点代表代码中的变量、函数和类等元素,边代表它们之间的依赖关系,具体如下所示:
G=(V,E);
式中,V表示节点的集合,E表示边的集合,这样的图结构可以更好地反映代码的语义含义,同时也方便应用图神经网络等技术进行进一步分析。
2)将代码图嵌入到一个低维向量空间中:
υi=fembedding(hi,hN(i));
式中,hi表示节点i的特征向量,hN(i)表示节点i的邻居节点的特征向量,fembedding表示图嵌入函数,为了让模型能够更好地理解代码的语义含义,需要将代码图转化为向量形式。这可以通过图嵌入技术来实现。具体来说,可以将代码图输入到图神经网络中,通过网络的学习将图结构嵌入到一个低维向量空间中。这样的嵌入向量可以反映出图结构中节点之间的关系,进而提升模型对代码的语义理解能力。
将当前代码片段转换为图形结构以得到嵌入向量,具体可以是将当前代码片段转换为有向无环图;利用递归神经网络对有向无环图进行编码,以得到当前代码片段的嵌入向量,具体过程如下:
1)代码作为有向无环图(Directed Acyclic Graph,即DAG):DAG是一种特殊类型的图,在其中,边具有方向,并且不存在任何环路(即没有一个节点可以通过一系列的边回到自身),这种结构非常适合表示代码的流程和依赖关系,因为代码通常具有明确的执行顺序和依赖性。
2)使用递归神经网络(Recursive Neural Network,即RNN)进行编码:RNN是一种处理序列数据的神经网络,它通过递归地处理序列中的每个元素来维护一个内部状态,从而能够捕捉序列中的信息和依赖关系。当使用RNN对DAG进行编码时,网络会沿着图的边递归地遍历节点,在这个过程中,每个节点的信息(包括它的原始特征和通过边连接的邻居节点的信息)被整合到RNN的状态中,RNN的这种递归处理能够有效地捕获节点之间的依赖关系和交互效应。
3)获取嵌入向量:在遍历DAG的过程中,RNN的每个状态可以被视为对应节点的嵌入向量,即该节点在经过处理后的高维空间中的表示,这个嵌入向量捕捉了节点的上下文信息,即它的角色和它与其他代码元素的关系。这些嵌入向量可以用于多种下游任务,如代码分类、代码生成、缺陷预测等。它们提供了一种密集的、信息丰富的表示,能够被机器学习模型有效利用。具体公式如下所示:
;
式中,xi表示节点i的特征向量,in(i)表示与节点i相连的所有输入节点的索引,hj表示与节点i相连的所有输入节点j的嵌入向量的和,Wh和bh表示可训练的权重和偏置项,f表示激活函数,最后,可以将所有节点的嵌入向量求和,从而得到整个代码的嵌入向量:
;
式中,hc表示代码的嵌入向量,n表示代码中节点的数量。
进一步的,可以使用类似于GAT(Graph Attention Network)的方法来计算节点和边之间的注意力权重,将这些向量嵌入到模型的策略网络中进行训练,以更新模型的调试策略,具体来说,可以使用以下公式来计算节点和边的向量表示:
;
;
式中,表示节点v在第l层的向量表示,/>表示节点w在第l层的向量表示,表示边(v,w)在第l层的向量表示,/>表示与节点v相邻的节点集合,/>表示节点v和节点w在第l层的注意力权重,/>表示节点v在第l层的偏置项,/>表示激活函数,⊙表示哈达玛积。
总之,通过将代码表示为DAG并使用RNN进行编码,可以生成反映代码结构和语义的嵌入向量,这种方法允许算法捕捉代码的细微结构差异,从而在处理复杂的代码相关任务时更为有效和准确。
本实施例中,所述获取所述当前代码片段的错误信息,包括:利用执行器或编译器获取所述当前代码片段的调试信息;从所述调试信息中筛选出所述当前代码片段的错误信息。执行器或编译器获取当前代码片段的调试信息,调试信息指在代码调试过程中所获取的有关代码执行状态、错误信息和程序状态的信息,调试信息包括错误消息、变量的值、代码执行路径等,有助于定位和解决代码中的问题,因此可以从调试信息中筛选出当前代码片段的错误信息。
步骤S12:获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略。
本实施例中,所述获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略之前,还包括:采集第一训练样本;其中,所述第一训练样本包括各个训练代码片段以及对应的标注修复建议、标注调试策略;构建初始策略网络,并确定所述初始策略网络的优势函数、第一损失函数以及价值网络;将所述第一训练样本输入至所述初始策略网络,以利用所述优势函数、所述第一损失函数以及所述价值网络训练所述初始策略网络,得到目标策略网络。采集包括各个训练代码片段以及对应的标注修复建议、标注调试策略的第一训练样本,构建初始策略网络,利用第一训练样本对初始策略网络进行训练,可以使用类似PPO(Proximal Policy Optimization,即近端策略优化)的算法来训练模型的策略网络,以优化模型的调试能力。具体来说,可以使用以下公式计算策略网络的损失:
;
式中,N表示训练集中的样本数量,T表示每个第一训练样本的时间步数,Si,t表示在时间步t中的状态,ai,t表示在时间步t中的行动,Ai,t表示在时间步t中的优势函数,表示在状态Si,t下策略的熵,/>表示在状态Si,t下选择行动ai,t的概率,λ表示GAE-Lambda算法中的超参数。
为了将更多调试技术和策略引入自调试的框架中,最终构成一种新型自动化调试策略,可以将不同的调试技术和策略作为不同的调试行动,同时将其集成到强化学习的框架中。在每个时间步,模型可以从多个调试行动中选择一个最优的行动来进行调试,以进一步提高模型的调试性能。
具体来说,可以将不同的调试技术和策略表示为一个调试策略的集合,其中每个di表示一种具体的调试行动。将模型的调试策略表示为一个函数/>,其中a∈D表示选择的调试行动,s表示当前的状态。在每个时间步,模型将根据当前状态s和策略函数/>选择一个行动a进行调试,同时根据选择的行动和调试结果来更新策略函数的参数θ,从而使模型能够学习到更好的调试策略。
可以使用类似PPO的算法来训练模型的策略网络。具体来说,在每个时间步t,使用当前状态Si,t和选择的行动ai,t来计算当前的优势函数Ai,t,并计算策略函数在选择行动ai,t时的对数概率和熵/>。然后,将策略函数的参数θ更新为使得策略函数在当前状态Si,t下选择行动ai,t的概率最大化,并且策略的熵最大化的方向,可以使用类似于Actor-Critic的方法来计算优势函数Ai,t,即将策略网络和价值网络一起训练,同时使用TD误差来计算价值网络的损失。
具体而言,可以将优势函数定义为:
;
式中,表示在时间步r的即时奖励,/>表示在状态Si,t下的状态价值函数,/>表示折扣因子。可以使用MSE(MeanSquare Error,即均方误差)损失来训练价值网络:
;
式中,表示在状态Si,t下的目标价值,可以使用/>来计算。
最后,可以将价值函数的预测值和优势函数结合起来,计算出策略的损失函数。
训练策略网络,特别是在强化学习(如策略梯度方法)中,涉及一系列步骤,其中包括策略网络参数的更新、优势函数值的计算,以及价值网络损失值的计算。这些步骤相互关联,共同作用于策略网络的有效训练。以下是这些步骤之间的关联性简述:
1)策略网络的参数更新:策略网络旨在直接学习一个策略,即在给定状态下选择最佳动作的概率分布。策略网络的参数更新是为了使得选择的动作更倾向于那些带来更高回报的动作。这通常通过策略梯度方法实现,如REINFORCE或Actor-Critic方法。策略梯度方法依赖于对策略性能的评估,即它如何影响获得回报的概率。
2)计算优势函数值:优势函数(Advantage Function)衡量了在某状态下采取某动作相对于平均水平的优势(或不利)。优势函数的计算对于指导策略网络参数更新至关重要。它帮助策略网络区分哪些动作比平均情况更好,从而在训练中偏向于选择这些动作。
3)计算价值网络的损失值:在一些策略梯度方法(如Actor-Critic)中,除了策略网络(Actor)外,还有一个价值网络(Critic)。价值网络的目的是估计状态价值函数,即不采取特定动作时的预期回报。价值网络的损失计算是为了优化价值网络,使其估计的状态价值尽可能接近实际的回报。这个损失值通常通过均方误差或类似方法计算。
这三个步骤紧密相连,形成了策略网络训练的核心:优势函数提供了衡量动作好坏的依据,指导策略网络对动作概率分布进行调整。价值网络提供了一个基线,帮助优势函数评估特定动作相对于平均水平的效果。策略网络的更新反过来又依赖于优势函数的计算结果,同时影响后续的状态和动作,进而影响价值网络的损失计算和优化。总的来说,这三个步骤共同构成了一个相互依赖、循环迭代的过程,使策略网络能够有效地学习在给定状态下采取最优动作的策略。
通过以上算法步骤,可以设计一种断点调试策略,让模型能够自主选择在哪个位置加入断点,并在断点处解释和修复代码。同时,也可以将单元测试等其他调试技术引入框架中,以进一步提高模型的调试性能和鲁棒性。
修复建议是指针对代码中的错误或问题提供的具体修复方案或改进建议,修复建议可以是代码片段、算法改进等,帮助程序员快速定位和解决代码中的问题,调试策略则是给出的在代码调试过程中可能会用到的策略,例如,当前代码片段具体为:
def calculate_average(numbers):
total = sum(numbers)
average = total / len(numbers)
return average
data=[1,2,3,4,5]
result=calculate_average(data)
print("The average is:",result);
目标策略网络输出的修复建议具体为:
检查‘numbers’参数是否为空,添加异常处理机制;
目标策略网络输出的调试策略具体为:
打印‘total’和‘average’的值,以便调试计算过程。
步骤S13:将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息。
在语义错误的情况下,模型生成的反馈信息与逐行的代码解释相比,并没有提供额外的好处,因此,可以探索如何预测更具信息量的错误消息,这样的错误消息可以提供关于错误类型、可能的原因和解决方法的更详细信息,从而帮助大语言模型更快地发现和修复错误;其中,错误消息指在代码调试过程中生成的关于错误的提示或信息,错误消息包括错误类型、可能的原因和解决方法,帮助程序员理解和解决代码中的错误。
本实施例中,所述将所述修复建议和所述调试策略输入至目标错误消息生成模型之前,还包括:采集第二训练样本;其中,所述第二训练样本包括训练修复建议、训练调试策略以及对应的标注错误消息,所述标注错误消息包括错误类型、错误原因以及解决方法;对所述第二训练样本进行特征提取,以得到样本特征,并利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型。为了开发更好的错误提示技术,改进生成的错误提示的质量,以下是相应的算法方案和步骤,用于预测更具信息量的错误消息:
1)数据收集和准备:采集第二训练样本,即收集包含错误类型、错误原因和解决方法的数据集。这些数据可以通过人工标注、已有的代码库、文档或论文中的错误示例等方式获得。每个第二训练样本应包含训练修复建议、训练调试策略以及对应的标注错误消息,标注错误消息包括错误类型、错误原因以及解决方法。
2)特征提取:从收集的数据中提取特征,以得到样本特征,用于训练初始错误消息生成模型。常见的特征可以包括代码片段、上下文信息、错误类型和可能的原因等,将这些特征转化为模型可以理解的数值表示形式。
3)错误消息生成模型训练:设计一个初始错误消息生成模型,该模型可以样本特征作为输入,并生成错误消息作为输出。可以使用类似于Seq2Seq模型或Transformer模型的结构,模型的目标是最大化给定输入特征下生成正确错误消息的概率。
本实施例中,所述利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型,包括:构建初始错误消息生成模型,并设置所述初始错误消息生成模型的第二损失函数;将所述初始错误消息生成模型确定为当前错误消息生成模型,并将所述样本特征输入至所述当前错误消息生成模型,以获取所述当前错误消息生成模型输出的预测错误消息;利用所述第二损失函数计算所述标注错误消息与所述预测错误消息之间的损失函数值;若所述损失函数值大于预设阈值,则利用所述损失函数值更新所述当前错误消息生成模型的参数,以得到下一错误消息生成模型,并将所述下一错误消息生成模型更新为当前错误消息生成模型,然后重新跳转至所述将所述样本特征输入至所述当前错误消息生成模型的步骤;若所述损失函数值不大于预设阈值,则将所述当前错误消息生成模型确定为目标错误消息生成模型。构建初始错误消息生成模型,并设置初始错误消息生成模型的第二损失函数具体包括:
1)定义模型架构:选择适当的神经网络架构,例如Seq2Seq模型或Transformer模型,根据输入特征设计模型的编码器和解码器结构。
2)定义损失函数:选择合适的损失函数,例如交叉熵损失函数,损失函数衡量模型生成的错误消息与真实错误消息之间的差异。
3)定义参数优化算法:使用训练数据集进行模型训练,通过最小化损失函数来优化模型参数,可以使用随机梯度下降等优化算法进行参数优化。
模型训练过程具体包括:从第二训练样本中提取特征,转化为模型可以理解的数值表示形式;将第二训练样本的特征输入初始错误消息生成模型,生成预测错误消息,其中,/>为用于训练初始错误生成模型的数据,xi表示特征,yi表示标注错误消息;利用第二损失函数计算标注错误消息与预测错误消息之间的损失函数值,第二损失函数具体如下所示:
;
式中,Ti表示自然语言描述yi的长度,P表示条件概率函数。
接下来,利用损失函数值和参数优化算法更新模型的参数,以最小化损失函数值,进而得到目标错误消息生成模型;参数优化算法具体如下所示:
;
式中,表示学习率。
本实施例中,所述将所述修复建议和所述调试策略输入至目标错误消息生成模型,包括:对所述修复建议和所述调试策略进行特征提取,以得到目标特征,并将所述目标特征输入至所述目标错误消息生成模型。因为在训练错误消息生成模型时,是需要将样本特征输入至错误消息生成模型,所以在实际使用目标错误消息生成模型时,也是需要提取修复建议和调试策略的特征,将得到的目标特征输入至目标错误消息生成模型,从而获取当前代码片段的错误消息。通过以上算法方案和步骤,预测更具信息量的错误消息,这样的错误消息可以提供更多关于错误的细节和解决方法,帮助大语言模型更快速、准确地进行调试,进而提升代码生成质量。例如生成以下错误消息:
错误类型:‘ZeroDivisionError’(除以0错误);
可能原因:‘numbers’参数为空或‘len(numbers)’为0;
解决方法:检查输入数据是否为空,添加异常处理或避免除以0错误。
步骤S14:利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。
例如图2所示的一种具体的大型语言模型的代码生成优化示意图,利用当前代码片段、修复建议、调试策略以及错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型,其中,可以利用指令微调(Supervised Fine-Tuning即SFT)、强化学习算法等对大型语言模型进行参数优化,强化学习算法例如是RLHF(Reinforcement Learning from Human Feedback,即基于人类反馈的强化学习)过程、RLHF过程中可以使用DPO(Direct Preference Optimization)、PPO(Proximal PolicyOptimization)等算法,指令微调是一种大模型微调方法,通过在指令数据集上对模型进行有监督的微调,使模型能够更好地理解和执行指令,在SFT中,模型的输入包括指令和上下文信息,输出为指令的执行结果,通过在指令数据集上进行有监督的微调,可以使模型更好地理解指令的含义,并生成符合指令的输出,指令微调SFT是一种有效的提高大语言模型表现的方法,可以使模型更好地适应实际应用场景,提高模型的泛化能力和鲁棒性,因此模型可以根据反馈信息进行自我调整和修正,提高其自动调试能力,也就是说,本实施例引入了反馈和自我调整机制,将修复建议、调试策略和错误提示反馈给大型语言模型,从而实现模型的自我调整和修正。通过反馈和自我调整,大型语言模型可以不断优化自身的自动调试能力,提高代码生成效果和能力。
可以理解是,本实施例主要是更新与代码生成优化相关的参数,但是在更新与代码生成优化相关的参数的同时,也会使得其他参数发生更新。
本申请有益效果为:本申请生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。由此可见,首先,本申请生成当前代码片段的语义表示,而语义表示更能够准确的捕捉代码的意图、功能和逻辑,更能够提供准确和详细的代码解释,基于语义表示可以提升大型语言模型的语义理解能力;目标策略网络输出与当前代码片段对应的修复建议和调试策略,可以帮助大型语言模型更准确的进行错误定位和解决错误;与当前代码片段对应的错误消息可以提供更具信息量和指导性的反馈;如此一来,利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,能够提升大型语言模型在代码生成方面的自动调试能力,提高大型语言模型代码生成效果和能力。
参见图3所示,本申请实施例公开了一种大型语言模型的代码生成优化装置,包括:
代码信息获取模块11,用于生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;
修复策略获取模块12,用于获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;
错误消息生成模块13,用于将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;
语言模型优化模块14,用于利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。
本申请有益效果为:本申请生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型。由此可见,首先,本申请生成当前代码片段的语义表示,而语义表示更能够准确的捕捉代码的意图、功能和逻辑,更能够提供准确和详细的代码解释,基于语义表示可以提升大型语言模型的语义理解能力;目标策略网络输出与当前代码片段对应的修复建议和调试策略,可以帮助大型语言模型更准确的进行错误定位和解决错误;与当前代码片段对应的错误消息可以提供更具信息量和指导性的反馈;如此一来,利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,能够提升大型语言模型在代码生成方面的自动调试能力,提高大型语言模型代码生成效果和能力。
进一步的,本申请实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的大型语言模型的代码生成优化方法中的相关步骤。
本实施例中,电源23用于为电子设备上的各硬件设备提供工作电压;通信接口24能够为电子设备创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备执行的大型语言模型的代码生成优化方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的大型语言模型的代码生成优化方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(Random Access Memory,即RAM)、内存、只读存储器(Read-Only Memory,即ROM)、电可编程EPROM(Erasable Programmable Read Only Memory)、电可擦除可编程EEPROM(Electrically Erasable Programmable read only memory)、寄存器、硬盘、可移动磁盘、CD-ROM(CoMP23035839act Disc Read-Only Memory,即紧凑型光盘只读储存器)、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种大型语言模型的代码生成优化方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种大型语言模型的代码生成优化方法,其特征在于,包括:
生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;
获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;
将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;
利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型;
其中,所述获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略之前,还包括:
采集第一训练样本;其中,所述第一训练样本包括各个训练代码片段以及对应的标注修复建议、标注调试策略;构建初始策略网络,并确定所述初始策略网络的优势函数、第一损失函数以及价值网络;将所述第一训练样本输入至所述初始策略网络,以利用所述优势函数、所述第一损失函数以及所述价值网络训练所述初始策略网络,得到目标策略网络;
所述将所述修复建议和所述调试策略输入至目标错误消息生成模型之前,还包括:
采集第二训练样本;其中,所述第二训练样本包括训练修复建议、训练调试策略以及对应的标注错误消息,所述标注错误消息包括错误类型、错误原因以及解决方法;对所述第二训练样本进行特征提取,以得到样本特征,并利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型;
所述利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型,包括:
构建初始错误消息生成模型,并设置所述初始错误消息生成模型的第二损失函数;将所述初始错误消息生成模型确定为当前错误消息生成模型,并将所述样本特征输入至所述当前错误消息生成模型,以获取所述当前错误消息生成模型输出的预测错误消息;利用所述第二损失函数计算所述标注错误消息与所述预测错误消息之间的损失函数值;若所述损失函数值大于预设阈值,则利用所述损失函数值更新所述当前错误消息生成模型的参数,以得到下一错误消息生成模型,并将所述下一错误消息生成模型更新为当前错误消息生成模型,然后重新跳转至所述将所述样本特征输入至所述当前错误消息生成模型的步骤;若所述损失函数值不大于预设阈值,则将所述当前错误消息生成模型确定为目标错误消息生成模型。
2.根据权利要求1所述的大型语言模型的代码生成优化方法,其特征在于,所述生成当前代码片段的语义表示,包括:
利用代码嵌入器生成当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。
3.根据权利要求1所述的大型语言模型的代码生成优化方法,其特征在于,所述生成当前代码片段的语义表示,包括:
将当前代码片段转换为有向无环图;
利用递归神经网络对所述有向无环图进行编码,以得到所述当前代码片段的嵌入向量,并将所述嵌入向量确定为所述当前代码片段的语义表示。
4.根据权利要求1至3任一项所述的大型语言模型的代码生成优化方法,其特征在于,所述将所述修复建议和所述调试策略输入至目标错误消息生成模型,包括:
对所述修复建议和所述调试策略进行特征提取,以得到目标特征,并将所述目标特征输入至所述目标错误消息生成模型。
5.根据权利要求1所述的大型语言模型的代码生成优化方法,其特征在于,所述获取所述当前代码片段的错误信息,包括:
利用执行器或编译器获取所述当前代码片段的调试信息;
从所述调试信息中筛选出所述当前代码片段的错误信息。
6.一种大型语言模型的代码生成优化装置,其特征在于,包括:
代码信息获取模块,用于生成当前代码片段的语义表示,并获取所述当前代码片段的错误信息;
修复策略获取模块,用于获取目标策略网络基于所述语义表示和所述错误信息输出的与所述当前代码片段对应的修复建议和调试策略;
错误消息生成模块,用于将所述修复建议和所述调试策略输入至目标错误消息生成模型,以得到所述目标错误消息生成模型输出的与所述当前代码片段对应的错误消息;
语言模型优化模块,用于利用所述当前代码片段、所述修复建议、所述调试策略以及所述错误消息对大型语言模型中与代码生成优化相关的参数进行更新,得到优化后大型语言模型;
其中,所述大型语言模型的代码生成优化装置,还具体用于:
采集第一训练样本;其中,所述第一训练样本包括各个训练代码片段以及对应的标注修复建议、标注调试策略;构建初始策略网络,并确定所述初始策略网络的优势函数、第一损失函数以及价值网络;将所述第一训练样本输入至所述初始策略网络,以利用所述优势函数、所述第一损失函数以及所述价值网络训练所述初始策略网络,得到目标策略网络;
所述大型语言模型的代码生成优化装置,还具体用于:
采集第二训练样本;其中,所述第二训练样本包括训练修复建议、训练调试策略以及对应的标注错误消息,所述标注错误消息包括错误类型、错误原因以及解决方法;对所述第二训练样本进行特征提取,以得到样本特征,并利用所述样本特征对构建的初始错误消息生成模型进行训练,以得到目标错误消息生成模型;
所述大型语言模型的代码生成优化装置,还具体用于:
构建初始错误消息生成模型,并设置所述初始错误消息生成模型的第二损失函数;将所述初始错误消息生成模型确定为当前错误消息生成模型,并将所述样本特征输入至所述当前错误消息生成模型,以获取所述当前错误消息生成模型输出的预测错误消息;利用所述第二损失函数计算所述标注错误消息与所述预测错误消息之间的损失函数值;若所述损失函数值大于预设阈值,则利用所述损失函数值更新所述当前错误消息生成模型的参数,以得到下一错误消息生成模型,并将所述下一错误消息生成模型更新为当前错误消息生成模型,然后重新跳转至所述将所述样本特征输入至所述当前错误消息生成模型的步骤;若所述损失函数值不大于预设阈值,则将所述当前错误消息生成模型确定为目标错误消息生成模型。
7.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的大型语言模型的代码生成优化方法的步骤。
8.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的大型语言模型的代码生成优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179354.0A CN117724695B (zh) | 2024-02-18 | 2024-02-18 | 大型语言模型的代码生成优化方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410179354.0A CN117724695B (zh) | 2024-02-18 | 2024-02-18 | 大型语言模型的代码生成优化方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117724695A CN117724695A (zh) | 2024-03-19 |
CN117724695B true CN117724695B (zh) | 2024-04-30 |
Family
ID=90202012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410179354.0A Active CN117724695B (zh) | 2024-02-18 | 2024-02-18 | 大型语言模型的代码生成优化方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724695B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150324A (zh) * | 2021-11-15 | 2023-05-23 | 阿里巴巴达摩院(杭州)科技有限公司 | 对话模型的训练方法、装置、设备及介质 |
CN116302998A (zh) * | 2023-03-01 | 2023-06-23 | 哈尔滨工业大学(深圳) | 多模态程序自动修复方法、系统、设备及存储介质 |
CN116301893A (zh) * | 2023-03-13 | 2023-06-23 | 南京航空航天大学 | 一种基于提示学习的轻量化代码生成方法 |
CN116909532A (zh) * | 2023-09-12 | 2023-10-20 | 深圳须弥云图空间科技有限公司 | 一种代码生成与缺陷修复方法和装置 |
CN117130589A (zh) * | 2023-08-14 | 2023-11-28 | 科大讯飞股份有限公司 | 代码处理方法、装置、一体机和计算机程序产品 |
CN117555720A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 代码修复方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11526424B2 (en) * | 2020-05-15 | 2022-12-13 | Microsoft Technology Licensing Llc. | Automated program repair tool |
US12112145B2 (en) * | 2020-07-09 | 2024-10-08 | Accenture Global Solutions Limited | Artificial intelligence-based intelligent programming assistance |
US12073180B2 (en) * | 2021-08-24 | 2024-08-27 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
-
2024
- 2024-02-18 CN CN202410179354.0A patent/CN117724695B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116150324A (zh) * | 2021-11-15 | 2023-05-23 | 阿里巴巴达摩院(杭州)科技有限公司 | 对话模型的训练方法、装置、设备及介质 |
CN116302998A (zh) * | 2023-03-01 | 2023-06-23 | 哈尔滨工业大学(深圳) | 多模态程序自动修复方法、系统、设备及存储介质 |
CN116301893A (zh) * | 2023-03-13 | 2023-06-23 | 南京航空航天大学 | 一种基于提示学习的轻量化代码生成方法 |
CN117130589A (zh) * | 2023-08-14 | 2023-11-28 | 科大讯飞股份有限公司 | 代码处理方法、装置、一体机和计算机程序产品 |
CN116909532A (zh) * | 2023-09-12 | 2023-10-20 | 深圳须弥云图空间科技有限公司 | 一种代码生成与缺陷修复方法和装置 |
CN117555720A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 代码修复方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
张世琨 ; 谢睿 ; 叶蔚 ; 陈龙 ; .基于关键词的代码自动摘要.计算机研究与发展.2020,(第09期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117724695A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8181163B2 (en) | Program synthesis and debugging using machine learning techniques | |
DE102020110536A1 (de) | Verfahren, Systeme, Herstellungsgegenstände und Vorrichtungen für ein kontext- und komplexitätsbewusstes Empfehlungssystem zur verbesserten Softwareentwicklungseffizienz | |
Li et al. | Neural program lattices | |
EP4028960A1 (en) | Visually creating and monitoring machine learning models | |
Pu et al. | Selecting representative examples for program synthesis | |
Whittaker | Markov chain techniques for software testing and reliability analysis | |
CN109376535A (zh) | 一种基于智能化符号执行的漏洞分析方法及系统 | |
CN118114758A (zh) | 一种基于知识图谱驱动语义治理方案动态生成方法及系统 | |
CN117453915A (zh) | 一种基于可规划工作流的大语言模型的复杂任务处理方法 | |
CN118276913B (zh) | 一种基于人工智能的代码补全方法 | |
CN112420125A (zh) | 分子属性预测方法、装置、智能设备和终端 | |
CN112119410A (zh) | 用于用覆盖引导模糊测试调试神经网络的系统和方法 | |
CN111737417B (zh) | 修正自然语言生成结果的方法和装置 | |
CN117724695B (zh) | 大型语言模型的代码生成优化方法、装置、设备及介质 | |
CN117591913A (zh) | 基于改进的R-Transformer的语句级软件缺陷预测方法 | |
Leporati et al. | Inferring P systems from their computing steps: An evolutionary approach | |
CN114995818A (zh) | 一种Simulink模型到C语言的优化参数自动配置方法 | |
Reynouard et al. | Jajapy: a learning library for stochastic models | |
Gómez-Abajo et al. | Automated engineering of domain-specific metamorphic testing environments | |
CN118410498B (zh) | 一种细粒度混合语义漏洞检测方法及系统 | |
CN117971355B (zh) | 基于自监督学习的异构加速方法、装置、设备及存储介质 | |
Bernard et al. | Inferring Temporal Parametric L-systems Using Cartesian Genetic Programming | |
Mahmood et al. | Optimal Kernel Tuning Parameter Prediction using Deep Sequence Models | |
Victoria et al. | 13 Libraries for Explainable | |
Elmokadem et al. | Hierarchical deep compartment modeling: A workflow to leverage machine learning and Bayesian inference for hierarchical pharmacometric modeling |
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 |