代码示例库的构建方法及代码示例库的使用方法与流程

文档序号:36387308发布日期:2023-12-15 02:17阅读:38来源:国知局
代码示例库的构建方法及代码示例库的使用方法与流程

本发明涉及信息处理,特指一种代码示例库的构建方法及代码示例库的使用方法。


背景技术:

1、在大模型出现之后,封闭域的代码生成方法主要使用少样本学习的方法,但是由于大模型的上下文长度限制,我们必须召回与当前用户意图最匹配的示例,进一步才能基于召回的少量样本进行代码生成任务。可见,这些少量代码示例的质量对于最终代码生成起到至关重要的作用。其中,召回策略包含很多种,最简单的策略包括对用户意图进行分析找到最相似的意图,并返回相似代码示例,但是这种方法往往需要大量示例,并且相似性判断算法存在2个问题:1.泛化性不够(如传统编辑距离或者bm25(是目前信息索引领域最主流的计算query与文档相似度得分的算法)等),泛化性是指模型对于新数据的适应能力,即模型能否对未在训练集中出现的数据进行准确的预测。2.无法解释(使用embedding方式)。


技术实现思路

1、本发明的目的在于克服现有技术的缺陷,提供一种代码示例库的构建方法及代码示例库的使用方法,解决现有的召回策略存在泛化性不够以及无法解释的问题。

2、实现上述目的的技术方案是:

3、本发明提供了一种代码示例库的构建方法,包括如下步骤:

4、收集全部场景的任务数据;

5、将所收集的全部场景的任务数据输入到大模型中,以获取对应的操作序列;

6、对所述操作序列进行标签提取,以获得第一标签列表;

7、基于所述第一标签列表对api文档进行打标,以获得打标的api文档;

8、对所收集的全部场景的任务数据进行人工标注,以获得基础示例库;

9、基于大模型对所述基础示例库中的每一示例数据进行标签提取,以获得示例任务的标签列表;

10、对所述基础示例库中的每一示例数据进行代码语法分析,以获得所有调用的函数名称;从所述打标的api文档中为所有调用的函数名称查找到对应的标签,以获得示例代码的标签列表;

11、基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估所述基础示例库的质量的示例代码有效性的准确率。

12、本发明的代码示例构建方法,对封闭域的api文档及使用场景进行分析和概括后形成标签体系;基于标签体系利用大模型来进行示例和标签的对齐,同时对代码示例库的质量进行量化评估,以提升代码示例库的构建质量,在使用代码示例库时,可根据标签匹配召回相似的示例数据进行代码生成,本发明可以在最大程度上提高代码示例库的构建质量,保证代码和任务语义上的一致性,在少量样本的情况下,通过提高召回示例的代码质量来提升生成代码的性能。

13、本发明代码示例库的构建方法的进一步改进在于,所述收集全部场景的任务数据包括以下步骤:

14、收集人工设计场景,所述人工设计场景基于人工设计获得;

15、收集补充场景,所述补充场景是基于收集用户问题的历史数据,并对用户问题进行聚类获得;

16、汇总所述人工设计场景的任务数据和所述补充场景的任务数据,作为全部场景的任务数据。

17、本发明代码示例库的构建方法的进一步改进在于,对所述操作序列进行标签提取包括以下步骤:

18、对所述操作序列使用正则或ner方法抽取其中的操作菜单和选项卡名称作为所述操作序列提取的标签。

19、本发明代码示例库的构建方法的进一步改进在于,所述获得第一标签列表的步骤包括:

20、对所述操作列表提取的标签进行筛查,并将筛查后的标签存储于第一标签列表中。

21、本发明代码示例库的构建方法的进一步改进在于,所述基于所述第一标签列表对api文档进行打标包括以下步骤:

22、将api文档的描述文字与第一标签列表计算相似度,通过阈值限定,得到前k个标签作为api文档的标签,其中k为正整数。

23、本发明代码示例库的构建方法的进一步改进在于,所述api文档包括函数和常量;

24、所述基于所述第一标签列表对api文档进行打标包括以下步骤:

25、将每个函数的描述文字与第一标签列表计算相似度,通过阈值限定,得到前k个标签作为目标函数的标签,其中k为正整数;

26、将常量的描述文字与第一标签列表计算相似度,通过阈值限定,得到前k个标签作为目标常量的标签,其中k为正整数;

