System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
专利
本专利技术属于数字技术水印,具体涉及一种基于等价语义转换的大模型生成代码水印方法、程序、设备及存储介质。
技术介绍
1、大语言模型(llms)的发展是人工智能技术的一个重要里程碑。大模型推动了多个领域技术研究与应用的巨大进步,其中一项重大突破是通过代码生成技术来辅助程序员进行应用开发。目前已有多个用于代码生成的高效人工智能模型被广泛应用,如chatgpt、starcoder和codet5+等。虽然人工智能模型能够显著提升程序员的编程效率,但也存在不正当使用的可能性。曾有研究人员展示过如何使用chatgpt生成的代码构建勒索软件。并且,生成的代码可能存在潜在的安全漏洞。因此,确定特定代码是否为生成代码,并进一步追踪生成该代码的模型十分重要,即生成的代码应具备可追溯性。
2、现有检测人工智能生成内容的方法大多集中在图像和文本上。其中,针对文本的检测方法可分为两类。第一类为被动检测器,其通过构建二分类的检测器来区分人工智能生成文本和人工的手写文本。第二类方法基于数字水印技术,通过在人工智能生成文本中嵌入水印,根据水印是否存在判断文本是否为生成。由于自然语言文本与计算机代码存在固有差异,将现有的水印技术从生成文本应用到生成代码中较为困难。
3、目前大模型生成代码水印仍是一项新兴任务,现有方法主要有:
4、(1)lee,taehyun,et al."who wrote this code watermarking for codegeneration."proceedings of the
5、(2)zhensu sun,xiaoning du,fu song,and li li.2023."codemark:imperceptible watermarking for code datasets against neural code completionmodels."in proceedings ofthe31stacm joint european software engineeringconference and symposium on the foundations of software engineering.1561–1572.该工作提出了一种基于神经网络后门的水印方法。其在代码转换的基础上设计了代码数据集的触发器和目标,并配备了水印嵌入和验证的方案,利用是否存在水印后门来验证水印。
6、上述方法(1)lee,taehyun,et al."who wrote this code?watermarking forcode generation."所述的技术对生成代码的检测效果有限,原因在于,代码与文本相比,二者的灵活性和编码空间差异较大,并且,文献的作者指出,该方法的鲁棒性较弱。上述方法(2)xiaoning du,fu song,and li li.2023."codemark:imperceptible watermarkingfor code datasets against neural code completion models."所述的技术需要对模型进行重训练,因此需要大量的计算开销。同时,这两种方法都局限于判别代码是否为生成,而没有解决生成代码的模型溯源问题。
技术实现思路
1、本专利技术旨在提供一种适用于生成代码的水印方法。随着大模型的快速发展,生成代码的广泛应用已成为趋势,但存在诸多安全隐患,因此识别生成代码及追溯其生成模型的能力愈发重要。代码水印技术为此提供了可行的解决方案,然而,现有的水印方法在鲁棒性、嵌入效率等方面存在诸多不足与限制。
2、本专利技术提供一种通过数字水印技术来识别由特定人工智能模型生成代码的方法。根据代码语义转换的等价性原则,设计适用于生成代码的转换规则,并利用规则将水印以一定编码规则嵌入生成代码中。编码规则采用bch纠错码,其纠错规则实现了对异常水印信息的纠正。克服了现有方法中水印提取错误率高,且无法对生成代码模型实施溯源的问题。
3、本专利技术提供了一种基于等价语义转换的大模型生成代码水印方法,包括以下步骤:
4、步骤1:将预定义的提示词输入大语言模型中,大语言模型输出生成代码;
5、步骤2:根据代码转换规则集,通过水印嵌入算法在生成代码中嵌入水印;
6、步骤2.1:提取代码转换规则集中适用于生成代码的转换规则,构建适用转换规则集;
7、步骤2.2:根据哈希值对使用转换规则集中的转换规则从小到大进行排序,得到排序后的适用转换规则集;
8、步骤2.3:将排序后的适用转换规则集中的前n个转换规则依次应用到生成代码,得到初步生成代码水印;
9、步骤2.4:针对不同的大语言模型设定不同的水印信息,对水印信息进行bch编码,形成编码后的水印比特序列;
10、步骤2.5:根据编码后的水印比特序列,从排序后的适用转换规则集的剩余规则中顺序取出l个剩余适用转换规则;对于编码后的水印比特序列的每一位,若比特值为1,则选择水印比特序列中该比特在序列中的序号对应的剩余适用转换规则,得到最终生成代码水印。
11、进一步地,所述步骤1中大语言模型输出生成代码c:
12、c=m(p)
13、其中,m为大语言模型;p为预定义的提示词。
14、进一步地,所述代码转换规则集选自等价语义转换中的一种或多种,等价语义转换包括重构转换、重排转换、格式转换。
15、进一步地,所述步骤2.1中适用转换规则集t′:
16、t′={t|t∈t,is_applicable(t,c)}
17、其中,函数is_applicable(t,c)通过每次在代码转换规则集t中取出一个规则对生成代码c进行试验性转换的方式判定每个转换规则t是否适用于生成代码c;
18、进一步地,所述步骤2.2中对t′内的转换规则进行排序得排序后的适用转换规则集tsorted:
19、tsorted=sort(t′,key=hash(t))
20、其中,hash(t)为哈希值。
21、进一步地,所述步骤2.3具体迭代方式为:
22、c′(n)=apply(tsorted[n-1],c′(n-1))
23、其中,c′(1)=apply(tsorted[0],c),2≤n≤n;c′为初步生成代码水印。
24本文档来自技高网...
【技术保护点】
1.一种基于等价语义转换的大模型生成代码水印方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤1中大语言模型输出生成代码C:
3.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述代码转换规则集选自等价语义转换中的一种或多种,等价语义转换包括重构转换、重排转换、格式转换。
4.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.1中适用转换规则集T':
5.根据权利要求4所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.3具体迭代方式为:
6.根据权利要求5所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.4中形成编码后的水印比特序列wencoded:
7.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.5中剩余适用转换规则l:
8.一种计算机装置/设备/系统,包括存储器、处理器及存储在
9.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于:该计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于:该计算机程序/指令被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
...【技术特征摘要】
1.一种基于等价语义转换的大模型生成代码水印方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤1中大语言模型输出生成代码c:
3.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述代码转换规则集选自等价语义转换中的一种或多种,等价语义转换包括重构转换、重排转换、格式转换。
4.根据权利要求1所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.1中适用转换规则集t':
5.根据权利要求4所述的基于等价语义转换的大模型生成代码水印方法,其特征在于:所述步骤2.3具体迭代方式为:
6.根据权利要求5所述的基于等价语义转换的大...
【专利技术属性】
技术研发人员:李博权,付梓睿,王兴梅,刘子健,张天姿,
申请(专利权)人:哈尔滨工程大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。