中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

1.2 深度学习的挑战和机遇

深度学习的挑战

接下来我们进入下一个主题:深度学习 的挑战和机遇。很多人都在讨论为什么深 度学习会成功,说起来无外乎来源于机器 学习优化过程的三个方面。

基本上所有的有监督机器学习都是在 最小化所谓的经验风险。在这个最小化的 式子里包含以下三个元素。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

首先对数据 X、Y 而言,深度学习通常 会利用非常大量的数据进行训练。举个例 子,机器翻译的训练数据通常包含上千万 个双语句对,语音识别常常使用几千或者 上万个小时的标注数据,而图像则会用到几百万甚至几千万张有标签的图像进行训 练。前面还提到了下围棋的 AlphaGo,它 使用了 3 000 万个棋局进行训练。可以这么 说,现在主流的深度学习系统动辄就会用 到千万量级的有标签训练数据。这对于十 几年前的机器学习领域是无法想象的。

其次,深度学习通常会使用层次很深、 参数众多的大模型。很多应用级的深层神 经网络会包含十亿或者更多的参数。使用 如此大的模型,其好处是可以具备非常强 的逼近能力,因此可以解决以往浅层机器 学习无法解决的难题。

当然当我们有那么大的数据、那么大的 模型,就不得不使用一个计算机集群来进 行优化,所以 GPU 集群的出现成为了深度 学习成功的第三个推手。

“成也萧何败也萧何”,深度学习受益 于大数据、大模型和基于计算机集群的庞 大计算能力,但这些方面对于普通的研究 人员而言,都蕴含着巨大的挑战。我们今 天要探讨的是如何解决这些挑战。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

首先,让我们来看看大数据。即便在 语音、图像、机器翻译等领域我们可以收 集到足够的训练数据,在其他的一些领域, 想要收集到千万量级的训练数据却可能是 mission impossible。比如在医疗行业,有些 疑难杂症本身的样例就很少,想要获取大 数据也无从下手。在其他一些领域,虽然 有可能获取大数据,但是代价昂贵,可能 要花上亿的成本。那么对于这些领域,在 没有大的标注数据的情况下,我们还能使 用深度学习吗?

其次,在很多情况下,模型如果太大 会超出计算资源的容量。比如,简单计算 一下要在 10 亿量级的网页上训练一个基于 循环神经网络的语言模型,其模型尺寸会 在 100 GB 的量级。这会远远超过主流 GPU 卡的容量。这时候可能就必须使用多卡的 模型并行,这会带了很多额外的通信代价, 无法实现预期的加速比。(GPU 很有意思, 如果模型能塞进一张卡,它的运算并行度 很高,训练很快。可一旦模型放不进一张 卡,需要通过 PCI-E 去访问远端的模型, 则 GPU 的吞吐量会被拖垮,训练速度大打 折扣。)

最后,即便有一些公司拥有强大的计算 资源,同时调度几千块 GPU 来进行计算不 成问题,也并表示这样可以取得预期的加 速比。如果这些GPU卡之间互相等待、内耗, 则可能被最慢的 GPU 拖住,只达到了很小 的加速比,得不偿失。如何保证取得线性 或者准线性加速比,并且还不损失模型训 练的精度,这是一个重要且困难的研究问题。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

接下来我会介绍我们研究组是如何解 决前面提到的有关大数据、大模型、大规 模训练的技术挑战的。为此,我简要介绍 我们最近从事的三项研究工作。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

对偶学习 Dual Learning

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

对偶学习是我们去年年底发表在 NIPS (NIPS是机器学习领域最*的学术会议) 上的一篇论文,发表之后收到了很大的反 响。这篇论文提出了一个听起来很简单的 思路,有效地解决了缺乏有标签训练数据 的问题。那我们是如何做到这一点的呢?

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

我们的基本思路是在没有人工标注数 据的情况下,利用其他的结构信息,建立 一个闭环系统,利用该系统中的反馈信号, 实现有效的模型训练。这里提到的结构信 息,其实是人工智能任务的对偶性。

什么是人工智能任务的对偶性呢?让 我们来看几个例子。比如机器翻译,我们 关心中文到英文的翻译,同时也关心从英 文到中文的翻译。比如语音方面,我们关 心语音识别,同时也关心语音合成。同样, 我们关心图像分类,也关心图像生成。如 此这般,我们发现,很多人工智能任务都 存在一个有意义的相反的任务。能不能利 用这种对偶性,让两个任务之间互相提供 反馈信号,把深度学习模型训练出来呢?

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

这是完全可行的。举一个简单的例子, 比如左边的 Agent 很懂中文,并且想把中 文翻译成英文,他有一点关于英文的基础 知识,换句话说他拥有一个中到英翻译的 弱模型。右边这个 agent 则相反,她精通英 文并想把英文翻译成中文,但只拥有一个 英到中翻译的弱模型。

