1.一种基于预训练语言模型中医聊天机器人的方法,其特征在于:包括以下步骤:S1、构建相关的中医数据集;
S2、基于中医数据集对预训练模型进行训练;
所述步骤S2具体步骤如下:
S2.1、使用数据加载工具将整理好成问答对形式的中医数据集传入预训练模型;
S2.2、设置模型训练所需的参数;
S2.3、通过损失函数进行模型参数优化;
S2.4、设置随机种子确保在相同设备下能够复现模型效果,保证实验结果的可重复性;
S2.5、加载已经预训练成功的模型参数,并进行调整,根据新的数据集进行参数调整,以适应特定任务的需求;
S2.6、加载训练所需的数据,并对原始文本数据集中的目标语句进行掩码操作;将相关信息记录并转换为模型可用的张量形式;
S2.7、设置Adamw优化器的参数,开始进行模型训练,将原始文本数据集划分为32个批次,并遍历每个批次数据,计算其损失值;
S2.8、进行损失值回传,并通过优化器更新模型参数,通过反向传播算法计算梯度,并通过优化器更新模型参数;
S2.9、每个批次数据训练完成后,保存模型;
所述步骤S2训练得到的模型的整体架构可表示为如下公式:其中Encoderi为第i层Transformer Encoder层, 和 各自代表第i层和i‑1层编码层的输出张量;
每个编码器层包含两个子层:多头自注意力和前馈神经网络(FFN),这两个子层的输出通过残差连接,并输入到一个层归一化层中,具体表达如下公式:y = text{LayerNorm}(x + text{SubLayer}(x)) (2)其中,y表示输出张量,x表示输入张量,text{LayerNorm}表示层归一化层,text{SubLayer}表示子层;
FFN层的表达如下公式:
FFN(x)=max(0,xW1+b1)W2+b2 (3)其中,FFN层的输入张量为x,FFN层中W1和W2分别为第一和第二隐藏线性层的权重参数,b1和b2分别表示第一和第二隐藏线性层的偏置参数;
S3、基于训练好的模型处理当前用户的输入信息,并获取相应的输出向量,拼接生成内容,实现模型推理;
S4、将推理的结果通过网页形式展示出来,与用户进行交互,给出中医建议。
2.根据权利要求1所述的一种基于预训练语言模型中医聊天机器人的方法,其特征在于:所述步骤S1的具体步骤如下:S1.1、遍历搜集到的原始数据文件并进行判断,将数据分为问题和回答两类;
S1.2、去除不完整的问题和简单的回答,使用现有的敏感词识别工具检测数据,若包含敏感词则舍弃;
S1.3、清除问题和回答中的HTML标签、重复标点和标签符号;如果清洗后的数据长度小于预设阈值,则舍弃;其中,HTML代表超文本标记语言;
S1.4、将清洗后的数据按模型训练所需格式保存为问答对形式的中医数据集。
3.根据权利要求1所述的一种基于预训练语言模型中医聊天机器人的方法,其特征在于:所述步骤S2.3通过损失函数进行模型参数优化包括以下步骤:S2.3.1、设置模型的初始化函数和定义模型训练所需的各个组件;
S2.3.2、加载权重并配置模型的前向传播函数,所述前向传播函数包括将输入数据通过编码器部分,并获取序列输出,其维度为[batch_size,sequence_length,hidden_size];
其中,batch_size为批数量,sequence_length为序列长度,hidden_size为隐藏记忆单元个数;
S2.3.3、获取被掩码位置的向量,并计算用特殊的标记替换的单词或词语的损失值,并且将计算得到的损失值用于模型参数的优化过程。
4.根据权利要求1所述的一种基于预训练语言模型中医聊天机器人的方法,其特征在于:所述步骤S3具体步骤如下:S3.1、设置模型推理所需的参数;
S3.2、加载已经训练好的模型,并将其放置到对应的设备上;
S3.3、加载敏感词过滤器确保输出不包含任何敏感信息;
S3.4、根据用户输入的内容进行检测,如果包含敏感词,则直接回复特定语句,否则进入下一步;
S3.5、对用户输入的语句进行向量化处理,并得到对应的序列;
S3.6、根据模型的输出序列的最大长度限制进行遍历,并根据当前输入获取输出向量,选取词汇表中概率高和低的字词;
S3.7、当生成的内容出现“[SEP]”标志时,表明生成结束,将所有生成的内容进行拼接整合,并检查是否有敏感词出现;如果有敏感词,则回复特定语句;否则回复模型所生成的内容。
5.一种包含权利要求1‑4任意一项所述一种基于预训练语言模型中医聊天机器人的方法的装置,其特征在于,包括:数据收集与预处理模块:通过翻阅古今文献,收集中医问诊对话和中医知识的原始语料数据;对数据进行预处理,清洗整理原始数据,遍历内容将其划分成问题和回答,整理成所需要的数据格式,构建相关的中医数据集;
模型训练模块:将整理好成问答对形式的数据集传入预训练模型,设置合适的参数,通过损失函数进行模型参数优化,加载所需数据,启动训练任务,并实时计算损失值,以便根据优化算法更新模型参数;
模型推理模块:加载训练好的模型,配置敏感词过滤器对用户输入内容进行处理,通过处理当前的用户输入获取相应的输出向量,拼接生成内容,实现模型推理,即生成模型对用户输入的响应或回复;
交互模块:将推理的结果通过网页形式展示出来,可以与用户进行多轮交互,准确地回答用户问题,给出中医建议;
其中,数据收集与预处理模块的输出端与模型训练模块的输入端相连接,模型训练模块的输出端与模型推理模块的输入端相连接,模型推理模块的输出端与交互模块的输入端相连接。