如果您是 Android Galaxy 手机用户,可能已经熟悉 Bixby,这是三星电子的智能语音助手,全球超过 1.6 亿部设备使用 Bixby,支持九种语言。今天,我们宣布,利用 Cloud TPU,Bixby 的语音识别模型已经将训练速度提高 18 倍。


Bixby 和其他语音助手采用自动语音识别 (ASR) 将口语转录成文本。虽然这项技术自诞生以来已经取得了长足进步,但它仍然不够完美。至关重要的是,能够多次对 ASR 模型进行反复训练以尽最大可能确保准确性。作为 Google Cloud 的合作伙伴,三星使用 Cloud TPU —— Google Cloud 的内置 ML 处理器,更快地训练其 ASR 模型,并最终提升 Bixby 的准确性。


三星电子移动通信业务 AI 开发集团副总裁 KG Kyoung-Gu Woo 指出:“Google Cloud 优享服务计划 (Premium Support) 让三星电子受益匪浅 —— 服务以本地语言并由区域技术客户经理提供。通过与 Support 和 TAM 合作,我们能够改进我们的技术,同时将处理时间缩短至半天。我们相信,协作是为消费者提供受其欢迎的全新移动体验的关键。”

训练数据越多越好


多年来,深度神经网络和隐马尔可夫模型 (DNN-HMM) 混合 ASR 系统架构被作为许多语音转文本服务(包括上一代 Bixby)的标准方法。DNN-HMM 系统将声学、发音和语言模型融入语音识别管道。不过,训练流程非常复杂,这使整体准确性难以被优化。


为了克服 DNN-HMM 混合 ASR 系统的局限性,Bixby 团队决定采用先进的端到端深度学习方法来改造其引擎。利用基于 Transformer 架构的单一深度神经网络模型,新的引擎不仅具有简化的训练流程,而且还可访问大量的训练数据。


不过,系统的这种转变也意味着新的挑战。需要新的实验和调整能够达到与以前系统相当的准确性。此外,快速训练迭代对于使现有服务保持最新同时拓展新语言起着至关重要的作用。为了在吸收日益增多的训练数据的同时满足这些要求,Bixby 团队决定探索采用 Cloud TPU。

基于 Cloud TPU 优化性能


早在 2013 年,Google 就认识到,我们的现有 CPU 和 GPU 基础架构可能无法跟上 AI 日益增长的计算需求,因此,我们决定专门为此构建一种全新的芯片。张量处理单元 (Tensor Processing Unit, TPU) 应运而生,并且 2015 年在 Google 数据中心部署。自那时起,我们已开发了几代新的 TPU 芯片以及称为 TPU Pod 的大型超级计算系统,该系统将数以千计的 TPU 芯片连接在一起,构成世界上最快的 ML 训练超级计算机。


我们还通过 Google Cloud,以包含最多 2,048 个内核和 32 TiB 内存的高度可扩展的 Cloud TPU 配置,提供 TPU 和 TPU Pod。现在,Cloud TPU 使 ML 研究人员和工程师能够构建更加强大和准确的模型,为企业赋能来将其 AI 应用更快地推向市场 —— 进而节省宝贵的时间和成本。


为了充分发挥 Cloud TPU 的优势,Bixby 团队的工程师使用了 Cloud TPU Profiler —— TensorBoard 插件,这对于在 Cloud TPU 中优化性能至关重要。使用 TPU Compatibility(TPU 兼容性)视图,他们能够识别与 TPU 不兼容的操作并将其替代为可用的 TensorFlow 操作,以实现更高的利用率。作为参考点,我们还提供了已经过优化、可基于 TPU 运行的正式支持的模型。


当然,TensorFlow 并不是我们唯一要支持的生态系统。您现在也可以使用在去年九月份已普遍可用的 PyTorch / XLA 集成在 Cloud TPU 上运行 PyTorch 模型。如果您对可能发挥 TPU 潜能的其他平台感兴趣,还可以去了解 JAX,它将 Python、自动微分和 XLA 整合在一起,以支持灵活、有趣和高效的 ML 研究。

与 Google 共同应对技术挑战


Bixby 团队从 GPU 向 TPU 迁移似乎进展顺利,但当使用经 TPU 训练的模型基于 GPU 进行测试时,Bixby 团队遇到了一个奇怪的问题。尽管模型在 TPU 上一切正常,但基于 GPU 运行推理时,模型开始重复。例如,“Hi Bixby,今天天气如何?”被转录为“Hi Bixby,今天天气如何?Hi Bixby,今天天气如何?”


在 ML 项目中类似这样的技术问题往往非常难以诊断排除,因为并不总是很明确问题是出在代码、平台、基础架构还是数据中。Bixby 团队向 Google Cloud 提出了支持请求。在与 客户工程师、TPU产品团队和 Google Brain共同努力后,我们找到了问题的根本原因。


尽管类似 Bixby ASR 引擎的序列模型能够处理可变长度的输入数据,但针对 TRU 的 XLA 编译目前有一项要求 —— 所有张量大小在图形构建时必须已知。由于这种差异,基于 TPU 训练的模型在每个输入音频序列后需要一个长的填充,当在 GPU 中该填充被缩短或者删除时可能导致无法可靠预测句子的结尾。因此,不能完成句子,而是反复重复相同的短语。


找到根源后,这一问题很快得以解决。Bixby 团队决定通过在每个输入音频的结尾引入额外的填充,在基于 GPU 的推理过程中模拟 TPU 环境。无需对训练代码进行任何修改,这使得其新模型能够在 GPU 中正确预测句子的结尾 —— 从而成功解决了重复问题。

借助 Google Cloud 促进创新


由于迁移至 TPU,Bixby 将训练速度提高了 18 倍 —— 凭借 64 个内核的Cloud TPU (v3),在采用 8 个 GPU 的客户本地训练环境中 180 小时的训练被缩短至 10 个小时。这导致实验的迭代速度大幅加快,帮助团队成功过渡至新的端到端架构,词错误率降低 4.7%、模型规模缩小十分之一、推理快 11 倍。

相关推荐