现在左边的 agent 拿到了一个中文句 子,用他的弱模型将其翻译成了英文,丢 给右边的 agent。右边的 agent 做的第一判 断是她收到的句子是否是个合理的英文句 子?如果从英文语法的角度看,这个句子 乱七八糟的看不懂,她就会给出一个负反 馈信号:之前的中到英的翻译肯定出错了。 如果这个句子从语法上来看没啥问题,她 就会用自己的弱翻译模型将其翻译回中文, 并且传给左边的 agent。同样,左边的 agent 可以通过语法判断这个翻译是否靠谱,也 可以通过这个翻译回来的句子和原本的中 文句子的比较来给出进一步的反馈信号。 双方可以通过这些反馈信号来更新模型参 数。这就是对偶学习,是不是特别简单?

这个过程听起来简单,但真正做起来 不那么容易。因为这个闭环中很多的反馈 信号都是离散的,不容易通过求导的方式 加以利用,我们需要用到类似强化学习中 Policy Gradient 这样的方法实现模型参数的 优化。我们把对偶学习应用在机器翻译中, 在标准的测试数据上取得了非常好的效果。 我们从一个只用 10% 的双语数据训练出的 弱模型出发,通过无标签的单语数据和对 偶学习技术,最终超过了利用 100% 双语数 据训练出的强模型。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

除了前面提到的机器翻译的例子,还有 很多对偶学习的例子,比如说语音信号处 理、图像信号处理、对话等等,都可以做 对偶学习。这几张 PPT 分别展示了在这些 应用里如何定义反馈信号,实现有效的参 数优化。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

其实人工智能任务的对偶性是非常本 质的,用好了在很多地方都会取得意想不 到的结果。它不仅可以帮助我们把无标签数据用起来,还可以显著地提高有标签数 据的学习效果。接下来我们将会展示对偶 学习的各种扩展应用。

首先,有人可能会问,你举的这些例子 里确实存在天然的对偶性,可也有些任务 并没有这种天然的对偶性,那能不能使用 对偶学习技术来改善它们呢?答案是肯定 的。如果没有天然的对偶性,我们可以通 过类似“画辅助线”的方法,构建一个虚 拟的对偶任务。只不过在完成对偶学习之 后,我们仅仅使用主任务的模型罢了。大家 可能也听过这几年很火的 GAN(Generative Adversarial Nets),它就可以看作一种虚拟 的对偶学习。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

其次,还有人可能会问,对偶学习主要 是解决无标签数据的学习问题,那我如果 只关心有监督的学习问题,这个结构对偶 性还有帮助吗?答案也是肯定的。

以前人们在训练一对对偶任务的时候, 通常是独立进行的,也就是各自利用自己 的训练数据来训练,没有在训练过程考虑 到还存在另一个有结构关系的训练任务存 在。其实,这两个训练任务是存在深层次 内在联系的。大家学过机器学习原理的话, 就知道我们训练的分类模型其实是去逼近 条件概率 P(Y|X)。那么一对对偶任务的模 型分别逼近的是 P(Y|X) 和 P(X|Y)。它们 之 间 是 有 数 学 联 系 的:P(X)P(Y|X)=P(Y) P(X|Y)。其中的先验分布 P(X) 和 P(Y) 可 以很容易通过无标签数据获得。

因此,我们在训练两个模型的时候,如 果由它们算出的联合概率不相等的话,就 说明模型训练还不充分。换言之,前面的 等式可以作为两个对偶任务训练的正则项 使用,提高算法的泛化能力,在未知的测 试集上取得更好的分类效果。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

我们把这个正则项应用到机器翻译中, 再次取得了明显的提升,从英法互译的数 据上看,BLEU score 提高了 2 个点。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

同样,加入这个正则项,在图像分类、 图像生成、情感分类、情感生成等方面都取得了很好的效果。我们举个例子,传统 技术在做情感生成的时候,出来的语句是 似然比较大的句子,通常是训练数据里最 多出现的词语和句式。而引入了情感分类 的对偶正则项,生成的句子就会更多地包 含那些明显携带感情色彩的词语。这样生 成的句子就会既有内容、又有情感,效果 更好。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

第三,或许有人还可能会问:如果我无 法改变模型训练的过程,别人已经帮我训练 好了两个模型,对偶性还能帮我改善推断的 过程吗?答案还是肯定的。假设我们之前已 经独立地训练了两个模型,一个叫 f,一个 叫 g(比如 f 是做语音识别的、g 是做语音合 成的),现在要用它们来做 inference。这个 时候,其实前面说的概率约束还在。我们可 以通过贝叶斯公式,把两个对偶任务的模型 联系起来,实现共同的推断。具体细节如图 所示。我们做了大量实验,效果非常好。比 如在机器翻译方面,联合推断又会带来几个 点的 BLEU score 的提升。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...
中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

