促进人际交流:Microsoft 使用 NVIDIA Triton 改善 Translator 翻译工具的 AI 质量和效率

Microsoft 的目标是,通过结合使用 Azure 与 NVIDIA GPU 和 Triton 推理软件,率先将一系列强大的 AI Transformer 模型投入生产用途。
作者 Shankar Chandrasekaran

如果您的软件能唤起人们喜悦的泪水,您就是在传播欢乐。

Translator 是一项 Microsoft Azure 认知服务,通过应用一些规模庞大的 AI 模型来帮助更多人进行交流。

“有太多精彩的故事可以讲了!” Translator 开发经理 Vishal Chowdhary 表示。

比如,在 2010 年海地遭受 7.0 级地震后,在短短 5 天的冲刺期里为相关应用紧急添加海地克里奥尔语支持,进而为救援人员提供帮助。再比如,祖父母在使用这款软件,与讲着他们不懂的语言的远方孙辈进行第一次实时交流时,感动到哽咽。

雄心勃勃的目标

“我们的愿景是,让成千上万的开发者都已经在使用的这个 API,能打破不同语言、不同模式之间的阻碍。” Chowdhary 说。

考量全球现行的语言大约有 7000 种,这真的是个雄心勃勃的目标。

因此,团队采用了一种强大而复杂的工具,即是混合专家系统(MoE)AI 方法。

在推动自然语言处理快速发展进步的 Transformer 模型中,这是非常先进的一种。它具有 50 亿个参数,其规模比团队在生产过程中用于自然语言处理的最大模型大了 80 倍。

MoE 模型涉及到庞大的计算量,很难找到能将其投入生产环境中使用的用户。在初始测试中,基于 CPU 的服务器无法满足团队要在一秒钟内完成翻译一个文档的要求。

27 倍的提速

随后,该团队使用 NVIDIA Triton 推理服务器(本周 GTC 大会上宣布的 NVIDIA AI Enterprise 2.0 平台的其中一部分)在加速系统上进行了测试。

Chowdhary 说:“借助 NVIDIA GPU 和 Triton,我们得以实现这一目标,且非常高效。”

事实上,相较于未经优化的 GPU 运行时,该团队实现了高达 27 倍的提速。

“这让我们可以构建一个模型来执行不同的语言理解任务,例如汇总、生成文本和翻译等,而不必为每个任务开发单独的模型。” 负责监督测试的 Microsoft 首席研究员 Hanny Hassan Awadalla 表示。

Triton 如何提供帮助

Microsoft 的模型能将大型任务(如翻译多个文档)拆分为许多个小任务,在每个小任务中翻译几百个句子。Triton 的动态批处理功能将诸多此类请求整合起来,从而充分利用 GPU 的强大功能。

对于 Triton 使用 CPU、GPU 或其他加速器在各种模式下运行各种模型的能力,让该团队赞不绝口。

Chowdhary 的团队十多年来一直在开发大规模分布式系统。Chowdhary 表示:“这种解决方案周到地考虑了我的工作场景,提供了我想要的各种功能,就像是我给自己亲手定制的解决方案一样。

在幕后,有两个软件组件是 Triton 取得成功的关键。一个是 NVIDIA 扩展型 FasterTransformer,这是一个处理推理计算的软件层,可支持 MoE 模型。另一个是 CUTLASS,这是一个 NVIDIA 数学库,有助于高效实现模型。

在四周内提供已验证的原型

尽管测试十分复杂,但该团队通过与 NVIDIA 工程师合作并运用 Triton 的强大力量,在不到一个月的时间内就获得了可投入正常运转的端到端原型。

“在如此之短的时间内制作出一款达到可发布程度的产品,这样的效率实在令人印象深刻,对此我真的非常感激。” Awadalla 这样说道。

虽然这是该团队第一次使用 Triton,但 “我们使用它来发布 MoE 模型,不用花费太多力气就重新构建了运行时环境,现在我衷心希望在我们的长期托管系统中纳入这款解决方案。” Chowdhary 补充表示。

采取后续措施

加速后的服务将采用审慎的步骤实施,初期会用于少数几种主要语言的文档翻译。

Chowdhary 表示:“我们的最终目标是,让客户能在所有场景中通过透明的方式获享这些新模型的优点。”

这项工作是 Microsoft 的一项涉猎更广泛的计划的一部分。其目的是推动 Office 和 Teams 等众多产品的进步,帮助各类开发者与客户(从专注于打造一款应用的小型公司到财富 500 强企业)取得发展。

为了给这一计划铺平道路,Awadalla 的团队于去年 9 月发表了一项研究成果,介绍如何在 NVIDIA A100 Tensor Core GPU 上训练具有多达 2 千亿个参数的 MoE 模型。自那之后,该团队还在具有超过 3 千亿个参数的模型上使用 80G 版本的 A100 GPU,将性能提升了 8 倍。

Adawalla 表示:“为了更好地表示更多的语言,尤其是我们手头没有太多数据的语言,模型必定会越来越大。”