首次利用半监督注入知识,达摩院推出新型预训练对话模型,取得显著提升(1)

简介: 首次利用半监督注入知识,达摩院推出新型预训练对话模型,取得显著提升

如何将人类先验知识低成本融入到预训练模型中一直是个难题。达摩院对话智能团队提出了一种基于半监督预训练的新训练范式,通过半监督的方式将对话领域的少量有标数据和海量无标数据一起进行预训练,将标注数据中蕴含的知识注入到预训练模型中去,新提出的半监督预训练对话模型(Semi-Supervised Pre-trAined Conversation ModEl)SPACE 1.0 版本在剑桥 MultiWOZ2.0,亚马逊 MultiWOZ2.1 等经典对话数据集上取得了 5%+ 显著效果提升。


随着深度学习的迅猛发展,学术界每年都会有许多高质量标注数据集被公开,如文本分类、情感分析等等,同时工业界也会积累沉淀面向任务的各类标注数据,怎样将储存在标注数据中的特定任务知识注入到预训练模型中,从而带来该类任务的普遍效果提升,就成为一个重要的研究方向


本文从将预训练模型的两大经典范式简介开始,围绕预训练语言模型学到哪些知识、如何向预训练模型注入知识展开,然后重点介绍预训练对话模型及达摩院对话智能团队在半监督预训练对话模型方面的进展,最后对未来研究方向作出展望。


1. 预训练语言模型的两大范式


1.1. 有监督预训练


神经网络模型的预训练一直是深度学习中备受关注的问题。最早的研究可追溯到 Hinton 教授在 2006 年提出的一种基于受限玻尔兹曼机优化的贪心算法 [2],该方法利用无标数据针对深度信度网络(Deep Belief Nets, DBN)进行一层层地初始化,从而能够保证较深的网络在下游任务上也能快速收敛。随着大数据的兴起和算力的提升,人们逐渐发现直接在具有高度相关性的大型有标数据集上进行有监督预训练,然后再某个特定下游任务进行迁移学习能够带来更强的表现,比较常见的工作是利用 VGG,ResNet 等超深模型在 ImageNet 上进行预训练,将有关图像分类的专家标注的大量经验知识注入到模型的参数中,从而在目标追踪、图片分割等其他相关任务上进行更好地适应学习。

 

1.2. 自监督预训练


近一两年里,随着预训练语言模型的兴起,利用自监督的方式在无标数据上针对鉴别式模型构造有监督损失函数进行超大规模的自监督预训练成为了新的主流,例如在自然语言处理领域中,BERT 使用基于上下文的词 token 预测可以训练出很好的自然语言表征,在大量 NLP 任务上都得到了效果验证 [3];而在计算机视觉领域中,近期以 ViT [4] 为基础的一系列工作,也利用了类似 BERT 的 transformer 结构进行图片 patch 重建的预训练,从而习得良好的图片表征,并在 imagenet-1K 等图片分类数据集上取得显著提升。


清华研究者们在综述 [5] 中从迁移学习的角度来统一审视了目前已有的两大预训练范式,如下图 1 所示,无论是有监督预训练还是自监督预训练,归根结底都是直接从数据中学出更加合理的分布式表示,从而能够更好地迁移适配到具体的下游任务。

 

图 1:神经网络预训练两大范式(改自综述 [5])

 

总结来看,两种范式各有自己的优劣点:有监督预训练因为存在有标数据进行指导,所学出的特征对某些相关下游任务更加适配,但是却严重依赖人工标注;自监督预训练可不再受到人工标注的局限,利用海量无标数据进行学习,但所设计的损失函数一般都需要简单通用,例如 LM loss, MLM loss 和 contrastive loss 等,这就使得大模型学习到的更多是普适的语义表示。


2. 预训练语言模型学会了什么?


2.1. 模型的知识探测


依目前发展来看,以 BERT 为代表的自监督预训练已经成为了研究主流。论文 [6] 曾对 BERT 模型 “庖丁解牛”,通过知识探测的手段,深入地探究了每一层的注意力权重的关系(如图 2 所示),发现不同层的不同注意力头(attention head)都对不同的语言特征敏感,例如有的注意力头对于定冠词修饰的名词敏感,有的注意力头对于被动语态关注度更高,有的则在一定程度上实现了长距离指代消解。

 

