System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请实施例涉及处理器领域,特别涉及一种大语言模型长文本输出方法、装置、设备及存储介质。
技术介绍
1、大语言模型生成长文本是一个具有挑战性的工作之一,现阶段大语言模型生成长文本比较困难的原因有如下几个方面:
2、1.上下文理解限制:语言模型在生成文本时需要考虑前文的内容,以确保生成的文本具有连贯性和合理性。随着文本长度的增加,模型需要保持对更长的上下文进行理解和记忆,这增加了模型的复杂性和计算成本。
3、2.训练数据限制:生成长文本需要大量的训练数据来捕捉语言的复杂性和多样性。然而收集和标注长文本数据是一项昂贵和耗时的任务。当前可用的训练数据集可能相对较小,对于生成长文本的能力可能存在限制。
4、3.渐进误差累积:在生成长文本时,大语言模型的错误会逐渐累积,导致生成的文本逐渐失去准确性和连贯性。即使模型在开始时生成的文本是正确的,随着生成过程的进行,可能会出现错误的预测或不完整的句子结构,从而影响整体文本的质量。
5、4.语义一致性难以保证:生成长文本时,模型需要在整个文本中保持一致的语义和逻辑。这对于模型来说是一项挑战,因为它需要理解和推理文本中的复杂关系,并确保生成的文本在整体上是连贯和合理的。
6、为了解决上述存在的问题,现阶段的各种大语言模型通过计算前面所有的注意力权重,每次生成一个词都会将之前的词的权重保存起来,当文本长度一旦超过一个界限,大量的注意力存储在显存中或者内存中。而大容量存储在显存可用容量不足时就会引发内存溢出或者显存溢出的错误,从而使生成文本失
7、gpt3 需要 2 * 175 gb = 350 gb 显存;
8、bloom 需要 2 * 176 gb = 352 gb 显存;
9、llama-2-70b 需要 2 * 70 gb = 140 gb 显存;
10、falcon-40b 需要 2 * 40 gb = 80 gb 显存;
11、mpt-30b 需要 2 * 30 gb = 60 gb 显存;
12、因为现阶段科技发展限制,市面最大的gpu芯片是800g显存,消费级显存最大仅有24g,若以完成目标为依据就需要投入巨额资金购置大量的cpu显存来集群部署,这样既不利于大模型的训练和计算,也限制了长文本输出之间的语义连贯性。
技术实现思路
1、本申请实施例提供大语言模型长文本输出方法、装置、设备及存储介质,解决大语言模型输出长文本占用显存的问题。
2、一方面,本申请提供了大语言模型长文本输出方法,所述方法包括:
3、接收模型提示语,根据所述提示语的语义信息进行文本信息转化,提取并保存对应的文本键值对kv值;kv值根据长文本的文字生成顺序保存在运行大语言模型的显存中;
4、提取长文本持续输出时的第i轮kv值,根据所述第i轮kv值计算第i轮文本词元token,并根据所述第i轮token生成文本信息;所述第i轮kv值是输出前序长文本信息时保存的所有kv值组成的kv集合,且kv集合中包括相匹配的key序列集合和value序列集合,且每轮模型计算产生的key序列与value序列中的数值按照模型迭代顺序排列;其中的i是正整数;
5、确定所述第i轮kv值对应的第i轮kv集合的长度,根据集合长度将所述第i轮kv值对应的第i轮kv集合根据文本生成顺序切分为第一kv集合和第二kv集合;其中,所述第一kv集合中的是远离当前迭代周期生成的数据,所述第二kv集合中的kv值是邻近当前迭代周期生成的数据;
6、对所述第一kv集合进行kv值过滤,将过滤后的第一kv集合和所述第二kv集合组合成为第i+1轮kv值的第i+1轮kv集合;
7、将所述第i+1轮kv值替换显存中的第i轮kv值,并根据所述第i+1轮kv值生成第i+1轮token和生成对应文本信息。
8、具体的,所述计算第i轮文本词元token前,所述方法还包括:
9、生成第n轮迭代产生的kv值,并确定显存的存储余量;
10、当显存的存储余量不低于最低阈值时,将第n轮产生的kv值直接合并存入显存中,与前n-1轮产生的kv值共同组成第n轮kv值;n是不大于i的正整数。
11、具体的,当显存的存储余量低于最低阈值时,对显存中保存的kv集合按照文本生成顺序排序,并进行切分和过滤。
12、具体的,所述对所述第一kv集合进行kv值过滤,将过滤后的第一kv集合和所述第二kv集合组合成为第i+1轮kv值的第i+1轮kv集合,包括:
13、当显存的存储余量低于最低阈值时,确定出显存饱和状态下模型每轮迭代kv集合的目标集合长度和所述第二kv集合的保留长度;所述第二kv集合中的kv值数量不少于每一轮迭代新增的kv值数量;
14、计算所述目标集合长度与所述第二kv集合的保留长度的差值,确定出对所述第一kv集合的筛选长度;
15、对所述第一kv集合中的kv值进行随机筛选,对筛选过滤后的kv值按照文本生成顺序进行重新排序;
16、将过滤排序后的第一kv集合和所述第二kv集合拼接,获得目标集合长度的所述第i+1轮kv集合。
17、具体的,所述第一kv集合中key序列集合和value序列集合的元素根据id一一对应,筛选时根据两个序列集相同id的数据进行同步筛选;
18、拼接过程将过滤后第一kv集合和所述第二kv集合中的key序列集合和value序列集合分别进行拼接和重排序。
19、另一方面,本申请提供了大语言模型长文本输出装置,所述装置包括:
20、提取转化模块,用于接收模型提示语,根据所述提示语的语义信息进行文本信息转化,提取并保存对应的文本键值对kv值;kv值根据长文本的文字生成顺序保存在运行大语言模型的显存中;
21、计算模块,用于提取长文本持续输出时的第i轮kv值,根据所述第i轮kv值计算第i轮文本词元token,并根据所述第i轮token生成文本信息;所述第i轮kv值是输出前序长文本信息时保存的所有kv值组成的集合,且kv集合中包括相匹配的key序列集合和value序列集合,且每轮模型计算产生的key序列与value序列中的数值按照模型迭代顺序排列;其中的i是正整数;
22、切分过滤模块,用于确定所述第i轮kv值对应的第i轮kv集合的长度,根据集合长度将所述第i轮kv值对应的第i轮kv集合根据文本生成顺序切分为第一kv集合和第二kv集合;其中,所述第一本文档来自技高网...
【技术保护点】
1.一种大语言模型长文本输出方法,其特征在于,所述方法包括:
2.根据权利要求1所述的大语言模型长文本输出方法,其特征在于,所述计算第i轮文本词元token前,所述方法还包括:
3.根据权利要求2所述的大语言模型长文本输出方法,其特征在于,当显存的存储余量低于最低阈值时,对显存中保存的KV集合按照文本生成顺序排序,并进行切分和过滤。
4.根据权利要求1所述的大语言模型长文本输出方法,其特征在于,所述对所述第一KV集合进行KV值过滤,将过滤后的第一KV集合和所述第二KV集合组合成为第i+1轮KV值的第i+1轮KV集合,包括:
5.根据权利要求4所述的大语言模型长文本输出方法,其特征在于,所述第一KV集合中Key序列集合和Value序列集合的元素根据ID一一对应,筛选时根据两个序列集相同ID的数据进行同步筛选;
6.一种大语言模型长文本输出装置,其特征在于,所述装置包括:
7.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至5任一项所述的大语言模型长文本输出方法。
...【技术特征摘要】
1.一种大语言模型长文本输出方法,其特征在于,所述方法包括:
2.根据权利要求1所述的大语言模型长文本输出方法,其特征在于,所述计算第i轮文本词元token前,所述方法还包括:
3.根据权利要求2所述的大语言模型长文本输出方法,其特征在于,当显存的存储余量低于最低阈值时,对显存中保存的kv集合按照文本生成顺序排序,并进行切分和过滤。
4.根据权利要求1所述的大语言模型长文本输出方法,其特征在于,所述对所述第一kv集合进行kv值过滤,将过滤后的第一kv集合和所述第二kv集合组合成为第i+1轮kv值的第i+1轮kv集合,包括:
5.根据权利要求4所述的大语言模型长文本输出方法,其特征在于,所述第一kv集合中key序列集合和value序列...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:深存科技无锡有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。