要解决的问题
深度网络的能力很大程度上来自层数和参数的数量,而规模也正是训练代价的来源。训练是一个反复迭代的过程:模型不断看训练样本,衡量输出与目标的差距,再调整参数让误差变小。模型大、数据多的时候,需要做的调整次数非常多,单台机器可能要花很久。这篇论文要回答的问题是:这份计算能不能摊到一组机器上,而不是压在一台机器里。
DistBelief 与两种训练过程
作者开发了一个叫 DistBelief 的软件框架,可以用包含数千台机器的计算集群来训练大模型[1]。
在这个框架之上,论文描述了两条不同的优化路线。第一条是 Downpour SGD,一种异步随机梯度下降(stochastic gradient descent, SGD)过程,支持大量模型副本[1]。随机梯度下降是用小批数据而不是整个数据集来调整参数的标准做法;这里的「异步」把它与要求每个模型副本严格同步前进的做法区分开来。第二条是 Sandblaster,一个支持分布式批优化过程的框架,其中包括 L-BFGS 的分布式实现[1]。L-BFGS 属于拟牛顿方法一类,利用近似的曲率信息来决定参数往哪个方向走,通常作用在一整批数据上,而不是小样本上。
准备两种过程是有意义的:这两类优化对网络和对集群的要求不同,论文分别报告了它们如何在大规模下跑起来[1]。
实验得到了什么
作者说他们训练了一个比此前文献中报道过的网络大 30 倍的深度网络[1]。论文还报告了在 ImageNet 上的当前最优性能,文中把这个任务描述为包含 1600 万张图像、2.1 万个类别[1]。除这个基准之外,作者说同样的技术大幅加快了一个规模较小的深度网络的训练,这个网络用于一个商业语音识别服务[1]。两件事放在一起,覆盖的其实是相当不同的两种情形:一种是刻意推到极端的规模,一种更接近真正要交付的服务。
发表
Google Research 关于这篇论文的页面说,它将在美国内华达州太浩湖(Lake Tahoe)举行的 NIPS 2012 上发表[2]。作者是 Jeffrey Dean、Greg S. Corrado、Rajat Monga、Kai Chen、Matthieu Devin、Quoc V. Le、Mark Z. Mao、Marc'Aurelio Ranzato、Andrew Senior、Paul Tucker、Ke Yang 和 Andrew Y. Ng[1]。
为什么重要
论文把两件常被混在一起的事分开了:模型能有多大,和单台机器有多快。它给出了一个横跨数千台机器的框架,报告了一个远大于此前已发表工作的模型,并同时给出了一个通用基准上的结果和一个生产语音任务上的结果,从而把深度网络的分布式训练摆成一项工程上可做的事情,而不只是一个设想[1]。文中提出的两种优化过程——基于大量副本的异步随机梯度下降,以及分布式的批优化器——对应的是「训练必须由许多机器分担」时始终绕不开的设计取舍。
注释与来源
- Large Scale Distributed Deep Networkshttps://papers.nips.cc/paper/4687-large-scale-distributed-deep-networks
- Large Scale Distributed Deep Networkshttps://research.google.com/archive/large_deep_networks_nips2012.html
引用本页: 大规模分布式深度网络. TellWorld, https://www.tellworld.net/zh/papers/large-scale-distributed-deep-networks-2012. 更新于 2026-11-07