图 2:解析 BERT 不同注意力头的权重图 (引自 [6])


预训练的本质是将训练数据中蕴含的信息以模型可理解的方式隐含地存储到参数中 [5],不少研究工作已经表明 [7][8][9],预训练模型如 BERT 能够学习到较好的语言学知识(句法、语法),甚至一定程度上的世界知识和常识知识。但是预训练模型在如何更好地学习利用人类经验知识上依旧存在不少问题,需要更多的研究与探索,例如如何对其进行更好的建模,如何更有效地进行预训练,如何评价知识融入的程度等等。

 

2.2. 人类经验知识


这里,我们将人类经验知识粗略分为三类:


第一类是事实型知识,例如人工构建的知识表格、知识图谱和结构化文档(包含篇章结构、图文信息)。目前已经有一些预训练的工作针对这类知识进行更好地利用,例如达摩院不久前开源的最大中文预训练表格模型(详见《达摩院开源中文社区首个表格预训练模型,取得多个基准 SOTA》一文);清华的 KEPLER [12] 和北大的 K-BERT [11] 是通过将三元组融合到神经网络输入并引入新的损失函数或结构来实现图谱知识的有效融入;微软的 LayoutLM 系列模型 [13] 和 Adobe 的 UDoc [14] 则研究了如何针对结构化文档进行预训练。

第二类是数理逻辑知识,包括数理公式、公理定理、符号计算等,这一类知识不作为本文讨论内容。

第三类是标注知识,即标注数据中蕴含的知识。这类知识十分普遍,属于任务相关的,例如文本分类、情感分析等。人类在标注过程中需要根据该特定的任务进行归纳总结,在预先定义的高层语义分类空间中对无标数据进行推断并赋值相应的标签。因此,利用标注知识来增强预训练模型理应会对相关下游任务带来明显效果提升。

 

3. 如何注入人类标注知识?


尽管现在各类预训练模型包打天下,但是如何向模型中注入标注知识依旧是一个尚未充分探索的方向。早期工作中,谷歌的 T5 [16] 就已经尝试了将有标和无标数据统一成语言生成任务进行学习,但是实验却表明简单地混合有标无标数据训练反而会带来负面影响


经过大量的实验探索,我们发现如果还是基于原先的两大预训练范式,是难以很好地进行预训练的。首先,单利用自监督预训练或者有监督预训练是无法同时利用好有标和无标的预训练数据,因为仅仅自监督损失函数是无法学习出标注知识中的高层语义的,有监督损失函数亦不能学出无标语料中的通用底层语义;其次,在大规模预训练中,由于所使用的预训练数据往往存在着少量有标数据和海量无标数据之间的数量鸿沟,如果简单混合两种预训练,会使得标注知识的信息要么淹没在无标数据中,要么就会出现严重的过拟合,因此我们需要全新的预训练范式来解决该问题。


这里,我们提出半监督预训练。如图 3 所示,半监督预训练从迁移学习的角度来看,可以认为是一个前两种范式的自然延伸,通过构造半监督学习的损失函数来充分综合利用有限的标注知识和大量的无标数据。在半监督学习理论里 [17],模型既需要在无标数据上进行自我推断,根据结果进一步约束优化,也需要利用有标数据进行一定程度的有监督,指导自监督预训练的过程,同时避免模型参数陷入平凡解。


图 3:半监督预训练新范式


我们团队专注在对话智能(Conversational AI)方向,所以我们率先将半监督预训练的思路应用在了对话领域,提出了半监督预训练对话模型,在 MultiWoz 等国际经典对话数据集上取得了显著提升,论文已经被 AAAI2022 录用 [1]。接下来我们先简单介绍一下什么是预训练对话模型,然后重点介绍半监督预训练对话模型。

 

4. 预训练对话模型


预训练语言模型(Pre-trained Language Model, PLM)需要回答的什么样的句子更像自然语言,而预训练对话模型(Pre-trained Conversation Model, PCM)需要回答的是给定对话历史什么样的回复更合理。因此,预训练对话模型相比预训练语言模型任务更加特定化,需综合考虑对话轮次、对话角色、对话策略、任务目标等预训练语言模型不太关注的特征,图 4 给出了一个对话特有属性的总结。


