天猫精灵智能引擎团队、智能合成团队与 NVIDIA 团队合作,通过利用 NVIDIA TensorRT 加速流式语音合成(Text-to-Speech,以下简称 TTS)深度学习模型,并借助 NVIDIA Triton 推理服务器在 NVIDIA T4 GPU 上进行高效部署,帮助阿里巴巴天猫精灵流式 TTS 服务将吞吐提升 50%,首包延时降低 35%,大幅提升服务运行效率,提升资源利用率。
天猫精灵(Tmall Genie)是阿里巴巴消费者人工智能一级公司,于 2017 年 9 月发布第一代天猫精灵智能终端 X1。让用户以自然语言对话的交互方式,实现影音娱乐、购物、信息查询、生活服务等功能操作,成为消费者的家庭助手。目前,天猫精灵已经服务超过 3000 万中国家庭,在三方权威统计中不仅智能音箱产品出货量排名中国前列,其产品并已可连接 3 亿以上的家庭 AIoT 生态设备。
除了智能音箱终端产品外,天猫精灵推出 AliGenie 开放平台,旨在构建基于 AI 的多模态交互及服务系统,为多种云应用提供跨系统服务能力,实现端云协同、跨平台多终端快速接入。该开放平台提供高性能且高质量的语音 AI 能力,包括多种不同音色的高度拟人、高度流畅的语音合成算法等。
此外,天猫精灵基于 AliGenie 开放平台,还提供基于芯片/模组的硬件解决方案,以及通用的热门行业解决方案。专注生活多个领域,提供一站式解决方案。
本案例中负责实施的是天猫精灵智能引擎团队以及天猫精灵智能合成团队。天猫精灵智能合成团队负责语音合成等生成式算法的研究及开发;天猫精灵智能引擎团队主要支撑天猫精灵业务线各项业务的工程化落地,如语音识别、语义理解、语音合成、图像处理等 AI 核心场景。
流式 TTS 是天猫精灵工作流中最为重要的 AI 环节之一。在这一场景中,天猫精灵智能引擎团队面临着如下挑战:
首先流式 TTS 对于首包延时有着严格要求,否则用户将会因为较长的反馈迟滞而感到不适,这就要求 TTS 工作管线的每个模块的推理能够高效地执行。
另一方面,团队希望 TTS 服务的吞吐能够达到较高水平,这就需要在服务端对收到的多个流式合成请求进行 Batching 的处理。但流式 TTS 工作管线包含声学模型和声码器等多个模块,在 GPU 上进行 Batching 操作需要正确维护和切换每个合成请求所需的模型状态,因此需要特别设计工作管线和调度逻辑。
最后,如何尽可能提升 GPU 资源利用率是降本增效的关键。最直接的思路便是在一张 GPU 上部署多个模型来提升利用率。因此,如何在同一张 GPU 上对多个模型进行高效的调度和管理也成为了一个挑战。
基于以上挑战,天猫精灵智能引擎团队、智能合成团队与 NVIDIA 解决方案架构团队合作,采用NVIDIA TensorRT对模型进行推理加速,并利用NVIDIA Triton 推理服务器在 T4 GPU 上进行在线部署,形成了一套高效的流式 TTS 推理部署方案。在提升用户体验的同时,大幅降低了服务成本。
首先,该方案使用 TensorRT 对流式 TTS 工作管线中的每一个模型进行优化加速。我们将训练好的声学模型和声码器,导出为 ONNX 模型格式,再使用 TensorRT 将 ONNX 模型转换为最优化的 TensorRT Engine。使用 TensorRT 加速的 TTS 模型,能显著提升推理执行的速度,从而尽可能压缩首包延时。
另一方面,天猫精灵智能引擎团队与 NVIDIA 团队合作设计并实现了一种基于 Triton 的流式 TTS 推理部署管线。在该方案中,我们使用 Triton Custom Backend 实现串联 TTS 各个模型的调度管线。对于管线中的每一步推理处理,会调用部署在 Triton 上的 TTS TensorRT Engine。如此一来,Triton 便可将发送到服务端的 TTS 请求,有条不紊地调度到管线中的每个模块进行推理执行。并且,在该管线中,我们实现了适用于 GPU 平台的流式 TTS 高效调度机制,通过在服务端 Custom Backend 中维护每个合成请求的状态,实时地将模型输入和状态动态聚合为对 GPU 友好的 Batch,交由管线中各个模块的 TensorRT Engine 进行推理,从而大幅提升管线吞吐和 GPU 利用率,同时保证了对每个合成请求的快速响应。此外,流式 TTS 中一句话的合成请求会对应多个回包,每个回包承载一个音频块。针对这种一收多发的推理模式,我们利用 Triton 提供的 Decoupled Responses 机制,保证一个请求的多个回包能够正确高效地发送给对应的客户端,使用户能听到完整且流畅的音频。
最后,为了进一步提升 GPU 资源利用率,该方案利用了 Triton 的 Concurrent Model Execution 特性。该特性将部署在 Triton 上的模型或模块,以模型实例的方式管理:一个模型可以部署多个实例,不同模型的实例也可部署在同一GPU上。因此该方案开启了 Concurrent Model Execution 后,同一个 T4 GPU 上可部署多个 TTS 发音模型,使得多个模型实例的推理在 GPU 算力资源充足时可以达到并行执行。如此一来,GPU 算力资源可以被多个模型的并行执行充分利用起来,达到降本增效的目的。
通过使用基于 NVIDIA TensorRT 和 Triton 推理服务器的流式 TTS 推理部署方案,天猫精灵 TTS 服务的吞吐提升约 50%,首包延时降低约 35% ,帮助天猫精灵节省了业务成本,提升了用户体验。
全部0条评论
快来发表一下你的评论吧 !