跳到正文
AWS Machine Learning Blog· Belair Albahagwi·· 5 小时前AI 评分51

AssemblyAI 如何用 Amazon EC2 Spot 优化语音转文字推理成本

Cost-optimizing AssemblyAI speech-to-text inference on AWS with Amazon EC2 Spot

AI 导读

AWS 官方博客介绍了 AssemblyAI 在 Amazon ECS 上混合使用 EC2 Spot 与 On-Demand GPU 实例运行语音转文字推理的架构,相比 On-Demand 实现了 70% 的推理计算成本节省。

正文 · AI 翻译

译文尚不完整,完整内容请切换到原文。

语音转文字的推理在计算上非常密集。每个音频文件都会触发一条在 NVIDIA GPU 上运行的深度学习模型流水线(声学模型、语言模型和后处理阶段),以满足延迟要求。在大规模场景下,这意味着数千个 GPU 实例持续运行。

AssemblyAI 需要一种能够以经济高效的方式大规模运行 GPU 密集型推理工作负载的方法,同时不牺牲客户所依赖的可用性和延迟保障。完全使用按需实例运行将带来难以承受的成本。Spot 实例能带来显著的成本节省,但当其他地方需要容量时,Amazon Elastic Compute Cloud (Amazon EC2) 可以在提前 2 分钟通知的情况下回收这些实例。AssemblyAI 需要一种能够从容应对 Spot 中断、同时维持服务水平协议 (SLA) 承诺的架构。此外,医疗、金融和法律等受监管行业的客户必须将音频数据保留在特定的地理边界内。他们在欧洲的 AWS 区域实施了严格的数据驻留配置。

AssemblyAI 可在 AWS Marketplace 上获取,它提供用于转录、说话人识别、情感分析、章节检测和个人身份信息 (PII) 脱敏的 API。其模型可为科技、媒体、医疗和金融服务等行业的大批量工作负载转录和分析语音。

在这篇文章中,我们将向你展示 AssemblyAI 如何在其语音转文字平台上以经济高效的方式大规模运行 AI 推理。该架构使用了 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Compute Cloud (Amazon EC2) Spot 实例和 Amazon Simple Queue Service (Amazon SQS)。这些服务共同结合了灵活的 NVIDIA GPU 集群、ECS 容量提供程序以及基于队列的重试机制。其结果是在欧洲各 AWS 区域维持 SLA 承诺的同时实现了显著的成本节省。

解决方案概览

AssemblyAI 的推理平台运行在 Amazon ECS 上,计算容量通过 ECS 容量提供程序进行管理。该集群混合使用 Amazon EC2 Spot 实例和按需实例,涵盖多个 NVIDIA GPU 实例系列,每个 GPU 运行一个推理模型,规模达到数千个实例。该架构建立在四大支柱之上,协同实现经济高效且富有弹性的推理:

  1. Amazon ECS 容量提供程序混合使用 Spot 实例和按需实例。
  2. 跨 EC2 实例类型的多系列 GPU Spot 多样化(例如 g4dn.xlarge、g4dn.2xlarge、g5.xlarge、g5.4xlarge 和 g6.2xlarge)。
  3. 使用 Amazon SQS 实现基于队列的重试架构,用于中断恢复。
  4. 跨美国西部(俄勒冈)us-west-2 和欧洲(伦敦)eu-west-2 进行区域部署,以满足数据驻留合规要求。

下图展示了该解决方案的部署方式:

AssemblyAI inference architecture: Amazon ECS GPU Spot tasks poll an Amazon SQS queue, an AWS Lambda function returns interrupted jobs, and Amazon CloudWatch monitors the fleet

图 1:AssemblyAI 在 Amazon ECS 上结合 Amazon EC2 Spot GPU 实例和基于 Amazon SQS 的重试机制的推理架构

一个 Amazon ECS 集群运行在跨多个可用区的虚拟私有云 (VPC) 中。该集群托管由 GPU 支持的 ECS 任务(显示为 ECS Task, GPU Spot 1 和 ECS Task GPU Spot 2),这些任务轮询队列并处理推理作业。每个任务从 Amazon Simple Storage Service (Amazon S3) 获取音频文件,并将完成的转录写入结果存储,AssemblyAI 通过配置该结果存储将输出交付给最终客户。

当 Spot 实例收到中断通知时,Amazon EventBridge 会调用 Spot Interruption Handler(一个 AWS Lambda 函数)。该处理程序将正在处理的任务返回到主任务 SQS 队列,以便另一个健康的 ECS 任务可以接手处理。客户可以将系统配置为把重试次数耗尽的任务路由到死信 SQS 队列以供调查。Amazon CloudWatch Metrics 监控队列的健康状况和 Spot 中断事件,为整个系统提供可观测性。

Amazon ECS 容量提供商与 Spot 多样化

为了在不影响可靠性的前提下优化推理成本,AssemblyAI 在每个 ECS 集群的单一容量提供商策略中配置了多个容量提供商。按需容量提供商作为始终在线的基础,而 Spot 容量提供商跨越不同的 GPU 实例系列和可用区来应对需求高峰。每个容量提供商与一个 Amazon EC2 Auto Scaling 组相关联。Amazon ECS 托管扩缩根据容量提供商的权重和待处理的推理任务自动扩展 GPU 实例。当任务队列增长时,Spot 容量提供商从多样化实例池中请求更多实例。当需求下降时,实例会平稳缩容。

最有效的 Spot 最佳实践之一是灵活使用多种实例类型,以增加获得所需总算力容量的机会。AssemblyAI 的基础设施并未依赖单一的 GPU 实例系列,而是跨越了三个 Amazon EC2 GPU 实例系列:

  1. g4dn 实例 – 由 NVIDIA T4 GPU 驱动,为标准语音识别模型提供经济高效的基础。
  2. g5 实例 – 配备 NVIDIA A10G GPU,为更高要求的模型架构提供更高的吞吐量。
  3. g6 实例 – 采用 NVIDIA L4 GPU,为包括基于大语言模型的推理在内的更大模型提供更高的性价比。

通过将需求分散到不同的实例系列和规格上,AssemblyAI 可以从规模大得多的可用 Spot 容量池中获取资源。借助 price-capacity optimized 分配策略,Amazon EC2 会以最低价格从可用容量最高的 Spot 容量池中预置实例,从而降低中断的可能性。

基于队列的重试机制以实现中断韧性

在 Spot 中断期间保持服务质量是一项核心设计要求。AssemblyAI 使用 Amazon SQS 将任务提交与执行解耦。当转录请求到达时,它会被放入一个 Amazon SQS 队列。在 GPU 实例上运行的 Amazon ECS 任务会轮询队列、拉取任务并执行推理流水线。单个任务通常耗时 15 秒到几分钟不等,具体取决于音频长度。

当 Spot 实例收到 2 分钟中断通知时,重试流程如下:

  1. 能够在 2 分钟窗口内完成的进行中任务会正常完成。需要更长时间的任务会被返回到 Amazon SQS 队列,并立即对其他工作节点可用。
  2. 另一个健康的 GPU 实例会接手该消息(可能在不同的实例类型或不同的可用区上),并完成推理。

为了缩短恢复时间,AssemblyAI 创建了包含模型产物和容器镜像的自定义 Amazon Machine Images(AMIs),耗时约 2 分钟。对最终客户而言,Spot 中断的影响只是处理时间略有增加,但转录仍能成功完成并按预期交付。

面向数据驻留的区域部署

在多个 AWS 区域运行使 AssemblyAI 能够支持受监管行业的客户,包括医疗保健、金融服务和法律服务行业,这些行业的音频数据绝不能离开特定的地理边界。每个 AWS 区域运行一套完全独立的推理架构副本:拥有自己的 Amazon SQS 队列、Amazon ECS 集群、容量提供商和 GPU 集群。这些欧洲区域提供多种 GPU 实例系列(g4dn、g5、g6),且具有有竞争力的 Spot 价格。这种实例多样性在满足严格的数据驻留要求的同时,支持可靠的基于 Spot 的推理服务。

成果

通过在生产环境中运行带 GPU 的 Amazon EC2 Spot 实例,AssemblyAI 相比按需定价在推理计算上节省了 70% 的成本。随着平台的计算需求同比增长近 4 倍,基于 Spot 的架构使单位经济效益保持可持续。在这种规模下运营,AssemblyAI 总结出:跨实例系列和规格进行多样化是降低 Spot 中断率最有效的手段。g4dn、g5 和 g6 系列使用的是相互独立的容量池,因此当某个系列出现容量压力时,其他系列仍可用。从第一天起就通过基于队列的重试和快速预热设计容错能力,使 Spot 中断成为常规事件,同时保持 SLA 承诺。

结语

运行具有类似特征的批处理或近实时 AI 工作负载(在 GPU 计算上运行短时、可独立重试的任务)的团队可以采用这种模式。首先要对实例系列进行多样化,并构建基于队列的容错机制,以便在不牺牲可用性的情况下充分利用经济高效的 Spot 基础设施。

To get started with GPU tasks on Amazon ECS, see Amazon ECS for GPU workloads. To evaluate Spot availability for your workload, explore using Spot placement scores for accelerated compute and Amazon EC2 Spot Instances best practices. AssemblyAI’s Speech-to-Text API is available on AWS Marketplace. To learn more about their platform, visit assemblyai.com.


关于作者

来源: AWS Machine Learning Blog · aws.amazon.com