总结一下,我们认为对偶学习是一个 新的学习范式,它和 co-training、Transfer learning 等既有联系又有区别。它开启了看 待人工智能任务的新视角,应用价值远远 不止前面的具体介绍,如果大家有兴趣可 以跟我们一起挖掘。

轻量级算法 LightRNN

接下来,我们来讨论一下如何处理大 模型的挑战。举个例子,假设我们要利用 clueweb 这样的互联网数据集来训练语言模 型。这种大数据集通常有千万量级的词表, 其中包含很多生僻的人名、地名、公司名, 以及新词、衍生词,甚至是用户输入的错词。 如果使用前面提到的循环神经网络来训练 语言模型,经过非常简单的运算就可以得 出,其模型规模大约 80 G;也就是说你需 要有 80 G 的内存才能放下这个 RNN 模型, 这对于 CPU 不是什么问题,但是对 GPU 而 言就是非常大的挑战了,主流的 GPU 只有 十几二十 G 的内存,根本放不下这么大的 模型。 就算真的可以,以目前主流 GPU 的 运算速度,也要将近 200 年才能完成训练。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

那这个问题怎么解决呢?接下来我们 要介绍的 LightRNN 算法是一种解决的办 法,我相信还有很多别的方法,但是这个 方法很有启发意义。它的具体思路是什么 呢?首先,让我们来看看为什么模型会那 么大,其主要原因是我们假设每个词都是 相互独立的,因而如果有 1 000 万个词,就 会训练出 1 000 万个向量参数来。显然这种 假设是不正确的,怎么可能这 1 000 万个词 之间没有关系呢?如果我们打破这个假设, 试图在学习过程中发现词汇之间的相关性, 就可能极大地压缩模型规模。特别地,我 们用 2 个向量来表达每个词汇,但是强制 某些词共享其中的一个分量,这样虽然还 是有那么多词汇,我们却不需要那么多的 向量来进行表达,因此可以缩小模型尺寸。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

具体而言,我们建立了一张映射表, 在这张表里面每一个词对应两个参数向量 (x 和 y),表里所有同一行的词共享 x, 所有同一列的词共享 y。相应地,我们需要 把 RNN 的结构做一些调整,如下图所示。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

这样我们就可以把一个 80 G 的模型, 压缩到只有 50 M 那么大。这么小的模型, 不仅训练起来很快,还可以随便塞到移动 终端里,实现高效的 inference。

那么有人会问了,前面的 LightRNN 算 法严重依赖于这个二维映射表,可是怎么 才能构建出一个合理的表格,使得有联系 的词共享参数,没有联系的词就不共享参 数呢?其实这是一个经典的问题。假设我 给每个词都已经有一个参数表达,x、y 已 经有了,就可以通过求解一个最优二分图 匹配的问题实现二维映射表的构造。而一 旦有了映射表,我们又可以通过 RNN 的训 练更新参数表达。这是一个循环往复的过 程,最终收敛的时候,我们不但有了好的 映射表,也有了好的参数模型。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

我们在标准数据集上测试了 LightRNN 算法。神奇的是,虽然模型变小了,语言 模型的 Perplexity 竟然变好了。这个效果其 实有点出乎我们的预期,但是却也在情理 之中。因为 LightRNN 打破了传统 RNN 关 于每个词都是独立的假设,主动挖掘了词 汇之间的语义相似性,因此会学到更加有 意义的模型参数。这对 inference 是很有帮助的。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

其实 LightRNN 的思想远远超过语音模 型本身,机器翻译里、文本分类里难道就 没有这个问题吗?这个技术可以推广到几 乎所有文本上的应用问题。甚至,除了文 本以外,它还可以用来解决大规模图像分 类的问题。只要模型的输出层特别大,而 且这些输出类别存在某些内在的联系,都 可以采用 LightRNN 的技术对模型进行简 化,对训练过程进行加速。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

除此之外,模型变小了,对分布式训 练也很有意义。分布式运算的时候,各个 worker machine 之间通常要传递模型或者模 型梯度。当模型比较小的时候,这种传输 的通信代价就比较小,分布式训练就比较 容易取得较高的加速比。

Delay-Compensated ASGD

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

说到分布式训练,我们顺便就讲讲第三 个挑战。我们这里讨论的主要是数据并行, 也就是数据太多了,一台机器或者放不下, 或者训练速度太慢。假设我们把这些数据 分成 N 份,每份放在一台机器上,然后各 自在本地计算,一段时间以后把本地的运 算结果和参数服务器同步一下,然后再继 续本地的运算,这就是最基本的数据并行 的模式。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

数据并行模式有两个常用的做法。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...
中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

