CN116415650A - 生成对话语言模型及生成对话的方法、装置和存储介质 - Google Patents
生成对话语言模型及生成对话的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN116415650A CN116415650A CN202310413342.5A CN202310413342A CN116415650A CN 116415650 A CN116415650 A CN 116415650A CN 202310413342 A CN202310413342 A CN 202310413342A CN 116415650 A CN116415650 A CN 116415650A
- Authority
- CN
- China
- Prior art keywords
- content
- user
- dialog
- dialogue
- guided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 149
- 238000012549 training Methods 0.000 claims abstract description 152
- 230000002787 reinforcement Effects 0.000 claims abstract description 81
- 238000005457 optimization Methods 0.000 claims abstract description 29
- 238000012795 verification Methods 0.000 claims abstract description 14
- 238000002372 labelling Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 52
- 238000013528 artificial neural network Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 5
- 239000000945 filler Substances 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 33
- 230000003993 interaction Effects 0.000 description 24
- 239000003795 chemical substances by application Substances 0.000 description 12
- 230000009471 action Effects 0.000 description 11
- 235000002198 Annona diversifolia Nutrition 0.000 description 10
- 241000282842 Lama glama Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000008451 emotion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 102100033814 Alanine aminotransferase 2 Human genes 0.000 description 2
- 101710096000 Alanine aminotransferase 2 Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 241000238558 Eucarida Species 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000000586 desensitisation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012559 user support system Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/3332—Query translation
- G06F16/3334—Selection or weighting of terms from queries, including natural language queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/09—Supervised learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种生成对话语言模型及生成对话的方法、装置和存储介质。对话语言模型是用于生成引导式对话的引导式对话语言模型。生成对话语言模型的方法包括:对第一引导式对话样本数据集进行顺序标识和组合,生成监督微调训练/证明样本集;对初始语言模型进行监督微调;对第二对话样本数据集中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集;对奖励模型进行训练;将第三对话样本数据集中的提示项与内容项拆分,生成强化学习训练/验证样本集;对模型执行基于近端策略优化的强化学习;在奖励模型打分达到预定义目标时获得经训练的引导式对话语言模型。本发明能够基于对长文本的理解能力提供引导式对话。
Description
技术领域
本发明的实施方式总体上涉及人工智能技术领域,更具体地,涉及一种生成对话语言模型及生成对话的方法、装置和存储介质。
背景技术
在当今人工智能技术不断发展的背景下,聊天机器人作为一种人机交互方式,已经在市场上得到了广泛的应用。然而,当前市场上的聊天机器人主要是基于预设语料库进行自动回复,这种机器人存在着许多缺点,如回复刻板、缺乏人性化的情感交流等问题。在聊天的内容方面,现有的市面上聊天机器人可以提供某些日常的闲聊服务、甚至是一些联网检索音乐、资料的能力,但是由于它们大多缺乏与用户的深入互动和精准分析,难以真正了解用户的需求,更难以为用户提供个性化的服务。例如:微软小冰、苹果的Siri等。这种基于语料库回复的聊天内容使得用户往往无法得到满意的体验,同时也影响了人工智能技术在市场上的推广和应用,也限制了对话聊天类型机器人的应用场景,在针对特定场景的应用往往需要耗费大量的人类物力对特定的对话进行完善和补充,在垂直细分领域该模式是不可取或者极其耗费资源的。
发明内容
为了解决现有技术中的上述问题,在第一方面,本发明的实施方式提供了一种生成对话语言模型的方法,所述对话语言模型是用于生成引导式对话的引导式对话语言模型,所述方法包括:获取第一对话样本数据集,其中,所述第一对话样本数据集是引导式对话样本数据集,并且所述第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话;对所述第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对所述第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对所述第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集;利用所述监督微调训练样本集、所述监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调,获取经监督微调的引导式对话语言模型;获取第二对话样本数据集,其中,所述第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联;将所述第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集;利用所述奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型,其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关;获取第三对话样本数据集,其中,所述第三对话样本数据集是引导式对话样本数据集,并且所述第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话;对所述第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联;依次提取所述第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将所述元组解包,分别创建提示项列表和内容项列表,根据所述第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据所述第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集;利用所述经训练的奖励模型、初始策略神经网络、所述强化学习训练样本集和所述强化学习验证样本集,对所述经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习,包括:利用所述经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据所述经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据所述强化学习环境反馈来更新策略神经网络的参数;在所述经训练的奖励模型的打分未达到预定义目标的情况下,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习;在所述经训练的奖励模型的打分达到所述预定义目标的情况下,输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
在第二方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符以及对话模式的选择。在用户选择的对话模式是单人对话模式的情况下:根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;向所述客户端传输所述当前单用户引导式答复内容;将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中。在用户选择的对话模式是多人对话模式的情况下:接收与对话房间标识符相关联的多个用户当前输入的对话内容;根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复。在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式提出的生成对话语言模型的方法而获得的;向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中。在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
在第三方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符;根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式提出的生成对话语言模型的方法而获得的;向所述客户端传输所述当前单用户引导式答复内容;将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中。
在第四方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符和房间标识符;接收与房间标识符相关联的多个用户当前输入的对话内容;根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复。在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中。在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
在第五方面,本发明的实施方式提出了一种生成对话语言模型的装置,所述对话语言模型是用于生成引导式对话的引导式对话语言模型,所述装置包括:第一对话样本数据集获取模块,配置用于获取第一对话样本数据集,其中,所述第一对话样本数据集是引导式对话样本数据集,并且所述第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话;监督微调样本集生成模块,配置用于对所述第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对所述第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对所述第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集;监督微调执行模块,配置用于利用所述监督微调训练样本集、所述监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调,获取经监督微调的引导式对话语言模型;第二对话样本数据集获取模块,配置用于获取第二对话样本数据集,其中,所述第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联;奖励模型训练样本集生成模块,配置用于将所述第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集;奖励模型训练模块,配置用于利用所述奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型,其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关;第三对话样本数据集获取模块,配置用于获取第三对话样本数据集,其中,所述第三对话样本数据集是引导式对话样本数据集,并且所述第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话;顺序标识符添加模块,配置用于对所述第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联;强化学习样本集生成模块,配置用于依次提取所述第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将所述元组解包,分别创建提示项列表和内容项列表,根据所述第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据所述第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集;强化学习执行模块,配置用于利用所述经训练的奖励模型、初始策略神经网络、所述强化学习训练样本集和所述强化学习验证样本集,对所述经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习,包括:利用所述经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据所述经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据所述强化学习环境反馈来更新策略神经网络的参数;策略反馈模块,配置用于在所述经训练的奖励模型的打分未达到预定义目标的情况下,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习;模型输出模块,配置用于在所述经训练的奖励模型的打分达到所述预定义目标的情况下,输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
在第六方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符以及对话模式的选择;单用户提问内容生成模块,配置用于在用户选择的对话模式是单人对话模式的情况下,根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;单用户引导式答复内容获取模块,配置用于将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;单用户引导式答复内容传输模块,配置用于向所述客户端传输所述当前单用户引导式答复内容;单用户存储模块,配置用于将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中;多用户输入接收模块,配置用于在用户选择的对话模式是多人对话模式的情况下,接收与对话房间标识符相关联的多个用户当前输入的对话内容;多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;答复决策模块,配置用于根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
在第七方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符;单用户提问内容生成模块,配置用于根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;单用户引导式答复内容获取模块,配置用于将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;单用户引导式答复内容传输模块,配置用于向所述客户端传输所述当前单用户引导式答复内容;单用户存储模块,配置用于将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中。
在第八方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符和房间标识符;多用户输入接收模块,配置用于接收与房间标识符相关联的多个用户当前输入的对话内容;多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;答复决策模块,配置用于根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据上述实施方式描述的生成对话语言模型的方法而获得的;引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
在第九方面,本发明的实施方式提出了一种存储介质,存储有计算机可读指令,当所述指令由处理器运行时,执行根据上述任何实施方式所述的方法。
本发明的实施方式提出的生成对话语言模型的方法至少具有以下有益效果:
(1)引导式对话支持:本发明的实施方式基于例如ICF(International CoachingFederation,国际教练联盟)国际认证教练与学员的对话等原始对话样本制作了对应的语料库,用于训练模型,让机器人的提问变得更加有思辨性,从而引导用户自己思考,并非简单的聊天,消遣时间;
(2)对语料库的进一步处理生成的训练样本是对同一语境下的多组对话进行组合而获得的,有助于提高模型对长文本的上下文理解能力;
(3)通过基于PPO的强化学习模式,使得机器人能够根据用户的反馈和行为进行自我学习和优化,进一步提升机器人的智能水平和对话质量,实现更加个性化和深度的引导式对话服务。
因此,根据本发明的实施方式的生成引导式对话的模型与目前现有的其他聊天机器人构成明显区别,可以满足用户个性化和深度的需求,提供更加专业和有趣的对话引导服务,具有非常广泛的应用前景和实用价值。
目前现有的对话机器人对用户的引导方面是非常有限的,这些机器人在回答用户提出的问题时,往往是机械式的,缺乏人性化的情感交流和人工智能的深度应用,除了回复呆板的问题,同时很难具备提升用户自我思考能力的特点,只能作为消遣,打发时间的聊天工具。
本发明的目的在于针对现有聊天机器人存在的缺陷,提供更先进和个性化的对话引导服务,以解决现有机器人缺乏深度和个性化的问题。相对于现有聊天机器人,通过本发明的实施方式生成的引导式对话机器人的技术水平更高,目前新型引导式多用户对话机器人对话方式可以包括:1.单用户单房间互动;2.多用户单房间互动,及其组合。同时,本发明的实施方式采用独特的RLHF(Reinforcement Learning from HumanFeedback,基于人工反馈的增强学习)训练模式和预训练语言模型构建全新的对话引导式教练机器人,使得机器人在对话引导方面有了更高的精度和深度。
本发明的实施方式所生成的引导式对话机器人能够根据用户的问题和回答,提供个性化的思考引导和指导,以帮助用户提高自身的思考能力和学习效率。在纯文本对话状态下,建立输入序列中词语之间的长期依赖关系。这种机制能够让模型“记住”输入序列中的信息,并且能够从这些信息中提取出上下文和语义信息,在获取文本后,其回复的基本的生成原理为:通过遮盖输入文本的某些单词或片段,训练模型预测这些遮盖部分的内容,就如同做阅读理解习题一样,模型能记住类似的回复。所以,在训练的语料样本充足,与特定的训练条件的情况下,机器能给出相似和准确与符合逻辑的回复。所以,只需要把用户的所有对话文本进行拼接,训练完成后的模型会自动将这些信息编码成语义向量的形式。这些语义向量可以在后续生成对话时被用来生成有意义的回答。
本发明的实施方式采用引导式对话的样本来训练对话语言模型,让机器人的提问变得更加有思辨性,根据本发明的实施方式的对话机器人可以类似于教练、课程引导员、引导顾问和老师,对话内容不再局限于日常的聊天,更多的涉及提问、引导和讲述相似的相关知识,通过对话的方式帮助人们从生活和学习各个方面更好地了解自我,从而引导人们自己去思考问题、培养人们独立思考的能力和激发他们最大程度地发挥个人和职业潜力。
引导式对话机器人与市面上的聊天机器人之间的主要区别在于目的和结构。引导式对话是由一个专业度高的教练机器人参与的对话,目的是帮助对方解决具体的问题或实现某些目标。相比之下,传统聊天则倾向于日常闲聊,更加随意和无目的,可能会在某些话题上停留时间很短或者跳跃性地涉及多个话题,通常只是为了消遣或建立人际关系。
在单用户单房间互动的对话方式下,用户可以与教练代理(机器人)继续深度交流,以期引导用户的思维模式,认识问题,挖掘问题,分析问题,解决问题。在多用户交互模式下,对话机器人能够识别每个用户的提问,并根据每个用户的需求和背景信息,提供个性化的回答和解决方案。同时,对话机器人还可以将用户之间的问题和答案进行整合和分析,提供更全面和深入的解决方案。在对话交互过程中,机器人具备关键词识别的能力,能够识别用户对其的呼唤并做出相应的反应。对话机器人还提供了一些特殊的功能,以满足多用户的需求,例如用户可以选择与其他用户共同参与一个讨论话题,也可以选择与对话机器人进行私密对话。对话机器人还可以对每个用户的提问进行标记和记录,以方便用户之间的信息共享和学习。因此,本发明的新型对话引导式教练机器人具有重要的实用价值和广阔的应用前景。
与传统的对话机器人相比,本发明的实施方式提出的新型引导式对话语言模型采用了全新的对话引导方式,旨在通过与用户的深入互动和精准分析,真正了解用户的需求,为用户提供个性化的思考引导和指导,帮助用户更好地提升自我思考能力。
除了对话的内容方面,在对话方式方面,当前市场上的聊天机器人虽然在单用户、单对话场景下发挥了重要作用,但是在多用户、多对话的情境下则显得力不从心。这是因为传统的聊天机器人无法处理多个用户同时提问和交互的场景,因为多用户场景需要理解长文本,并且多用户之间存在交互和讨论,使得对话文本更加的复杂,导致回复往往不够精准和个性化。相比之下,本发明的实施方式提出的对话生成方法能够在多用户交互模式下进行多人提问和多人互动,支持房间内的多个用户共同参与。具体地,本发明的实施方式采用了以下方式来提高模型对长文本的理解能力:(1)在监督微调(SFT)阶段使用的样本是同一语境下的多组对话,并且将多组对话标注了顺序并进行长文本组合,即,训练时采用的样本即是长文本;(2)通过PPO进行了强化学习;(3)在模型的使用过程中,对用户的当前输入与历史记录(或者记忆)进行了拼接,或者将用户的对话进行缩写之后进行拼接,以及在多用户的情况下,为每个用户的对话添加了用户代号,这些都使得模型能够更好地根据对话上下文输出符合预期的对话结果。
此外,本发明的实施方式提出的对话生成方法能够记录房间内多个用户的对话历史会话,从而更好地了解每个用户的需求和用户的背景信息。基于这些信息,能够提供更加个性化的回答和解决方案,帮助用户更好地解决问题。通过这种方式,本发明的实施方式提出的对话语言模型生成方法和对话生成方法不仅能够提升用户的体验感和满意度,还能够促进用户之间的互动和交流,为用户提供更加丰富和有趣的交互体验。
附图说明
通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了根据本发明的实施方式的生成对话语言模型的方法的流程图;
图2示出了根据本发明的实施方式的引导式对话原始样本的一个示例的示意图;
图3示出了根据本发明的实施方式的第一对话样本的对话组合示意图;
图4示出了根据本发明的实施方式的第一对话样本的列表化示意图;
图5示出了根据本发明的实施方式的用于训练奖励模型的第二样本的一个示例的示意图;
图6示出了根据本发明的实施方式的提示项+选择项的一个示例的示意图;
图7示出了根据本发明的实施方式的提示项+拒绝项的一个示例的示意图;
图8示出了根据本发明的实施方式的PPO样本处理的一个示例的示意图;
图9示出了根据本发明的实施方式的PPO基本流程示意图;
图10示出了根据本发明的实施方式的可选模式下生成对话的方法的流程图;
图11示出了根据本发明的实施方式的单用户模式的一个示例示意图;
图12示出了根据本发明的实施方式的多用户模式的一个示例示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
在一个方面,本发明的实施方式提供了一种生成对话语言模型的方法。所生成的对话语言模型是用于生成引导式对话的引导式对话语言模型。参考图1,其示出了根据本发明的实施方式的生成对话语言模型的方法100的流程图。如图1所示,该方法包括步骤S101-S112。
在步骤S101中,获取第一对话样本数据集,其中,第一对话样本数据集是引导式对话样本数据集,并且第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话。
作为本发明的一个实施方式,获取第一对话样本数据集可以通过以下的方式来实现。从经人工标注的对话样本数据集中选择第一预定数目个样本的提示项作为种子任务,仅作为示例,该步骤中采用的原始对话样本数据集例如可以是ICF(InternationalCoaching Federation,国际教练联盟)数据集,该数据集是国际认证较高质量的教练与学员的对话。参考图2,其示出了根据本发明的实施方式的引导式对话原始样本的一个示例的示意图。当然,原始对话样本数据集也可以是对公众公开的或者需要购买的企业教练管理类书籍。每次随机选择第二预定数目个种子任务进行整合,输入样本生成模型,生成与第二预定数目个种子任务具有类似特征的提示项。将生成的提示项输入样本生成模型,获得样本生成模型对生成的提示项的回答,作为与生成的提示项相对应的内容项。重复生成提示项和生成内容项的步骤,对包括生成的提示项和生成的内容项的对话样本进行低质量过滤和重复过滤,获得第一对话样本数据集。
作为上述实施方式的一个具体示例,可以首先从人工标注的数据集中选取175个样本的提示项作为种子任务。并组合使用这些种子任务来指导样本生成模型来生成新的样本。例如,我们每次随机选取4个种子任务,然后经过整合,先使样本生成模型输出具有类似特征的提示项,再使样本生成模型根据此提示项进行回答。由此,获得了由样本生成模型自问自答产生的一个样本。这个过程可以重复多次,从而产生大量的样本数据。将低质量和重复的生成样本过滤后,将剩余的生成样本汇入人工标注的训练集中,一起用于训练初始对话语言模型。
在步骤S102中,对第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集。
作为一个具体示例,可以首先将每一次的对话进行组合并放入不同的字典中,并依据对话中的位次赋予相应的ID。参考图3,其示出了根据本发明的实施方式的第一对话样本的对话组合示意图。其中,教练所说的话作为提示(prompt),用户的话作为内容(content)。由此把同一语境下1次完整对话的样本分成了多个字典,字典的数目即对话的组数。接着,为了将对话内容匹配分词器(tokenizer)的输入形式,可以创建一个列表,将每一组的提示与内容部分通过分词器的特殊标识符连接在一起,并依次输入列表中。参考图4,其示出了根据本发明的实施方式的第一对话样本的列表化示意图。由此获得了一个有多个元素构成的列表。在下一步中,我们将列表元素分别输入初始对话语言模型(例如,LLaMA模型或者PanGu-Alpha模型)的分词器中。每一个列表元素将输出一个对应的字典。字典中包括三个键:"input_ids","attention_mask","labels"。经过这一步,样本被处理为一个有多个字典元素的列表。此列表可以作为输入模型训练器的训练样本。证明样本的处理方式同上。
在步骤S103中,利用监督微调训练样本集、监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调(Self-supervised FineTuning,SFT),获取经监督微调的引导式对话语言模型。
仅作为示例,初始语言模型例如可以是LLaMA模型或者PanGu-Alpha模型的预训练权重模型,LLaMA和Pangu-Alpha均是类GPT模型。
需要注意的是,为了便于进行说明,在描述本发明的实施方式时通常会以LLaMA模型或者PanGu-Alpha模型对初始对话语言模型进行举例说明,但不代表本发明的实施方式所采用的初始对话语言模型限于这两种模型,或者限于这两种模型的类型。实际上,初始对话语言模型可以是目前开源或者未开源的任何神经网络模型,另外,在执行本发明的实施方式提出的训练方法之前,该模型可以经过或者不经过预训练,本发明对此不做任何限制。
模型的监督微调部分(SFT)是对初始语言模型进行针对性的优化,初始训练样本更侧重于知识问答和简单的闲聊,该部分用于优化引导性提问与优化模型与强化模型对特定知识领域的了解。
可选地,在SFT训练阶段,可以利用transformers库中的训练器,并辅以AdamW优化器和WarmupLR调度器。通过设置恰当的超参数对样本进行了例如5个周期(epoch)的训练。由此,LLaMA模型或者PanGu-Alpha模型已经在问答方面拥有了一定的专业能力。
可选地,在监督微调模型和下文描述的训练奖励模型时可以使用DeepSpeed库来加速和优化训练过程,从而更有效地利用硬件资源并缩短训练时间。
Deepspeed是一个为训练大规模深度学习模型提供优化和功能的库,目的是让大规模训练深度学习模型变得更容易。可选地,可以利用Deepspeed提供的一些优化功能,包括分布式训练、混合精度训练、ZeRO内存优化等。
在步骤S104中,获取第二对话样本数据集,其中,第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联。
在步骤S105中,将第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集。
仅作为示例,人工标注的数据集可以采用ICF(International CoachingFederation,国际教练联盟)国际认证教练与学员的对话数据。数据集中的每一个样本包含三个元素:提示项,选择项与拒绝项。该数据集的示例如图5所示。根据用户的提示,选择项中的回答更偏向于提出疑问,引导用户作出进一步的思考。与之相对,拒绝项中的回答则倾向于直接给出答案,这是期望回避的效果。在图5的示例基础上,作出了一系列的数据预处理使其能够更好地被模型识别。首先,将每一组对话的提示项与选择项,拒绝项分别组合,得到了(提示+选择,提示+拒绝)这两种对话方式对。对所有对话进行这一步处理后,再将每种对话方式整合成一个列表,该过程的输出如图6-图7所示。接着,将两组列表分别输入DistilGPT的分词器中,将每个列表中的每个字符串转换为具有三个键(input_ids,attention_mask,labels)的字典。其中,input_ids是DistilGPT模型接受的输入,它是一组整数,表示经过分词器处理后的文本。每个整数对应于词汇表中的一个标记。这些标记组合在一起形成了一个可以用于输入到DistilGPT模型的文本序列。attention_mask是一个与input_ids形状相同的二进制掩码,用于告诉模型哪些位置是文本中实际存在的标记,哪些位置是填充标记。在训练和推理时,模型只关注存在实际标记的位置,从而提高模型效率和准确性。labels是用0和1组成的数组,用来区分input_ids中文本的组成部分。
仅作为示例,在下一步的处理中,可以将每个字符串的input_ids提取出来组成一个新的列表,并对attention_mask作同样的操作。由此,我们由图6-图7中的两组列表分化成了经过分词器处理的4组列表,可记为[input_ids_chosen],[attention_mask_chosen],[input_ids_rejected],[attention_mask_rejected]。
在奖励模型的训练阶段可以采用transformers库提供的训练器。由于该训练器不接受输入对的形式,由此可以构建一个字典。将[input_ids_chosen]与[input_ids_rejected]合并为一个列表,并与"input_ids"组成键值对。
假设[input_ids_chosen]=[101,2036,2003,1037,2015,102],[input_ids_rejected]为[101,2036,2003,1040,2020,102],那么将它们合并成一个列表后就是[101,2036,2003,1037,2015,102,101,2036,2003,1040,2020,102],然后再将这个合并后的列表与键"input_ids"组成一个键值对。最终的结果如下所示:
{
"input_ids":[101,2036,2003,1037,2015,102,101,2036,2003,1040,2020,102]
}
对[attention_mask_chosen]与[attention_mask_rejected]作相同的操作,并与"attention_mask"组成键值对。
针对上文"input_ids"的例子,如果[attention_mask_chosen]为[0,1,1,1,1,0],[attention_mask_rejected]为[0,1,1,1,1,0],那么将它们合并成一个列表后就是[0,1,1,1,1,0,0,1,1,1,1,0],然后再将这个合并后的列表与键"attention_mask"组成一个键值对。最终的结果如下所示:
{
"input_ids":[101,2036,2003,1037,2015,102,101,2036,2003,1040,2020,102],
"attention_mask":[0,1,1,1,1,0,0,1,1,1,1,0]
}
在此基础上加入第三个键“label”,“label”对应的键值形式是[0…,1…],其中0代表选择项,1代表拒绝项。最终的数据格式如下所示:
{
"input_ids":[101,2036,2003,1037,2015,102,101,2036,2003,1040,2020,102],
"attention_mask":[0,1,1,1,1,0,0,1,1,1,1,0],
"label":[0,0,0,0,0,0,1,1,1,1,1,1]
}
经过以上数据处理之后,样本从图5中的文本形式最终变成一个经过分词处理的字典形式。值得一提的是,图5中的4个样本最终被处理为一个样本输入模型训练器中,这样的数据处理方式同样可以运用在大规模数据集中。将同一语境下的对话放入一个文件中进行处理,能够对模型的长对话依赖能力与类似语境的文本生成能力有更好的训练作用。
在步骤S106中,利用奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型(Reward Model,RM),其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关。
作为本发明的一个实施方式,利用奖励模型训练样本集对初始奖励模型进行训练包括:通过在初始奖励模型的输出处设置的映射层来获取训练中的奖励模型的打分,其中,映射层的维度是:隐藏单元数×1,其中隐藏单元数是初始奖励模型中的最后一层隐藏层的隐藏单元数。
由于开源DistilGPT模型的输出为生成文本,所以可以对模型输出部分做了修改。首先,在模型最后一层隐藏层后面加了一层映射层(维度:hidden_size×1)以此来获取1维的模型输出词向量(维度:m×1)。其中,hidden_size是指模型中某一层的隐藏单元数。在DistilGPT模型中,hidden_size是指Transformer Decoder中的隐藏单元数。它是一个超参数,可以通过调整来控制模型的复杂度和性能。在本项目中,我们维持了DistilGPT模型中hidden_size的默认值768。m指的是输入样本经过分词后的文本长度。
本质上说,在前向传播过程中DistilGPT模型为分词后的m个文本进行打分并生成了相应的词向量(维度:m×1),称为output_reward。
作为示例,由于样本输入时将选择项[input_ids_chosen]与拒绝项[input_ids_rejected]的词向量合并成为一个词向量:
"input_ids":[101,2036,2003,1037,2015,102,101,2036,2003,1040,2020,102]
所以,output_reward中也合并了选择项与拒绝项的打分,我们将其进行拆分并分别放入[chosen_rewards],[rejected_rewards]这两个列表中,具体操作举例如下:
"output_rewards":[0,1.06,4.82,3.58,4.23,0,0,1.06,4.82,6.32,3.25,0]
经过拆分,此列表分化成如下两个列表:
[chosen_rewards]=[0,1.06,4.82,3.58,4.23,0]
[rejected_rewards]=[0,1.06,4.82,6.32,3.25,0]
其中,[chosen_rewards]代表奖励模型对选择项[input_ids_chosen]的打分,[rejected_rewards]代表奖励模型对拒绝项[input_ids_rejected]的打分。
接下来,我们需要通过构建损失函数来量化[chosen_rewards]与[rejected_rewards]中元素的差值,并将这个差值与损失(loss)相对应。通过训练不断降低loss以期能够让奖励模型在面对类似的选择项与拒绝项时能更倾向于前者。
作为本发明的一个实施方式,对奖励模型进行训练中的损失函数可以由以下公式给出:
loss+=-torch.log(torch.sigmoid(chosen_reward-rejected_rewards))
其中,loss表示损失值,torch.sigmoid()函数的作用是将其输入值压缩到0和1之间,输出一个介于0和1之间的概率值,torch.log()函数用于求输入值的自然对数,chosen_reward表示训练中的奖励模型对选择项的打分,rejected_rewards表示训练中的奖励模型对拒绝项的打分。
在该实施方式中将这两个函数结合起来,可以将chosen_reward和rejected_rewards的差值通过sigmoid函数压缩到0和1之间,并使用负对数对该概率值进行惩罚。sigmoid函数输出的概率值越接近于1(chosen_reward和rejected_rewards的差值越大),惩罚的程度越小。反之,概率值越接近于0,惩罚的程度越大。
惩罚的力度随着chosen_reward和rejected_rewards的差值增大而单调地减小。
具体来说,当chosen_reward远大于rejected_rewards时,loss的增量为0:
Δloss=-torch.log(torch.sigmoid(chosen_reward-rejected_rewards))=0
其中,Δloss表示loss的增量,torch.sigmoid()函数的作用是将其输入值压缩到0和1之间,输出一个介于0和1之间的概率值,torch.log()函数用于求输入值的自然对数,chosen_reward表示训练中的奖励模型对选择项的打分,rejected_rewards表示训练中的奖励模型对拒绝项的打分。
这种情况下模型对于选择项的打分远远高于拒绝项,这也是我们期望达到的效果,所以整体损失loss的增量为0。
相反,当rejected_rewards远大于chosen_reward时,loss的增量为正无穷:
Δloss=-torch.log(torch.sigmoid(chosen_reward-rejected_rewards))=∞
其中,Δloss表示loss的增量,torch.sigmoid()函数的作用是将其输入值压缩到0和1之间,输出一个介于0和1之间的概率值,torch.log()函数用于求输入值的自然对数,chosen_reward表示训练中的奖励模型对选择项的打分,rejected_rewards表示训练中的奖励模型对拒绝项的打分。
这种情况下模型对于拒绝项的打分远远高于选择项,这是违反我们的预期的,所以通过对模型的这种行为施加极高的惩罚(量化为loss的增量)来诱导模型在下一次的打分中向选择项倾斜。
总的来说,该损失函数的作用是鼓励奖励模型选择具有较低损失的行为,并惩罚选择具有较高损失的行为。
由此,训练奖励模型使其偏好于选择项中的回答模式。在当前场景下,也就是训练奖励模型使其偏好于提出具有引导性的问题来进一步引发用户的思考。
作为本发明的一个实施方式,利用奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型包括:将奖励模型训练样本集中的经组合的提示项、选择项和拒绝项输入训练中的奖励模型,获得组合形式的选择项-拒绝项打分数组;将组合形式的选择项-拒绝项打分数组拆分为选择项打分数组和拒绝项打分数组;按照预定义的数组长度,对选择项打分数组和拒绝项打分数组的数组元素进行填充或裁剪,使得经填充或裁剪的选择项打分数组和拒绝项打分数组包括相同数量的数组元素;根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值。
作为本发明的一个实施方式,根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值包括:在选择项打分数组和拒绝项打分数组中从前向后第一个不相同的数组元素开始计算选择项打分与拒绝项打分的差值。
作为本发明的一个实施方式,根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值包括:在选择项打分数组和拒绝项打分数组中从后向前检索填充元素的数量;将选择项打分数组和拒绝项打分数组中较后出现填充元素的位置作为计算选择项打分与拒绝项打分的差值的结束位。
以下通过举例对上述提高训练速度的实施方式进行示例性说明。
在[chosen_rewards]与[rejected_rewards]被送入损失函数前,可以对两个数组进行了优化,目的是降低无效计算,提高训练速度。
可选地,因为[chosen_rewards]与[rejected_rewards]中的元素数量并不一定相等。所以可以对[chosen_rewards]与[rejected_rewards]进行填充或裁剪,使它们拥有相同数量的数组元素。可以选择将数组长度统一至1024。若原数组长度不满1024,则在后面填充‘0’至数组长度为1024;若原数组长度超出1024,则保留前1024个数组元素。
可选地,可以对数组本身的元素进行了优化。在构建输入样本[input_ids_chosen]和[input_ids_rejected]时,已经将提示项与选择项,拒绝项分别结合,这样的处理方式会导致[chosen_rewards]与[rejected_rewards]中前一部分的元素完全相同。例如:
[input_ids_chosen]=[101,2036,2003,1037,2015,102]
[chosen_rewards]=[0,1.06,4.82,3.58,4.23,0]
[input_ids_rejected]=[101,2036,2003,1040,2020,102]
[rejected_rewards]=[0,1.06,4.82,6.32,3.25,0]
可以看出,上述例子中的[chosen_rewards]与[rejected_rewards]两个数组的前三个元素均相同,对应的是[input_ids_chosen]和[input_ids_rejected]中前三个元素均相同。这是因为101为起始字符,2036与2003是提示项(prompt)经过分词器处理后的文本。而prompt部分在数据预处理时分别与选择项与拒绝项结合,所以代表着prompt的文本在[input_ids_chosen]和[input_ids_rejected]前面几个元素中同时出现且完全相同。相应地,奖励模型对这些元素的打分也完全相同,具体体现为[chosen_rewards]与[rejected_rewards]前三个元素均为0,1.06,4.82。
但是,这部分元素之间的比较对于损失函数中的量化差异没有贡献,反而在prompt较长的情况下会极大地降低训练速度。因此,可以从前往后检索并剔除了[chosen_rewards]与[rejected_rewards]中相同的元素,从列表中第一个不同的元素开始计算差异。
可选地,为进一步提高计算速度,可以从后往前检索了[chosen_rewards]与[rejected_rewards]中后部的填充元素‘0’的数量,并记录了第一个非‘0’元素的位置。因为在计算损失函数时,数组相同位置的‘0’元素对比,对于loss的变化也没有贡献,且会造成无效计算。所以在计算[chosen_rewards]与[rejected_rewards]的差值时,将两个数组中较后位置出现的‘0’元素作为结束位。
举例来说,当[chosen_rewards]与[rejected_rewards]经过第一步的填充后如下所示(为节省空间,填充至第10位,实际填充至1024位):
[chosen_rewards]=[0,1.06,4.82,3.58,4.23,0,0,0,0,0]
[rejected_rewards]=[0,1.06,4.82,6.32,3.25,4.35,0,0,0,0]
经过第二种可选优化方式后,两个数组将变换成为:
[input_ids_chosen]=[3.58,4.23,0]
[chosen_rewards]=[6.32,3.25,4.35]
总的来说,通过优化处理,继而将优化后的数据送入损失函数进行计算,能够有效提高模型的训练速度。
在步骤S107中,获取第三对话样本数据集,其中,第三对话样本数据集是引导式对话样本数据集,并且第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话。作为本发明的一个实施方式,获取第三对话样本数据集包括:将第一对话样本数据集中的部分样本加入第三对话样本数据集中,并对该部分样本在第三对话样本数据集中进行随机排序。通过这一步处理,模型代理能够在熟悉与陌生的环境中切换,能够诱导模型产生更正确的进化方向。
在步骤S108中,对第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联。换言之,可以将第三对话样本数据集处理成与SFT阶段相同的格式。
在步骤S109中,依次提取第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将元组解包,分别创建提示项列表和内容项列表,根据第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集。
以下通过具体示例对第三对话样本数据集的处理进行示例性说明。
首先,可以同样将原始数据集进行字典化处理,变换为图4中的格式。接着依次提取每一组的提示项与内容项并组成元组(提示,内容),统一放入一个列表中,如图8所示。
在下一步中,可以将元组解包并将每列的元素分别存储在列表中(即把所有的提示项储存在列表[prompt]中,把所有的内容项储存在列表[content]中)。随后可以构建一个函数,将[prompt]中的元素一一输入LLaMA模型或者PanGu-Alpha模型的分词器中进行编码,然后用同一个分词器对内容进行解码并移除字符串中可能存在的开头或结尾的空格或换行符等特殊字符,以确保输出的字符串没有不必要的空格或特殊符号。这一步中对[prompt]的处理有两个目的。一是为了将提示项prompt与内容项content分离,单独创建提示项列表[prompt]。这样做方便将提示项单独作为LLaMA模型或者PanGu-Alpha模型推理时的输入。二是为了调整提示项的格式来确保训练过程中样本内容始终与trlx库中训练器的指定分词器匹配。具体来说,是为了将输入样本的提示项与trlx库的训练器解码提示项始终保持一致。
经过以上的数据处理过程,即把提示项储存在列表[prompt]中,把内容项储存在列表[content]中,训练集样本准备完毕。可以通过同样的方法准备好了验证集的样本。然后,作为一个而具体示例将奖励模型、LLaMA模型或者Pangu模型、训练集样本、验证集样本输入了trlx库的强化学习训练器(trlx Trainer)中,来进行策略神经网络的训练。
在步骤S110中,利用经训练的奖励模型、初始策略神经网络、强化学习训练样本集和强化学习验证样本集,对经监督微调的引导式对话语言模型执行基于近端策略优化(Proximal Policy Optimization,PPO)的强化学习,包括:利用经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据强化学习环境反馈来更新策略神经网络的参数。即,利用奖励模型对经监督微调的对话语言模型的输出进行打分并以此来推进对话语言模型的迭代。
PPO是一种强化学习算法,非常适合在动作空间连续的情况下训练代理,例如生成文本和摘要等自然语言生成任务。本发明的实施方式使用的PPO基本流程如图9所示。在PPO中,代理通过从环境中获取当前状态信息并作出相应的动作,与此同时奖励模型通过状态信息对代理的动作进行评价,以此来调整代理的动作范式。PPO的学习过程涉及利用梯度上升来使模型动作轨迹取得的奖励期望最大化,期间通过策略梯度进行策略参数的更新。
在基于PPO算法的强化学习中,创造了一个可以根据用户输入生成引导式回复的代理,代理的核心是初始对话语言模型。在前面的步骤中,已经对其进行了一系列的微调训练来让模型达到垂直领域生成式对话的专业标准。
基于开源的强化学习库trlx库,使用RLHF(Reinforcement Learning from HumanFeedback,基于人类反馈的强化学习)来训练经监督微调的对话语言模型。trlx是一个分布式训练框架,专注于使用提供的奖励函数或奖励标记的数据集,通过强化学习对大型语言模型进行微调。强化学习部分将分为两个步骤进行。首先将以人类反馈为基础,设计一个训练器来训练模型,得到奖励模型(Rewardmodel,RM)。然后使用近端策略优化算法(ProximalPolicy Optimization,PPO),用经过训练的RM来指导对话语言模型的进化方向,最终迭代出合格的专业领域引导式生成对话模型。
在PPO算法中,
Policy(策略)指的是一种数学函数,它接受对当前状态的观察并输出要采取的行动。Policy可以被认为是指导代理在环境中做出决策的一组规则或指令。在PPO中,Policy通常由神经网络表示,该神经网络将环境观察映射到可能动作的概率分布。PPO算法的目标是通过训练优化此策略以最大化代理随时间接收的累积奖励,迭代和优化引导式教练代理的专业能力。总体而言,Policy是PPO算法的关键组成部分,在确定代理响应环境所采取的动作方面起着至关重要的作用。用奖励模型来指导和训练出一个策略神经网络(Policy),从而能够让LLaMA模型或者PanGu-Alpha模型通过Policy来与人类的价值观对齐(Alignment),减少甚至杜绝有害回答的出现。
RLHF是一种结合了强化学习和人工反馈的方法,以更高效地训练语言模型。在传统的强化学习中,模型从环境中接收奖励或惩罚信号,以优化其行为。然而,由于环境的复杂性和模型的局限性,强化学习可能需要大量的时间和数据才能取得良好的结果。RLHF方法的目标是通过利用人类的知识和反馈,加速代理的学习过程。而近端策略优化算法(PPO)的基本思想是通过策略来进行特定动作与环境交互,并根据环境的反馈来调整自身的状态继而进行下一步的动作,直到达到设定的最终状态。从而,首先需要训练一个奖励模型来提供环境的反馈。
仅作为一个具体示例,考虑到目前主要使用的LLaMA模型或者PanGu-Alpha模型的参数量为2.6B,经过试验比较,奖励模型的参数量级在千万到亿级时在性能和资源占有率上达到较好的平衡。在这种情况下,仅作为示例,采用的初始奖励模型可以是DistilGPT。DistilGPT有6层,总共有66M个参数。DistilGPT是一个轻量级的预训练语言模型,是由Hugging Face在2019年开发的,在GPT-2模型的基础上进行了压缩和精简,因此其参数量比GPT-2更少。因此在保持语言建模性能的同时,大大减少了模型的大小和计算资源的消耗。
在步骤S111中,判断经训练的奖励模型的打分是否达到预定义目标(Goal)。
如果否,则返回步骤S110,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习。
如果是,则转到步骤S112:输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
预定义目标可以是预定义的目标阈值,可选地,可以在奖励模型的打分超过该阈值时,保存当前训练得到的对话语言模型作为最终模型。进一步可选地,可以保存打分超过目标阈值的多个版本,根据打分的分值进一步进行筛选,从而确定最终模型。另外可选的是,预定义目标可以是动态可调的,例如,可以首先设置第一预定义目标,在奖励模型打分超过该第一预定义目标之后,调整为高于第一预定义目标的第二预定义目标,对模型继续进行训练,从而可以获得打分值更高,即性能更优的模型。
作为本发明的一个实施方式,对经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习还可以包括:根据强化学习训练样本集中提示项列表和内容项列表构建第一字典;将提示项列表的内容输入训练中的经监督微调的引导式对话语言模型,获得针对提示项列表的回答项列表;根据提示项列表和回答项列表构建第二字典;将第一字典输入经训练的奖励模型,获得第一字典的第一得分列表;将第二字典输入经训练的奖励模型,获得第二字典的第二得分列表;将第一得分列表作为经训练的奖励模型打分的基准线,在第二得分列表中的得分高于第一得分列表中的得分时,优势函数获得正增量,在第二得分列表中的得分低于第一得分列表中的得分时,优势函数获得负增量;根据经训练的奖励模型的打分和优势函数的值生成强化学习环境反馈,策略神经网络根据强化学习环境反馈来更新策略神经网络的参数。
下文举例说明。在trlx训练器(trlxTrainer)中可以创建一个优势函数(Advantage Function)。优势函数是指当前状态下采取某个动作相对于按照当前策略采取动作的期望奖励的差异,用来衡量该动作的优劣程度。优势函数的作用与先前的损失函数类似,都是用来计算优化目标。在更新策略时,通过最大化优势函数的平均值或者最小化损失函数,来调整策略参数,使得策略更加接近最优策略。
在每一步的迭代中,可以根据当前动作的优劣来更新优势函数。为此,首先将上文中输入样本的提示项列表[prompt]与内容项列表[content]进行数据再处理。构建了一个字典A,把[prompt]列表中的每一个元素与[content]列表中的元素一一对应组合成n个键值对(“prompt”:“content”)。形式如下:
同样地,将训练中的对话语言模型推理出的回答与原提示项组成键值对(“prompt”:“model_answer”)汇入字典B中。为了得到模型回答相对于输入样本的得分,需要将字典A和字典B同时输入奖励模型中。为此对字典A和B均进行如图6中的操作,将每一组“prompt”与“content”(或model_answer)进行字符串连接并输入奖励模型进行推理,最终得到每一组的得分。以字典A为例,进行字符串连接后得到列表A:
将列表A输入奖励模型并经过数据处理后,得到体现列表A中每一个样本得分的列表[reward_A]:
[reward_A_1,reward_A_2,....,reward_A_n]
同样地,将列表B输入奖励模型并经过数据处理后,得到体现列表B中每一个回答得分的列表[reward_B]。
需要注意的是,[reward_A]代表的是初始数据集中人类标注答案的得分,而[reward_B]代表的是训练中的对话语言模型回答的得分,可以把[reward_A]中的得分称为奖励模型打分的基准线。在每一次迭代过程中,以[reward_B]与[reward_A]的差值为基础,通过trlxTrainer来更新优势函数与策略神经网络的参数。例如:在提示项为prompt1时,人类标注答案的得分为reward_A_1,而模型回答的得分为reward_B_1。如果reward_B_1与reward_A_1的差值为负数,则代表模型在prompt1这个语境下的回答或行为达不到基准线,在优势函数中通过负增量进行惩罚。相反,如果reward_B_1与reward_A_1的差值为正数,则代表模型在prompt1这个语境下的回答或行为超过了基准线,在优势函数中通过正增量进行奖励。
本发明的实施方式提出的生成对话语言模型的方法至少具有以下有益效果:
(1)引导式对话支持:本发明的实施方式基于例如ICF(International CoachingFederation,国际教练联盟)国际认证教练与学员的对话等原始对话样本制作了对应的语料库,用于训练模型,让机器人的提问变得更加有思辨性,从而引导用户自己思考,并非简单的聊天,消遣时间;
(2)对语料库的进一步处理生成的训练样本是对同一语境下的多组对话进行组合而获得的,有助于提高模型对长文本的上下文理解能力;
(3)通过基于PPO的强化学习模式,使得机器人能够根据用户的反馈和行为进行自我学习和优化,进一步提升机器人的智能水平和对话质量,实现更加个性化和深度的引导式对话服务。
因此,根据本发明的实施方式的生成引导式对话的模型与目前现有的其他聊天机器人构成明显区别,可以满足用户个性化和深度的需求,提供更加专业和有趣的对话引导服务,具有非常广泛的应用前景和实用价值。
在另一方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,该方法应用于服务器。参考图10,其示出了根据本发明的实施方式的可选模式下生成对话的方法1000的流程图。如图10所示,该方法1000可以包括步骤S1001-S1012。
在步骤S1001中,从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符以及对话模式的选择。
在步骤S1002中,判断用户选择的对话模式是单人对话模式还是多人对话模式。
例如,在用户登录后,用户可以选择进入单用户对话引导模块,该模块会创建一个独立的房间,让机器人与用户进行一对一的直接对话。
在用户选择的对话模式是单人对话模式的情况下,执行步骤S1003-S1006。结合参考图11,其示出了根据本发明的实施方式的单用户模式的一个示例示意图。仅作为示例,虚线下方为网页服务器,虚线之上为GPU(Graphics Processing Unit,图形处理器)服务器。图中的“模型”表示经训练的对话语言模型。
在步骤S1003中,根据用户当前输入的对话内容以及与对话房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容。拼接长文本的长度可以是预先定义的或者由后台控制,例如5~20段对话,具体数值可以根据场景需要而灵活配置。
可选地,可以在接收到用户的对话请求之后为该次对话创建一个新的房间标识符。另外可选地,也可以由用户在事先创建的房间标识符中进行选择,从而确定当前对话的房间标识符。
作为本发明的一个实施方式,根据用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:将用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
作为本发明的另一实施方式,根据用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:将用户当前输入的对话内容进行缩写,生成经缩写的用户当前输入的对话内容;将经缩写的用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
在步骤S1004中,将当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
在步骤S1005中,向客户端传输当前单用户引导式答复内容。
在步骤S1006中,将当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和用户标识符相关联的对话记忆库中。
在用户选择的对话模式是多人对话模式的情况下,执行步骤S1007-S1009。结合参考图12,其示出了根据本发明的实施方式的多用户模式的一个示例示意图。仅作为示例,虚线下方为网页服务器,虚线之上为GPU服务器。
在步骤S1007中,接收与房间标识符相关联的多个用户当前输入的对话内容。
在步骤S1008中,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容。拼接长文本的长度可以是预先定义的或者由后台控制,例如5~20段对话,具体数值可以根据场景需要而灵活配置。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:将多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容被添加了与该用户的用户标识符相对应的用户标记。
作为本发明的另一实施方式,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:将多个用户当前输入的对话内容进行缩写,生成经缩写的多个用户当前输入的对话内容;将经缩写的多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容的缩写被添加了与该用户的用户标识符相对应的用户标记。
在步骤S1009中,根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复包括:判断多个用户当前输入的对话内容中是否包括唤醒词;在包括唤醒词的情况下,确定当前进行答复;在不包括唤醒词的情况下,确定当前不进行答复。
可选地,答复内容是针对带有唤醒词的一句话所作的答复,由于将多个用户当前输入的内容和对话记忆库的内容进行了组合输入到了对话语言模型中,并且对话语言模型具有长文本的上下文理解能力,因此在针对带有唤醒词的一句话生成答复时同时考虑到了不带唤醒词的用户输入以及对话记忆库的内容。
可选地,唤醒词可以是预先定义的句子、词语、词组、符号等,或者其任意组合,如“小梁老师”、“小东老师”等。另外可选地,唤醒词也可以是对话语言模型本身可识别为需要进行答复的表述,例如,“需要回答:”,等等。
作为本发明的另一实施方式,根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复包括:将多个用户当前输入的对话内容和房间标识符相关联的对话记忆库输入答复决策模型,根据答复决策模型的输出判断当前是否进行答复。可选地,答复决策模型可以是事先训练好的神经网络。其对当前的多用户输入和对话记忆库的内容进行上下文理解,在认为需要进行答复时做出决策。
可选地,可以使对话语言模型针对多用户的每一条输入都生成答复,在未收到答复决策之前,不向客户端输出,在收到需要进行答复的答复决策之后,才将当前生成的答复内容发送给客户端。
通过增加答复决策机制,避免了对话语言模型针对多个用户中每个人的每句话都进行回复从而导致回复杂乱的情况。
在确定当前进行答复的情况下,执行步骤S1010-S1011。
在步骤S1010中,将当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
在步骤S1011中,向客户端传输当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中。
在确定当前不进行答复的情况下,执行步骤S1012。
在步骤S1012中,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
作为本发明的一个实施方式,方法还包括:在获取当前单用户引导式答复内容之后,对当前单用户引导式答复内容进行过滤,并向客户端输出经过滤的当前单用户引导式答复内容;以及在获取当前多用户引导式答复内容之后,对当前多用户引导式答复内容进行过滤,并向客户端输出经过滤的当前多用户引导式答复内容。
由于模型的回复具有不确定性,所以对于回复内容添加一个过滤模块用于检测回复文本,可以避免输出不恰当内容。可选地,过滤模块可以直接采用关键词检测技术,如果模型在回复中出现预设的屏蔽关键词,程序会直接替换整段回复,并输出例如“模型还在调试中,请尝试别的问题”。可选地,可以进一步对过滤模块进行优化,例如:利用抓取关键词或者用自然语言缩写模型进行关键信息提取,改为:“对不起,我只是一个人工智能机器人,我并不清楚XXX(预先设置的屏蔽关键词或其他)相关的信息,如果有任何疑问,可以通过XXX和XXX的方式进行查询问题,或者咨询有关专业人士”转换为更柔和的提示信息。
在单用户场景下,该生成对话的方法可以更加精准地针对该用户的数据进行分析和建模,提供更个性化的对话引导和指导。在多用户场景下,该方法可以将多个用户的数据进行综合分析,还可以对每个用户的提问进行标记和记录,以方便用户之间的信息共享和学习。以获得更全面和准确的数据建模结果。进一步地,该方法可以采用数据加密和脱敏等技术,保证用户数据的隐私和安全。
在又一方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,该方法应用于服务器。该方法适用于单用户模式。该方法可以包括以下步骤:
从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符;
根据用户当前输入的对话内容以及与对话房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;
将当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的;
向客户端传输当前单用户引导式答复内容;
将当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和用户标识符相关联的对话记忆库中。
作为本发明的一个实施方式,根据用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
作为本发明的一个实施方式,根据用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容进行缩写,生成经缩写的用户当前输入的对话内容;
将经缩写的用户当前输入的对话内容以及与房间标识符和用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
作为本发明的一个实施方式,方法还可以包括:在获取当前单用户引导式答复内容之后,对当前单用户引导式答复内容进行过滤,并向客户端输出经过滤的当前单用户引导式答复内容。
在又一方面,本发明的实施方式提出了一种生成对话的方法,所生成的对话是引导式对话,方法应用于服务器。该方法适用于多用户模式。该方法包括:
从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符和房间标识符;
接收与房间标识符相关联的多个用户当前输入的对话内容;
根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;
根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复;
在确定当前进行答复的情况下,
将当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的;
向客户端传输当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;
在确定当前不进行答复的情况下,
将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复包括:
判断多个用户当前输入的对话内容中是否包括唤醒词;
在包括唤醒词的情况下,确定当前进行答复;
在不包括唤醒词的情况下,确定当前不进行答复。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复包括:将多个用户当前输入的对话内容和房间标识符相关联的对话记忆库输入答复决策模型,根据答复决策模型的输出判断当前是否进行答复。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:将多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容被添加了与该用户的用户标识符相对应的用户标记。
作为本发明的一个实施方式,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:
将多个用户当前输入的对话内容进行缩写,生成经缩写的多个用户当前输入的对话内容;将经缩写的多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容的缩写被添加了与该用户的用户标识符相对应的用户标记。
作为本发明的一个实施方式,该方法还可以包括:在获取当前多用户引导式答复内容之后,对当前多用户引导式答复内容进行过滤,并向客户端输出经过滤的当前多用户引导式答复内容。
本发明的实施方式提出的生成对话的方法实现了多用户支持,具体地,可以同时支持多个用户与机器人进行对话,实现了多用户场景下的需求,填补了业内空白。同时,设置了独有的房间模式:用户可以自己选择进入私人房间或者多人房间,与模型进行对话。
在另一方面,本发明的实施方式提出了一种生成对话语言模型的装置,该对话语言模型是用于生成引导式对话的引导式对话语言模型,该装置包括以下模块。
第一对话样本数据集获取模块,配置用于获取第一对话样本数据集,其中,第一对话样本数据集是引导式对话样本数据集,并且第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话。
监督微调样本集生成模块,配置用于对第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集。
监督微调执行模块,配置用于利用监督微调训练样本集、监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调,获取经监督微调的引导式对话语言模型。
第二对话样本数据集获取模块,配置用于获取第二对话样本数据集,其中,第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联。
奖励模型训练样本集生成模块,配置用于将第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集。
奖励模型训练模块,配置用于利用奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型,其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关。
第三对话样本数据集获取模块,配置用于获取第三对话样本数据集,其中,第三对话样本数据集是引导式对话样本数据集,并且第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话。
顺序标识符添加模块,配置用于对第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联。
强化学习样本集生成模块,配置用于依次提取第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将元组解包,分别创建提示项列表和内容项列表,根据第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集。
强化学习执行模块,配置用于利用经训练的奖励模型、初始策略神经网络、强化学习训练样本集和强化学习验证样本集,对经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习,包括:利用经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据强化学习环境反馈来更新策略神经网络的参数。
策略反馈模块,配置用于在经训练的奖励模型的打分未达到预定义目标的情况下,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习。
模型输出模块,配置用于在经训练的奖励模型的打分达到预定义目标的情况下,输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
需要注意,本发明的上述实施方式提出的生成对话语言模型的装置中的各个模块实现的功能与上文描述的生成对话语言模型的方法的各个步骤一一对应,其具体实施方式、示例和有益效果请参见对于生成对话语言模型的方法的描述,在此不再赘述。
在又一方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,装置应用于服务器,该装置包括以下模块。
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符以及对话模式的选择。
单用户提问内容生成模块,配置用于在用户选择的对话模式是单人对话模式的情况下,根据用户当前输入的对话内容以及与对话房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容。
单用户引导式答复内容获取模块,配置用于将当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
单用户引导式答复内容传输模块,配置用于向客户端传输当前单用户引导式答复内容。
单用户存储模块,配置用于将当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和用户标识符相关联的对话记忆库中。
多用户输入接收模块,配置用于在用户选择的对话模式是多人对话模式的情况下,接收与房间标识符相关联的多个用户当前输入的对话内容。
多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容。
答复决策模块,配置用于根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复。
多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向客户端传输当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中。
不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
需要注意,本发明的上述实施方式提出的生成对话的装置中的各个模块实现的功能与上文描述的可选模式下生成对话的方法的各个步骤一一对应,其具体实施方式、示例和有益效果请参见对于可选模式下生成对话的方法的描述,在此不再赘述。
在又一方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,该装置应用于服务器,该装置包括以下模块。
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符。
单用户提问内容生成模块,配置用于根据用户当前输入的对话内容以及与对话房间标识符和用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容。
单用户引导式答复内容获取模块,配置用于将当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
单用户引导式答复内容传输模块,配置用于向客户端传输当前单用户引导式答复内容。
单用户存储模块,配置用于将当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和用户标识符相关联的对话记忆库中。
需要注意,本发明的上述实施方式提出的生成对话的装置中的各个模块实现的功能与上文描述的单用户模式下生成对话的方法的各个步骤一一对应,其具体实施方式、示例和有益效果请参见对于单用户模式下生成对话的方法的描述,在此不再赘述。
在又一方面,本发明的实施方式提出了一种生成对话的装置,所生成的对话是引导式对话,装置应用于服务器,装置包括以下模块。
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,对话请求包括用户标识符和房间标识符。
多用户输入接收模块,配置用于接收与房间标识符相关联的多个用户当前输入的对话内容。
多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容。
答复决策模块,配置用于根据多个用户当前输入的对话内容和/或当前多用户提问内容,判断当前是否进行答复。
多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,经训练的引导式对话语言模型是根据上述任何实施方式描述的生成对话语言模型的方法而获得的。
引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向客户端传输当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中。
不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
需要注意,本发明的上述实施方式提出的生成对话的装置中的各个模块实现的功能与上文描述的多用户模式下生成对话的方法的各个步骤一一对应,其具体实施方式、示例和有益效果请参见对于多用户模式下生成对话的方法的描述,在此不再赘述。
在又一方面,本发明的实施方式提出了一种存储介质,存储有计算机可读指令,当指令由处理器运行时,执行上述任何实施方式描述的生成对话语言模型的方法和/或生成对话的方法。
目前现有的对话机器人对用户的引导方面是非常有限的,这些机器人在回答用户提出的问题时,往往是机械式的,缺乏人性化的情感交流和人工智能的深度应用,除了回复呆板的问题,同时很难具备提升用户自我思考能力的特点,只能作为消遣,打发时间的聊天工具。
本发明的目的在于针对现有聊天机器人存在的缺陷,提供更先进和个性化的对话引导服务,以解决现有机器人缺乏深度和个性化的问题。相对于现有聊天机器人,通过本发明的实施方式生成的引导式对话机器人的技术水平更高,目前新型引导式多用户对话机器人对话方式可以包括:1.单用户单房间互动;2.多用户单房间互动,及其组合。同时,本发明的实施方式采用独特的RLHF(Reinforcement Learning from HumanFeedback,基于人工反馈的增强学习)训练模式和预训练语言模型构建全新的对话引导式教练机器人,使得机器人在对话引导方面有了更高的精度和深度。
本发明的实施方式所生成的引导式对话机器人能够根据用户的问题和回答,提供个性化的思考引导和指导,以帮助用户提高自身的思考能力和学习效率。在纯文本对话状态下,建立输入序列中词语之间的长期依赖关系。这种机制能够让模型“记住”输入序列中的信息,并且能够从这些信息中提取出上下文和语义信息,在获取文本后,其回复的基本的生成原理为:通过遮盖输入文本的某些单词或片段,训练模型预测这些遮盖部分的内容,就如同做阅读理解习题一样,模型能记住类似的回复。所以,在训练的语料样本充足,与特定的训练条件的情况下,机器能给出相似和准确与符合逻辑的回复。所以,只需要把用户的所有对话文本进行拼接,训练完成后的模型会自动将这些信息编码成语义向量的形式。这些语义向量可以在后续生成对话时被用来生成有意义的回答。
本发明的实施方式采用引导式对话的样本来训练对话语言模型,让机器人的提问变得更加有思辨性,根据本发明的实施方式的对话机器人可以类似于教练、课程引导员、引导顾问和老师,对话内容不再局限于日常的聊天,更多的涉及提问、引导和讲述相似的相关知识,通过对话的方式帮助人们从生活和学习各个方面更好地了解自我,从而引导人们自己去思考问题、培养人们独立思考的能力和激发他们最大程度地发挥个人和职业潜力。
引导式对话机器人与市面上的聊天机器人之间的主要区别在于目的和结构。引导式对话是由一个专业度高的教练机器人参与的对话,目的是帮助对方解决具体的问题或实现某些目标。相比之下,传统聊天则倾向于日常闲聊,更加随意和无目的,可能会在某些话题上停留时间很短或者跳跃性地涉及多个话题,通常只是为了消遣或建立人际关系。
在单用户单房间互动的对话方式下,用户可以与教练代理(机器人)继续深度交流,以期引导用户的思维模式,认识问题,挖掘问题,分析问题,解决问题。在多用户交互模式下,对话机器人能够识别每个用户的提问,并根据每个用户的需求和背景信息,提供个性化的回答和解决方案。同时,对话机器人还可以将用户之间的问题和答案进行整合和分析,提供更全面和深入的解决方案。在对话交互过程中,机器人具备关键词识别的能力,能够识别用户对其的呼唤并做出相应的反应。对话机器人还提供了一些特殊的功能,以满足多用户的需求,例如用户可以选择与其他用户共同参与一个讨论话题,也可以选择与对话机器人进行私密对话。对话机器人还可以对每个用户的提问进行标记和记录,以方便用户之间的信息共享和学习。因此,本发明的新型对话引导式教练机器人具有重要的实用价值和广阔的应用前景。
与传统的对话机器人相比,本发明的实施方式提出的新型引导式对话语言模型采用了全新的对话引导方式,旨在通过与用户的深入互动和精准分析,真正了解用户的需求,为用户提供个性化的思考引导和指导,帮助用户更好地提升自我思考能力。
除了对话的内容方面,在对话方式方面,当前市场上的聊天机器人虽然在单用户、单对话场景下发挥了重要作用,但是在多用户、多对话的情境下则显得力不从心。这是因为传统的聊天机器人无法处理多个用户同时提问和交互的场景,因为多用户场景需要理解长文本,并且多用户之间存在交互和讨论,使得对话文本更加的复杂,导致回复往往不够精准和个性化。相比之下,本发明的实施方式提出的对话生成方法能够在多用户交互模式下进行多人提问和多人互动,支持房间内的多个用户共同参与。具体地,本发明的实施方式采用了以下方式来提高模型对长文本的理解能力:(1)在监督微调(SFT)阶段使用的样本是同一语境下的多组对话,并且将多组对话标注了顺序并进行长文本组合,即,训练时采用的样本即是长文本;(2)通过PPO进行了强化学习;(3)在模型的使用过程中,对用户的当前输入与历史记录(或者记忆)进行了拼接,或者将用户的对话进行缩写之后进行拼接,以及在多用户的情况下,为每个用户的对话添加了用户代号,这些都使得模型能够更好地根据对话上下文输出符合预期的对话结果。
此外,本发明的实施方式提出的对话生成方法能够记录房间内多个用户的对话历史会话,从而更好地了解每个用户的需求和用户的背景信息。基于这些信息,能够提供更加个性化的回答和解决方案,帮助用户更好地解决问题。通过这种方式,本发明的实施方式提出的对话语言模型生成方法和对话生成方法不仅能够提升用户的体验感和满意度,还能够促进用户之间的互动和交流,为用户提供更加丰富和有趣的交互体验。
出于示意的目的,已经给出了本发明的实施方式的前述说明,其并非是穷举性的也并非要将本发明限制为所公开的确切形式。本领域技术人员可以理解的是,在不偏离本发明的范围的情况下可以做出各种变化,并且可以将其中的元件替换为等同物。另外,在不偏离本发明的基本范围的情况下,可以进行很多修改以使得特定的情况或材料适应于本发明的教导。因此,本发明不试图限制于所公开的作为用于实现本发明所预期的最佳模式的特定实施方式,本发明将包括落入所附的权利要求的范围内的所有实施方式。
Claims (32)
1.一种生成对话语言模型的方法,其特征在于,所述对话语言模型是用于生成引导式对话的引导式对话语言模型,所述方法包括:
获取第一对话样本数据集,其中,所述第一对话样本数据集是引导式对话样本数据集,并且所述第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话;
对所述第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对所述第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对所述第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集;
利用所述监督微调训练样本集、所述监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调,获取经监督微调的引导式对话语言模型;
获取第二对话样本数据集,其中,所述第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联;
将所述第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集;
利用所述奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型,其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关;
获取第三对话样本数据集,其中,所述第三对话样本数据集是引导式对话样本数据集,并且所述第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话;
对所述第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联;
依次提取所述第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将所述元组解包,分别创建提示项列表和内容项列表,根据所述第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据所述第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集;
利用所述经训练的奖励模型、初始策略神经网络、所述强化学习训练样本集和所述强化学习验证样本集,对所述经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习,包括:利用所述经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据所述经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据所述强化学习环境反馈来更新策略神经网络的参数;
在所述经训练的奖励模型的打分未达到预定义目标的情况下,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习;
在所述经训练的奖励模型的打分达到所述预定义目标的情况下,输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
2.根据权利要求1所述的方法,其特征在于,对所述经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习还包括:
根据所述强化学习训练样本集中提示项列表和内容项列表构建第一字典;
将所述提示项列表的内容输入训练中的所述经监督微调的引导式对话语言模型,获得针对所述提示项列表的回答项列表;
根据所述提示项列表和所述回答项列表构建第二字典;
将所述第一字典输入所述经训练的奖励模型,获得所述第一字典的第一得分列表;
将所述第二字典输入所述经训练的奖励模型,获得所述第二字典的第二得分列表;
将所述第一得分列表作为所述经训练的奖励模型打分的基准线,在所述第二得分列表中的得分高于所述第一得分列表中的得分时,优势函数获得正增量,在所述第二得分列表中的得分低于所述第一得分列表中的得分时,优势函数获得负增量;
根据所述经训练的奖励模型的打分和所述优势函数的值生成强化学习环境反馈,策略神经网络根据所述强化学习环境反馈来更新策略神经网络的参数。
3.根据权利要求1所述的方法,其特征在于,利用所述奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型包括:
将所述奖励模型训练样本集中的经组合的提示项、选择项和拒绝项输入训练中的奖励模型,获得组合形式的选择项-拒绝项打分数组;
将组合形式的选择项-拒绝项打分数组拆分为选择项打分数组和拒绝项打分数组;
按照预定义的数组长度,对选择项打分数组和拒绝项打分数组的数组元素进行填充或裁剪,使得经填充或裁剪的选择项打分数组和拒绝项打分数组包括相同数量的数组元素;
根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值。
4.根据权利要求3所述的方法,其特征在于,根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值包括:
在选择项打分数组和拒绝项打分数组中从前向后第一个不相同的数组元素开始计算选择项打分与拒绝项打分的差值。
5.根据权利要求3所述的方法,其特征在于,根据具有相同数量的数组元素的选择项打分数组和拒绝项打分数组,计算选择项打分与拒绝项打分的差值包括:
在选择项打分数组和拒绝项打分数组中从后向前检索填充元素的数量;
将选择项打分数组和拒绝项打分数组中较后出现填充元素的位置作为计算选择项打分与拒绝项打分的差值的结束位。
6.根据权利要求1所述的方法,其特征在于,利用所述奖励模型训练样本集对初始奖励模型进行训练包括:
通过在初始奖励模型的输出处设置的映射层来获取训练中的奖励模型的打分,其中,所述映射层的维度是:隐藏单元数×1,其中隐藏单元数是初始奖励模型中的最后一层隐藏层的隐藏单元数。
7.根据权利要求1所述的方法,其特征在于,获取第三对话样本数据集包括:
将所述第一对话样本数据集中的部分样本加入所述第三对话样本数据集中,并对该部分样本在所述第三对话样本数据集中进行随机排序。
8.根据权利要求1所述的方法,其特征在于,获取第一对话样本数据集包括:
从经人工标注的对话样本数据集中选择第一预定数目个样本的提示项作为种子任务;
每次随机选择第二预定数目个种子任务进行整合,输入样本生成模型,生成与第二预定数目个种子任务具有类似特征的提示项;
将生成的提示项输入所述样本生成模型,获得所述样本生成模型对生成的提示项的回答,作为与生成的提示项相对应的内容项;
重复生成提示项和生成内容项的步骤,对包括生成的提示项和生成的内容项的对话样本进行低质量过滤和重复过滤,获得所述第一对话样本数据集。
9.根据权利要求1所述的方法,其特征在于,对奖励模型进行训练中的损失函数由以下公式给出:
loss+=-torch.log(torch.sigmoid(chosen_reward-rejected_rewards))
其中,loss表示损失值,torch.sigmoid()函数用于根据输入值输出介于0和1之间的概率值,torch.log()函数用于求输入值的自然对数,chosen_reward表示训练中的奖励模型对选择项的打分,rejected_rewards表示训练中的奖励模型对拒绝项的打分。
10.一种生成对话的方法,其特征在于,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:
从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符以及对话模式的选择;
在用户选择的对话模式是单人对话模式的情况下:
根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;
将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
向所述客户端传输所述当前单用户引导式答复内容;
将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中;
在用户选择的对话模式是多人对话模式的情况下:
接收与对话房间标识符相关联的多个用户当前输入的对话内容;
根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;
根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;
在确定当前进行答复的情况下,
将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;
在确定当前不进行答复的情况下,
将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
11.根据权利要求10所述的方法,其特征在于,根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复包括:
判断多个用户当前输入的对话内容中是否包括唤醒词;
在包括唤醒词的情况下,确定当前进行答复;
在不包括唤醒词的情况下,确定当前不进行答复。
12.根据权利要求10所述的方法,其特征在于,根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复包括:
将多个用户当前输入的对话内容和房间标识符相关联的对话记忆库输入答复决策模型,根据答复决策模型的输出判断当前是否进行答复。
13.根据权利要求10所述的方法,其特征在于,根据用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
14.根据权利要求10所述的方法,其特征在于,根据用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容进行缩写,生成经缩写的用户当前输入的对话内容;
将经缩写的用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
15.根据权利要求10所述的方法,其特征在于,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:
将多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容被添加了与该用户的用户标识符相对应的用户标记。
16.根据权利要求10所述的方法,其特征在于,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:
将多个用户当前输入的对话内容进行缩写,生成经缩写的多个用户当前输入的对话内容;
将经缩写的多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容的缩写被添加了与该用户的用户标识符相对应的用户标记。
17.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在获取当前单用户引导式答复内容之后,对当前单用户引导式答复内容进行过滤,并向客户端输出经过滤的当前单用户引导式答复内容;以及
在获取当前多用户引导式答复内容之后,对当前多用户引导式答复内容进行过滤,并向客户端输出经过滤的当前多用户引导式答复内容。
18.一种生成对话的方法,其特征在于,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:
从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符;
根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;
将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
向所述客户端传输所述当前单用户引导式答复内容;
将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中。
19.根据权利要求18所述的方法,其特征在于,根据用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
20.根据权利要求18所述的方法,其特征在于,根据用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容包括:
将用户当前输入的对话内容进行缩写,生成经缩写的用户当前输入的对话内容;
将经缩写的用户当前输入的对话内容以及与房间标识符和所述用户标识符相关联的对话记忆库中的内容进行拼接,获得当前单用户提问内容。
21.根据权利要求18所述的方法,其特征在于,所述方法还包括:
在获取当前单用户引导式答复内容之后,对当前单用户引导式答复内容进行过滤,并向客户端输出经过滤的当前单用户引导式答复内容。
22.一种生成对话的方法,其特征在于,所生成的对话是引导式对话,所述方法应用于服务器,所述方法包括:
从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符和房间标识符;
接收与房间标识符相关联的多个用户当前输入的对话内容;
根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;
根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;
在确定当前进行答复的情况下,
将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;
在确定当前不进行答复的情况下,
将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
23.根据权利要求22所述的方法,其特征在于,根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复包括:
判断多个用户当前输入的对话内容中是否包括唤醒词;
在包括唤醒词的情况下,确定当前进行答复;
在不包括唤醒词的情况下,确定当前不进行答复。
24.根据权利要求22所述的方法,其特征在于,根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复包括:
将多个用户当前输入的对话内容和房间标识符相关联的对话记忆库输入答复决策模型,根据答复决策模型的输出判断当前是否进行答复。
25.根据权利要求22所述的方法,其特征在于,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:
将多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容被添加了与该用户的用户标识符相对应的用户标记。
26.根据权利要求22所述的方法,其特征在于,根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容包括:
将多个用户当前输入的对话内容进行缩写,生成经缩写的多个用户当前输入的对话内容;
将经缩写的多个用户当前输入的对话内容以及与房间标识符相关联的对话记忆库进行拼接,获得当前多用户提问内容,其中,多个用户中的每个用户当前输入的对话内容的缩写被添加了与该用户的用户标识符相对应的用户标记。
27.根据权利要求22所述的方法,其特征在于,所述方法还包括:
在获取当前多用户引导式答复内容之后,对当前多用户引导式答复内容进行过滤,并向客户端输出经过滤的当前多用户引导式答复内容。
28.一种生成对话语言模型的装置,其特征在于,所述对话语言模型是用于生成引导式对话的引导式对话语言模型,所述装置包括:
第一对话样本数据集获取模块,配置用于获取第一对话样本数据集,其中,所述第一对话样本数据集是引导式对话样本数据集,并且所述第一对话样本数据集中的每个样本包括同一语境下的一组或多组对话;
监督微调样本集生成模块,配置用于对所述第一对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联,对所述第一对话样本数据集中的第一部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调训练样本集,对所述第一对话样本数据集中的第二部分样本中的对话相对应的顺序标识符、提示项和内容项进行组合生成监督微调证明样本集;
监督微调执行模块,配置用于利用所述监督微调训练样本集、所述监督微调证明样本集和参数固定训练器对初始语言模型进行监督微调,获取经监督微调的引导式对话语言模型;
第二对话样本数据集获取模块,配置用于获取第二对话样本数据集,其中,所述第二对话样本数据集中的每个样本包括提示项、选择项和拒绝项,其中,选择项与引导式对话内容相关联,拒绝项与非引导式对话内容相关联;
奖励模型训练样本集生成模块,配置用于将所述第二对话样本数据集中的每个样本中的提示项、选择项和拒绝项进行标注和组合,生成奖励模型训练样本集;
奖励模型训练模块,配置用于利用所述奖励模型训练样本集对初始奖励模型进行训练,获取经训练的奖励模型,其中,对奖励模型进行训练中的损失函数的损失值与训练中的奖励模型对选择项的打分成负相关,与训练中的奖励模型对拒绝项的打分成正相关;
第三对话样本数据集获取模块,配置用于获取第三对话样本数据集,其中,所述第三对话样本数据集是引导式对话样本数据集,并且所述第三对话样本数据集中的每个样本包括同一语境下的一组或多组对话;
顺序标识符添加模块,配置用于对所述第三对话样本数据集中的每个样本中的一组或多组对话中的每组对话添加顺序标识符,并标注该组对话中的提示项和内容项,其中,内容项与引导式对话内容相关联;
强化学习样本集生成模块,配置用于依次提取所述第三对话样本数据集中的每个样本中的每组对话的提示项与内容项并组成元组;继而将所述元组解包,分别创建提示项列表和内容项列表,根据所述第三对话样本数据集中的第一部分样本相对应的提示项列表和内容项列表生成强化学习训练样本集,并根据所述第三对话样本数据集中的第二部分样本相对应的提示项列表和内容项列表生成强化学习验证样本集;
强化学习执行模块,配置用于利用所述经训练的奖励模型、初始策略神经网络、所述强化学习训练样本集和所述强化学习验证样本集,对所述经监督微调的引导式对话语言模型执行基于近端策略优化的强化学习,包括:利用所述经训练的奖励模型对训练过程中的经监督微调的引导式对话语言模型的输出进行打分,根据所述经训练的奖励模型的打分生成强化学习环境反馈,继而策略神经网络根据所述强化学习环境反馈来更新策略神经网络的参数;
策略反馈模块,配置用于在所述经训练的奖励模型的打分未达到预定义目标的情况下,根据当前的策略神经网络对当前的引导式对话语言模型继续执行基于近端策略优化的强化学习;
模型输出模块,配置用于在所述经训练的奖励模型的打分达到所述预定义目标的情况下,输出当前的策略神经网络,并且将当前训练获得的引导式对话语言模型作为经训练的引导式对话语言模型。
29.一种生成对话的装置,其特征在于,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符以及对话模式的选择;
单用户提问内容生成模块,配置用于在用户选择的对话模式是单人对话模式的情况下,根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;
单用户引导式答复内容获取模块,配置用于将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
单用户引导式答复内容传输模块,配置用于向所述客户端传输所述当前单用户引导式答复内容;
单用户存储模块,配置用于将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中;
多用户输入接收模块,配置用于在用户选择的对话模式是多人对话模式的情况下,接收与对话房间标识符相关联的多个用户当前输入的对话内容;
多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;
答复决策模块,配置用于根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;
多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;
不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
30.一种生成对话的装置,其特征在于,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符;
单用户提问内容生成模块,配置用于根据用户当前输入的对话内容以及与对话房间标识符和所述用户标识符相关联的对话记忆库中的内容,生成当前单用户提问内容;
单用户引导式答复内容获取模块,配置用于将所述当前单用户提问内容输入至经训练的引导式对话语言模型中,获取当前单用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
单用户引导式答复内容传输模块,配置用于向所述客户端传输所述当前单用户引导式答复内容;
单用户存储模块,配置用于将所述当前单用户提问内容、当前单用户引导式答复内容存储到与房间标识符和所述用户标识符相关联的对话记忆库中。
31.一种生成对话的装置,其特征在于,所生成的对话是引导式对话,所述装置应用于服务器,所述装置包括:
对话请求接收模块,配置用于从客户端接收用户输入的对话请求,其中,所述对话请求包括用户标识符和房间标识符;
多用户输入接收模块,配置用于接收与房间标识符相关联的多个用户当前输入的对话内容;
多用户提问内容生成模块,配置用于根据多个用户当前输入的对话内容、多个用户的用户标识符以及与房间标识符相关联的对话记忆库,生成当前多用户提问内容;
答复决策模块,配置用于根据多个用户当前输入的对话内容和/或所述当前多用户提问内容,判断当前是否进行答复;
多用户引导式答复内容获取模块,配置用于在确定当前进行答复的情况下,将所述当前多用户提问内容输入至经训练的引导式对话语言模型中,获取当前多用户引导式答复内容,其中,所述经训练的引导式对话语言模型是根据权利要求1-9中任一项所述的方法而获得的;
引导式答复内容传输和内容存储模块,配置用于在确定当前进行答复的情况下,向所述客户端传输所述当前引导式答复内容,并且将多个用户当前输入的对话内容和当前多用户引导式答复内容存储到与房间标识符相关联的对话记忆库中;
不答复处置模块,配置用于在确定当前不进行答复的情况下,将多个用户当前输入的对话内容存储到与房间标识符相关联的对话记忆库中。
32.一种存储介质,存储有计算机可读指令,当所述指令由处理器运行时,执行根据权利要求1-27中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310413342.5A CN116415650A (zh) | 2023-04-17 | 2023-04-17 | 生成对话语言模型及生成对话的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310413342.5A CN116415650A (zh) | 2023-04-17 | 2023-04-17 | 生成对话语言模型及生成对话的方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116415650A true CN116415650A (zh) | 2023-07-11 |
Family
ID=87054452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310413342.5A Pending CN116415650A (zh) | 2023-04-17 | 2023-04-17 | 生成对话语言模型及生成对话的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116415650A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610790A (zh) * | 2023-07-18 | 2023-08-18 | 阿里健康科技(中国)有限公司 | 应答数据的获取方法、装置、设备和介质 |
CN117057413A (zh) * | 2023-09-27 | 2023-11-14 | 珠高智能科技(深圳)有限公司 | 强化学习模型微调方法、装置、计算机设备及存储介质 |
CN117808124A (zh) * | 2024-02-29 | 2024-04-02 | 云南师范大学 | 一种基于Llama2的文本简化方法 |
-
2023
- 2023-04-17 CN CN202310413342.5A patent/CN116415650A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610790A (zh) * | 2023-07-18 | 2023-08-18 | 阿里健康科技(中国)有限公司 | 应答数据的获取方法、装置、设备和介质 |
CN116610790B (zh) * | 2023-07-18 | 2023-10-10 | 阿里健康科技(中国)有限公司 | 应答数据的获取方法、装置、设备和介质 |
CN117057413A (zh) * | 2023-09-27 | 2023-11-14 | 珠高智能科技(深圳)有限公司 | 强化学习模型微调方法、装置、计算机设备及存储介质 |
CN117057413B (zh) * | 2023-09-27 | 2024-03-15 | 传申弘安智能(深圳)有限公司 | 强化学习模型微调方法、装置、计算机设备及存储介质 |
CN117808124A (zh) * | 2024-02-29 | 2024-04-02 | 云南师范大学 | 一种基于Llama2的文本简化方法 |
CN117808124B (zh) * | 2024-02-29 | 2024-05-03 | 云南师范大学 | 一种基于Llama2的文本简化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116415650A (zh) | 生成对话语言模型及生成对话的方法、装置和存储介质 | |
CN110059169B (zh) | 基于语料标注的智能机器人聊天上下文实现方法及系统 | |
CN116059646B (zh) | 一种交互式专家指导系统 | |
Komatani et al. | User modeling in spoken dialogue systems to generate flexible guidance | |
CN110851575B (zh) | 一种对话生成系统及对话实现方法 | |
Picca et al. | Natural Language Processing in Serious Games: A state of the art. | |
CN113761156A (zh) | 人机交互对话的数据处理方法、装置、介质及电子设备 | |
Krassmann et al. | A process for extracting knowledge base for chatbots from text corpora | |
CN111339274A (zh) | 对话生成模型训练方法、对话生成方法及装置 | |
Elworthy | Automatic error detection in part-of-speech tagging | |
Beredo et al. | A hybrid response generation model for an empathetic conversational agent | |
CN117828063A (zh) | 一种心理领域数据生成、模型训练方法、装置及存储介质 | |
CN115757749B (zh) | 一种对话处理方法、装置、电子设备及存储介质 | |
CN117271745A (zh) | 一种信息处理方法、装置及计算设备、存储介质 | |
Floyd | From Joseph Weizenbaum to ChatGPT: Critical Encounters with Dazzling AI Technology | |
CN115905852A (zh) | 基于预训练提示的故事生成方法、系统、存储介质和终端 | |
Greco et al. | She adapts to her student: An expert pragmatic speaker tailoring her referring expressions to the Layman listener | |
Leino et al. | Finchat: Corpus and evaluation setup for finnish chat conversations on everyday topics | |
Holm | Are GLLMs Danoliterate? Benchmarking Generative NLP in Danish | |
Fang | Building A User-Centric and Content-Driven Socialbot | |
CN117252260B (zh) | 一种基于大语言模型的面试技能训练方法、设备及介质 | |
CN117808011B (zh) | 一种带有模拟情绪的聊天机器人的方法、介质及系统 | |
CN114610861B (zh) | 基于变分自编码器的融入知识和感情的端到端对话方法 | |
Nettleton et al. | Evolutionary algorithms and dialogue | |
Liu et al. | A Named Entity Recognition Method For Chinese Winter Sports News Based On RoBERTa-WWM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |