System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术设计ai语言分析,特别是基于poolingfeed文本分类模型同时实现智能问答及推荐方法。
技术介绍
1、大语言模型优秀的通用问答能力使得各大公司及领域专家相继投入研究,然而大语言模型训练成本、部署成本都极高,随着kv cache、flashattention等加速技术的引入,大模型的推理速度优化正逐渐逼近极限。但针对很多只有几千甚至几百个问答对的需求场景,此时也争相使用大语言模型,这必然浪费大量的算力资源,通过外挂知识库或者微调训练的大模型也并不能精准完成指定问答任务。
2、基于上述大语言模型存在的问题,本专利技术在重新审视传统小模型优势的基础上,提出了一种结合pooling池化与feed的小型神经网络模型poolingfeed,使用不含参数的average pooling,完成token间交互的同时又比多头注意力机制、卷积更加高效;而feed即feed-forward,可以提高模型的拟合能力。两种机制的结合使得模型在具备强大拟合能力的同时,对比大语言模型具有成本更低、效率更高、推广性更好的优势。同时本专利技术创新的提出了一种端到端的基于文本分类小模型的智能问答解决方案,使用文本分类模型做问答对的分类,文本分类技术是深度学习技术在自然语言处理领域最成熟的应用之一,但是将一个问答对做为分类的类别标签,本专利技术是第一次,模型根据预测出的概率分布自动选择让模型扮演智能问答还是智能推荐的功能,更加贴近用户实际真实场景,大大提升了用户的体验效果,端到端的实现方式对于开发者来说更加机动灵活、更加友好。
/>技术实现思路
1、本专利技术提出了一种结合pooling池化与feed的小型神经网络模型poolingfeed,使用的average pooling不含参数,完成token间交互的同时又比多头注意力机制、卷积更加高效;而feed即feed-forward,可以提高模型的拟合能力。两种机制的结合使得模型在具备强大拟合能力的同时,对比大语言模型具有成本更低、效率更高、推广性更好的优势。本模型的结构如下图所示,即本专利技术的模型是保护点之一。
2、本专利技术还创新的提出了一种端到端的基于文本分类小模型的智能问答解决方案,使用文本分类模型对问答对数据建模,根据预测出的概率分布选择对用户输出是智能问答还是智能推荐的功能,更加贴近用户真实场景,大大提升了用户的体验效果。端到端的实现方式也更加机动灵活,便于开发者快速实现智能问答系统。本专利技术的使用范围为问答对数据在5千之内的小型专业问答场景。
3、基于poolingfeed文本分类模型同时实现智能问答及推荐方法,包括如下步骤:
4、s1.构造训练数据集:收集5000个问答对,问题和答案组成问答对,将该问题和答案拼接作为一个类别标签,问题记为qa,答案记为ans,将qa和ans通过“\n该问题答案:”进行拼接,其中\n为换行符,拼接后的结果记为qa_ans,则针对5000个问答对采用同样的操作,也即文本分类的标签为{0:qa_ans1,1:qa_ans2,2:qa_ans3,…4999:qa_ans4999},记为qa_ans_dict, 5000个问答对中一个问题记为qa,则将qa通过prompt输入大语言模型,进行数据扩充;上述内容输入开源大语言模型,大语言模型将会自动推荐多种话术,然后通过正则表达式解析出指令即可,从而针对一个问答对,建立一个问题qa的多种表达方法,qa的多种表达方式包括自身记为qas,则qas的任一条问题指令即本专利技术模型输入x,问答对qa_ans即模型优化目标y,形成模型训练的数据集;
5、s2.模型训练前处理:建立针对用户问题token映射词表,记为dict_verb={0:”[cls]”,1:”[pad]“,2:”[unk]”,3:”中”,4:”办公”,5:”故障”.......},其中[cls]为文本起始符,[pad]代表当文本长度不够最大长度时,采用[pad]填充到max_len长度,未在词表中出现字符[unk],max_len长度为模型输入长度即100,dict_label的前项为token索引编号,dict_label的后项value为token值,也即用户输入问题通过分词算法分词后,然后通过dict_verb映射为对应序列值;
6、s3.标注数据和模型适配:步骤s1中得到的训练数据集中的某条文本样本进行token化,不够模型最大长度100,则将列表通过[pad]填充到该文本最大长度100,然后通过字典dict_token,映射成索引编号列表,进而变成输入文本分类模型tensor张量x;模型训练的目的即找到该问题对应的问答对,即qa_ans_dict中5000个问答对的类别;
7、s4.构建基于文本分类的智能问答poolfeed模型:模型约定文本最大长度为100,嵌入维度为128,针对在步骤s3中模型输入的每条输入文本,先将文本进行嵌入表示,此时文本嵌入表示的矩阵形状为【64,100,128】,64为训练过程中批次batchsize大小,将该文本嵌入表示输入到文件分类模型,即:pooling+前馈全连接神经网络feed_forward模块,重复6次,即6层相同的网络,得到整体网络模型结构;利用pooling没有参数、且通过均值进行token间交互的特点,使得文本分类的模型通过简单增加层数即可完成复杂模型的设计,适应更大数据量,基于文本分类的智能问答poolfeed模型,模型具体细节如下:首先针对输入交换后面两个维度【64, 128, 100】,仍然记为input,然后经过步幅为1,填充padding为1,核大小为3的均值池化层操作avgpool1d,这样的池化操作不包含可优化的参数,同时池化操作完成局部token间的交互,通过token间求均值的方式,同时因为填充为1,核大小为3,并不会改变token维度的输出大小,也即通过逐层堆叠的方式,然后再次交换后面两个维度即维度大小为【64,100,128】,并在嵌入维度进行层归一化后经过gelu激活函数,此时输出记为out_pooling,形状大小为【64,100,128】,即将输入完成pooling池化操作;然后将out_pooling输入到前馈全连接神经网络feed_forward模块输出为out_feed。经过上述操作,文本中的每个字符通过均值池化感受到附近的token信息,同时不包含可优化参数,同时前馈神经网络的海量参数扮演提高模型拟合文本数据的能力的角色,形状为【64,100,128】,上述均值池化操作和前馈神经部分为一个单元,重复多次,即将输入输入多层的输出记为y_temp,即使得文本中每个字能够感受左右更多字符信息;然后在句子长度100的维度上进行求和,形状为【64,128】,然后将该矩阵输入到【128,5000】的全连接,5000为用户场景中真实问答训练集中的问答对的个数,输出形状大小为【64,5000】,并在最后一个维度取softmax函数,此时记为y_pred,也即针对每一个用户问题,预测是哪个问答对的概率,针对上述网络模本文档来自技高网...
【技术保护点】
1.基于PoolingFeed文本分类模型同时实现智能问答及推荐方法,其特征在于包括如下步骤:
2.根据权利要求1所述基于PoolingFeed文本分类模型同时实现智能问答及推荐方法,其特征在于所述S5中针对模型训练的连续100个反向传播的损失函数loss值取平均,记录为loss1,然后在3小时后记录连续100个反向传播的loss值取平均,记录为loss2,如果模型损失值loss1-loss2<0.01,即停止训练,保存模型。
3.根据权利要求1所述基于PoolingFeed文本分类模型同时实现智能问答及推荐方法,其特征在于所述S6中执行判断条件为:cond=(prob_1-prob_2)/prob_1,当cond>0.3,此时文本分类模型预测的问答对具有很高的置信度,也即扮演智能问答功能,将预测的问答对中的答案取出来作为模型预测结果,当cond<=0.3时,文本分类模型预测的类别可能不准,此时扮演问答对推荐功能,即推荐对应的问题和答案,输出为问答对。
【技术特征摘要】
1.基于poolingfeed文本分类模型同时实现智能问答及推荐方法,其特征在于包括如下步骤:
2.根据权利要求1所述基于poolingfeed文本分类模型同时实现智能问答及推荐方法,其特征在于所述s5中针对模型训练的连续100个反向传播的损失函数loss值取平均,记录为loss1,然后在3小时后记录连续100个反向传播的loss值取平均,记录为loss2,如果模型损失值loss1-loss2<0.01,即停止训练,保存模型。
【专利技术属性】
技术研发人员:曹肖攀,贾晓婷,马国祖,李军俊,孙力泽,张文浩,秦涛,
申请(专利权)人:中电万维信息技术有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。