同步并行指的是本地将模型更新后发 给参数服务器,然后进入等待状态。直到 所有模型更新都发到参数服务器以后,参 数服务器将模型进行平均和回传,大家再 各自以平均模型为起点,进行下一轮的本 地训练。这个过程是完全可控的,而且在 数学上是可以清晰描述的。但是,它的问 题是由于互相等待,整个系统的速度会被 最慢的机器拖垮。虽然使用了很多机器一 起进行并行运算,但通常无法达到很高的 加速比。为了解决这个问题,异步并行被 大量使用。

所谓异步并行指的是,本地机器各自 进行自己的训练工作,一段时间以后将 模型更新推送到参数服务器上,然后并 不等待其他机器,而是把当前参数服务 器上的全局模型拿下来,以此为起点马 上进行下一轮的本地训练。这个过程的 好处就是快,因为各个机器之间不需要 互相等待,但是训练过程在数学上的描 述是不清晰的,因为包含很多乱序更新, 它和单机串行训练的过程相去甚远,所 以训练的结果没有很好的理论保证,会 受到各个机器之间速度差的影响。我们 用延迟来描述这种速度差。具体来说, 假设我们一共有 10 台机器参与运算,对 于其中的一台机器,当我从参数服务器 上取得一个模型,并且根据本地数据求 出模型梯度以后,在我打算将这个梯度 回传给参数服务器之前,可能其他的机 器已经把它们的模型梯度推送给了参数 服务器,也就是说参数服务器上的全局 模型可能已经发生了多次版本变化。那 么我推送上去的模型梯度就不再适用了, 因为它对应于一个旧模型,我们称之为 延迟的梯度。当延迟的梯度被加到全局 模型以后,可能毁掉全局模型,因为它 已经违背了梯度下降的基本数学定义, 因此收敛性没法得到很好的保障。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

为了解决这个问题,人们使用了很多手 段,包括 SSP、AdaDelay 等等。他们或者 强制要求跑的快的机器停下来等待比较慢 的机器,或者给延迟的梯度一个较小的学习率。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

也有人证明其实这个延迟和 Momentum 有某种关系,只需要调整 momentum 的系 数就可以平衡这个延迟。这些工作都很有 意义,但是他们并没有非常正面地分析延 迟的来源,并且针对性地解决延迟的问题。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

我们研究组对这个问题进行了正面的回答。其实这个事说起来也很简单。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

大家想想,我们本来应该加上这个梯 度才是标准的梯度下降法,可是因为延迟 的存在,我们却把 t 时刻的梯度加到了 t+τ 时刻的模型上去。正确梯度和延迟梯度的 关系可以用泰勒展开来进行刻画:它们之 间的差别就是这些一阶、二阶和高阶项。 如果我们能把这些项有效地利用起来,就 可以把延迟补偿掉。这事看起来好像简单, 做起来却不容易。

首先,泰勒展开在什么时候有意义呢? wt 和 wt+τ 距离不能太远,如果相差太远,那 些高阶项就不是小量,有限泰勒展开就不 准了。这决定了在训练的哪个阶段使用这 项技术:在训练的后半程,当模型快要收敛, 学习率较小的时候,可以保证每次模型变 化不太大,从而安全地使用泰勒展开。

其次,即便是多加上一个一阶项,运算 量也是很大的。因为梯度函数的一阶导数 对应于原目标函数的二阶导数,也就是对 应于海森阵。我们知道海森阵计算和存储 的复杂度都很高,在模型很大的时候,实 操性不强。

那么怎么解决这个挑战呢?我们证明 了一个定理,在特定情况下,Hessen 阵 可以几乎 0 代价地计算出来,而且近似损 失非常之小。具体而言,我们证明了对于 一些特定的损失函数(负对数似然的形 式),二阶导可以被一阶导的外积进行无 偏估计。无偏估计虽然均值相同,方差可 能仍然很大,为了进一步提升近似效果, 我们通过最小化 MSE 来控制方差。做完 之后我们就得到了一个新的公式,这个公 式除了以前的异步的梯度下降以外还多引 入一项,其中包含一个神奇的 Φ 函数和 λ 因子,只要通过调节它们就可以有效地补 偿延迟。

在此基础上,我们进一步证明,使用 延迟补偿的异步并行算法可以取得更好的 收敛性质,其对延迟的敏感性大大降低。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

这一点被我们所做的大量实验验证。 实验表明,我们不仅可以取得线性加速 比,还能达到几乎和单机串行算法一样 的精度。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

到这儿为止我们针对大数据、大模型、 大计算的挑战,分别讨论了相应的技术解 决方案。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...

如果大家对这些研究工作感兴 趣,可以看一下我们的论文,也欢迎 大家使用微软的开源工具包 CNTK 和 DMTK,其中已经包含了我们很多的研 究工作。

中国人工智能学会通讯——迎接深度学习的“大”挑战(下) 1.2 深度学习的挑战和机遇...