27、基于所述第一标签列表为api文档中的目标函数进行打标。

28、本发明代码示例库的构建方法的进一步改进在于,所述基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估所述基础示例库的质量的示例代码有效性的准确率包括以下步骤:

29、将所述示例任务的标签列表中的标签作为实际值,将所述示例代码的标签列表中的标签作为预测值;

30、计算:f1=2×precision×recall/(precision+recall);

31、其中,recall=tp/(tp+fn),precision=tp/(tp+fp);

32、f1为示例代码有效性的准确率;tp为真正例,真正例为预测值和实际值均为正例;fp为假正例,假正例为预测值为正例而实际值为负例;fn为假负例,假负例为预测值为负例而实际值为正例;tn为真负例,真负例为预测值和实际值均为负例。

33、本发明代码示例库的构建方法的进一步改进在于,所述基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估所述基础示例库的质量的示例代码有效性的准确率包括以下步骤:

34、将所述示例任务的标签列表中的标签作为实际值,将所述示例代码的标签列表中的标签作为预测值;

35、计算:f-score=(1+β2)×precision×recallβ2×precision+recall;

36、其中,recall=tp/(tp+fn),precision=tp/(tp+fp);

37、f-score为示例代码有效性的准确率,tp为真正例,真正例为预测值和实际值均为正例;fp为假正例,假正例为预测值为正例而实际值为负例;fn为假负例,假负例为预测值为负例而实际值为正例;tn为真负例,真负例为预测值和实际值均为负例,β为大于1的设定值。

38、本发明还提供了一种代码示例库的使用方法,所述代码示例库基于上述的代码示例库的构建方法构建而成,所述使用方法包括:

39、接收用户输入的任务作为原始任务,并对所述原始任务进行任务标签提取,以获得原始任务的标签列表;

40、计算原始任务的标签列表中标签与基础示例库中的示例数据的示例任务的标签列表的相似度,取前h个作为候选示例进行示例召回,其中h为正整数;

41、设计提示框架,所述提示框架包括:说明目标任务的系统提示和召回的候选示例;

42、基于所述提示框架,调用拥有代码生成能力的llm进行目标任务的代码生成。



技术特征:

1.一种代码示例库的构建方法,其特征在于,包括如下步骤:

2.如权利要求1所述的代码示例库的构建方法,其特征在于,所述收集全部场景的任务数据包括以下步骤:

3.如权利要求1所述的代码示例库的构建方法,其特征在于,对所述操作序列进行标签提取包括以下步骤:

4.如权利要求1或3所述的代码示例库的构建方法,其特征在于,所述获得第一标签列表的步骤包括:

5.如权利要求1所述的代码示例库的构建方法,其特征在于,所述基于所述第一标签列表对api文档进行打标包括以下步骤:

6.如权利要求1或5所述的代码示例库的构建方法,其特征在于,所述api文档包括函数和常量;

7.如权利要求1所述的代码示例库的构建方法,其特征在于,所述基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估所述基础示例库的质量的示例代码有效性的准确率包括以下步骤:

8.如权利要求1所述的代码示例库的构建方法,其特征在于,所述基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估所述基础示例库的质量的示例代码有效性的准确率包括以下步骤:

9.一种代码示例库的使用方法,其特征在于,所述代码示例库基于权利要求1至8中任一项代码示例库的构建方法构建而成,所述使用方法包括:


技术总结
本发明涉及一种代码示例库的构建方法,包括如下步骤:收集全部场景的任务数据;输入到大模型中获取操作序列;对操作序列进行标签提取,获得第一标签列表;基于第一标签列表对API文档进行打标;对所收集的全部场景的任务数据进行人工标注,以获得基础示例库;基于大模型对基础示例库中的每一示例数据进行标签提取,以获得示例任务的标签列表;获得每一示例数据对应的标签,即示例代码的标签列表;基于示例任务的标签列表中的标签和示例代码的标签列表中的标签,计算用于评估基础示例库的质量的示例代码有效性的准确率。本发明在最大程度上提高代码示例库的构建质量,在少量样本的情况下,通过提高召回示例的代码质量来提升生成代码的性能。

技术研发人员:请求不公布姓名
受保护的技术使用者:上海澜码科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1