图 4:对话特有的属性总结

 

目前预训练对话模型的建模,基本按照对话理解和对话生成两大任务类进行建模,利用类似于 BERT 或者 GPT-2 的 loss 在对话语料上进行预训练。例如,针对话理解,常见模型有 PolyAI 的 ConvRT [20],Salesforce 的 TOD-BERT [21] 和亚马逊的 ConvBERT [31],针对对话生成,常见模型有微软的 DialoGPT [18],谷歌的 Meena [19] 和 Facebook 的 Blender [30]。但是,这些模型都没有融入标注知识。

 


相关文章
|
机器学习/深度学习 Web App开发 数据可视化
训练可视化工具哪款是你的菜?MMCV一行代码随你挑
在深度学习中可视化模型的训练过程有助于我们分析模型的状态。可视化训练过程的库很多,我们将一些常用的库集成到 MMCV 中方便用户使用。在 MMCV 中使用这些库只需简单配置。在本文中将介绍这些库以及它们在 MMCV 中的使用方法。
1236 0
训练可视化工具哪款是你的菜?MMCV一行代码随你挑
|
存储 编译器 C语言
【C语言】判断字符类型的三种方法
【C语言】判断字符类型的三种方法
953 0
|
人工智能 数据挖掘
🔔阿里云百炼智能体和工作流可以发布为组件了,AI应用变成“搭积木”
本文介绍了如何通过智能体组件化设计快速生成PPT。首先,创建一个“PPT大纲生成”智能体并发布为组件,该组件可根据用户输入生成结构清晰的大纲。接着,在新的智能体应用中调用此组件与MCP服务(如ChatPPT),实现从大纲到完整PPT的自动化生成。整个流程模块化、复用性强,显著降低AI开发门槛,提升效率。非技术人员也可轻松上手,满足多样化场景需求。
1389 0
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
289 1
|
人工智能 自动驾驶 算法
探索未来:人工智能如何改变我们的生活
在这篇文章中,我们将深入探讨人工智能(AI)如何正在改变我们的生活。从自动驾驶汽车到智能家居,从虚拟助手到医疗诊断,AI的应用已经深入到我们生活的方方面面。我们将通过具体的例子和数据,展示AI的潜力和挑战,以及它如何影响我们的工作、学习和娱乐。最后,我们将提出一个开放性问题,引发读者对未来AI发展的思考。
509 32
|
Python
错误:/lib64/libc.so.6: version `GLIBC_2.14’ not found 解决办法
错误:/lib64/libc.so.6: version `GLIBC_2.14’ not found 解决办法
1093 0
|
SQL 机器学习/深度学习 人工智能
聚焦高速互连SI性能研究丨阿里云技术论文入选IEEE EPEPS 2024和PCB West 2024
阿里云服务器研发团队3篇论文入选IEEE EPEPS 2024和PCB West 2024,聚焦高速互连下SI性能研究。
|
存储 机器学习/深度学习 异构计算
Transformers 4.37 中文文档(十九)(8)
Transformers 4.37 中文文档(十九)
799 2
|
固态存储 Linux 内存技术
浅析PCI配置空间
每个Function都有一个大小为4KB的configuration space。在系统上电的过程中,在枚举整个PCI Bus之后,就会将所有的BDF的configuration space读到Host内存中。在Host内存中有一个大小256MB的Memory Block, 专门用来存放所有的configuration space.
|
机器学习/深度学习 人工智能 自然语言处理
如何向大模型注入知识?达摩院通义对话模型SPACE系列探索
如何将人类先验知识低成本融入到预训练模型中一直是个难题。达摩院对话智能团队提出了一种基于半监督预训练的新训练方式,将对话领域的少量有标数据和海量无标数据一起进行预训练,从而把标注数据中蕴含的知识注入到预训练模型中去,打造了SPACE 1/2/3 系列模型,在11个国际公开对话数据集取得SOTA。
如何向大模型注入知识?达摩院通义对话模型SPACE系列探索

热门文章

最新文章