2016 年 2 月,百度发布了一部篇幅紧凑、标题主张却极为宏大的短片:Deep Speech:用同一种算法识别英语与普通话。十年后,最容易出现的一种误读,是把“同一种算法”理解成一个可以自由切换语言的双语模型。实际成果有着清楚的范围:百度分别使用独立语料,训练了英语识别器和普通话识别器。跨语言迁移的是架构与训练方法。即时双语更富戏剧性,这套复用方法对工程实践的影响却深远得多。[1][2]
时间节点同样重要。2015 年 6 月,百度研究员 Awni Hannun 仍把语音识别称为一项尚待解决的问题,带噪声、带口音的自然语音尤其棘手。他把第一代 Deep Speech 系统描述成一种更简洁的替代方案,对照的是传统自动语音识别中层层叠加的声学模型、发音词典和对齐流程。[5] 到 2015 年 12 月,Deep Speech 2 论文已把这套方法扩展到普通话;官方视频随后于 2016 年 2 月 9 日发布。三天后,IEEE Spectrum 报道称,该系统开始向北京部分用户推出。[1][2][4]
这部短片至今仍值得观看,原因正在这里。把焦点放在机器普遍超越人类听觉,会错过它最经得起时间检验的观点:团队从一种语言进入另一种构造迥异的语言时,仍可沿用识别器所依赖的基本设计。影片用清晰的前后对照浓缩了这项论证,书面记录则标出了理解它所需的限制。
约 0:16,“一种算法”指向可复用的流程
影片进入背景介绍时,可以同时参照百度配套技术说明中的一张图。英语识别器生成由 29 个符号组成的字母表;普通话版本则把输出层扩展到约 6,000 个常用简体汉字。高层架构的其余部分基本沿用原样。[3] 语言专用的重新设计由此大幅减少,相关工作依然存在。
共享核心从声谱图开始处理声音,省去了专为英语语音学手工设计特征的步骤。经由连接主义时序分类(connectionist temporal classification,CTC)训练的循环神经网络,学会把声学输入序列直接映射成字符序列,人工音素词典和逐帧音素对齐也随之退出这一过程。[2][3] 普通话文本通常连续书写,词间没有空格;直接输出汉字也省去了先为词语起止位置建立统一定义的要求。[3]
解码时,系统仍采用字符级语言模型,也仍需要配有普通话转写文本的普通话语音。论文列出的普通话训练数据为 9,400 小时、1,100 万段话语,英语训练数据则为 11,940 小时、800 万段话语。[2] “端到端”减少了若干手工衔接步骤;数据采集、解码、评估和应用适配依旧需要完成。可移植性的成果落在一套可复用的学习栈上,机器仍然依附于具体语言。
这一区分,是影片给今天模型发布留下的第一条实用启示。架构可以通用,权重、数据、输出词表与部署调优仍需按语言和应用环境分别处理。把两者统称为“模型”,会让真正发生移动的界线变得模糊。
约 1:15,人机比较要带上测试条件
结果部分给出影片最醒目的时刻:在选定的普通话测试数据上,Deep Speech 2 的转写错误率低于人类转写者。配套说明给出了准确的适用范围。在随机抽取的 100 条简短、类似语音查询的话语上,由五名中文使用者组成的小组取得 4.0% 的字符错误率,系统则为 3.7%。另一组测试包含 250 条话语,一名人类转写者的错误率为 9.7%,系统为 5.7%。[2][3]
这些数字有力说明了系统在该任务上的表现,适用范围也止于该任务。若把它们读成开放条件下识别器对普通话的理解优于人类,证据便越出了测试范围。样本来自百度内部语料,两组测试集规模有限;指标只统计字符错误,理解能力不在测量范围内。百度自己的技术说明明确提醒,若语音范围更广,尤其允许使用上下文信息,人类的表现“几乎肯定”会更好。[3]
同一篇论文中的英语结果,从另一个方向显出这项限制。在干净的朗读语音数据集上,Deep Speech 2 的成绩与众包转写人员相当;到了大多数带口音或噪声的语音评估,人类仍明显占优。[2] 所谓“达到人类水平”,只出现在由特定数据集、噪声条件、转写协议、错误计量单位和对照群体共同限定的环境里。
这套评估纪律的适用范围远远超出语音识别。benchmark 的领先只有连同任务条件一起呈现,才具有充分的信息量。拿掉这些条件,局部结果便会扩张成普遍口号。
大部分系统工程留在镜头之外
影片的简洁,也把让研究真正可用的工业工程藏在镜头之外。循环神经网络只是 Deep Speech 2 的一部分。团队优化了多 GPU 训练,编写了速度更快的 GPU 版 CTC,在加速器之间开展分布式同步训练,还开发了 Batch Dispatch 调度器,把实时请求分组,在吞吐量与延迟之间取得平衡。[2] 论文在一块指定 GPU 运行十路流测试负载时,记录到 44 毫秒的中位延迟。这项数字对应指定配置下的神经网络评估过程,无法当作无条件的端到端产品延迟承诺。[2]
进入生产环节,面向具体应用的适配再次出现。研究者发现,即使系统已经用超过 10,000 小时的普通话语音训练,加入 500 小时的应用专用语音,仍能带来明显改善。他们还需要应用专用语言模型,以及处理数字格式等书写惯例的后处理。[2] 系统折叠了旧流程中的一部分,外围的产品工作依旧存在。
IEEE Spectrum 2016 年探访百度实验室的报道,为这次从研究到产品的交接补上一幅现场画面。实验室当时约有 60 名人工智能研究员。吴恩达描述的组织方式,是把工作从基础研究一路推进到部署,避免把论文“隔墙扔过去”。[4] Deep Speech 2 从论文走到北京用户的过程,早早展示了这种运作方式。
第二次观看时,可以留意什么
留意影片如何迅速地从普通话的难点移向架构上那处小小的可见变化,再由这项变化移向结果。这种浓缩很有说服力,可移植性在回望中成了顺理成章的一步;身处当时,答案远没有如此清楚。团队需要先找出哪些抽象真正适用于英语和普通话,再承担让它们运行起来所需的庞大数据与算力成本。[1][2][3]
放在 AI-China 的脉络里,长久留下的信号是一套降低进入新语言领域成本的方法。Deep Speech 2 表明,共享架构可以替代大量面向特定语言的特征工程和词典工程。它也清楚标出通用性的终点:语料构建、输出词表、语言模型解码、应用数据,以及测试集的适用范围。沿着这条线索观看,“机器战胜人类”的褪色奖杯和轻松抵达普适性的预言都退到画外,留下的是一份精确的历史记录:技术栈里有一层开始可以移植,其余各层仍留在原地。[2][3]
来源
- Baidu Inc.,“SVAIL Tech Notes: Deep Speech: Recognizing Both English and Mandarin with a Single Algorithm”,YouTube 官方视频(2016 年 2 月 9 日)。
- Dario Amodei 等,“Deep Speech 2: End-to-End Speech Recognition in English and Mandarin”,Proceedings of Machine Learning Research,第 48 卷(ICML 2016)——架构、数据集、评估限制与部署系统。
- Ryan J. Prenger、Tony Han,“Around the World in 60 Days: Getting Deep Speech to Work in Mandarin”,百度硅谷人工智能实验室技术说明(2016 年 2 月)。
- Tekla S. Perry,“Checking in with Andrew Ng at Baidu's Blooming Silicon Valley Research Lab”,IEEE Spectrum(2016 年 2 月 12 日)——实验室背景、北京上线报道,以及百度照片的来源页面。
- Stanford Computer Forum,“Deep Speech, a Deep Learning based speech recognition system”,Awni Hannun 学术报告摘要(2015 年 6 月 5 日)。