OpenAI 耳语 是具有 MIT 许可证的高级自动语音识别 (ASR) 模型。 ASR 技术可用于转录服务、语音助手以及增强听力障碍人士的无障碍服务。这种最先进的模型是在从网络收集的庞大且多样化的多语言和多任务监督数据数据集上进行训练的。其高精度和适应性使其成为各种语音相关任务的宝贵资产。
在不断发展的机器学习和人工智能领域, 亚马逊SageMaker 提供了一个全面的生态系统。 SageMaker 使数据科学家、开发人员和组织能够大规模开发、训练、部署和管理机器学习模型。它提供广泛的工具和功能,简化了整个机器学习工作流程,从数据预处理和模型开发到轻松部署和监控。 SageMaker 的用户友好界面使其成为释放 AI 全部潜力的关键平台,使其成为人工智能领域改变游戏规则的解决方案。
在这篇文章中,我们开始探索 SageMaker 的功能,特别关注托管 Whisper 模型。我们将深入探讨实现此目的的两种方法:一种使用 Whisper PyTorch 模型,另一种使用 Whisper 模型的 Hugging Face 实现。此外,我们将对 SageMaker 的推理选项进行深入检查,对速度、成本、有效负载大小和可扩展性等参数进行比较。此分析使用户能够在将 Whisper 模型集成到其特定用例和系统时做出明智的决策。
解决方案概述
下图显示了该解决方案的主要组件。
- 为了在 Amazon SageMaker 上托管模型,第一步是保存模型工件。这些工件是指各种应用程序所需的机器学习模型的基本组件,包括部署和再训练。它们可以包括模型参数、配置文件、预处理组件以及元数据,例如版本详细信息、作者身份以及与其性能相关的任何注释。值得注意的是,PyTorch 和 Hugging Face 实现的 Whisper 模型由不同的模型工件组成。
- 接下来,我们创建自定义推理脚本。在这些脚本中,我们定义如何加载模型并指定推理过程。这也是我们可以根据需要合并自定义参数的地方。此外,您可以在以下位置列出所需的 Python 包:
requirements.txt
文件。在模型部署过程中,这些Python包会在初始化阶段自动安装。 - 然后我们选择由以下公司提供和维护的 PyTorch 或 Hugging Face 深度学习容器 (DLC) AWS。这些容器是预先构建的 Docker 镜像,带有深度学习框架和其他必要的 Python 包。欲了解更多信息,您可以查看此 链接.
- 借助模型工件、自定义推理脚本和选定的 DLC,我们将分别为 PyTorch 和 Hugging Face 创建 Amazon SageMaker 模型。
- 最后,模型可以部署在 SageMaker 上并与以下选项一起使用:实时推理端点、批量转换作业和异步推理端点。我们将在本文后面更详细地探讨这些选项。
此解决方案的示例笔记本和代码可在此处找到 GitHub存储库.
演练
在 Amazon SageMaker 上托管 Whisper 模型
在本节中,我们将分别解释使用 PyTorch 和 Hugging Face 框架在 Amazon SageMaker 上托管 Whisper 模型的步骤。要试验此解决方案,您需要一个 AWS 账户并能够访问 Amazon SageMaker 服务。
PyTorch框架
- 保存模型工件
托管模型的第一个选项是使用 Whisper官方Python包,可以使用安装 pip install openai-whisper
。该包提供了 PyTorch 模型。在本地存储库中保存模型工件时,第一步是将模型的可学习参数(例如神经网络中每层的模型权重和偏差)保存为“pt”文件。您可以选择不同的模型大小,包括“微型”、“基本”、“小型”、“中型”和“大型”。较大的模型大小可提供更高的准确度性能,但代价是推理延迟更长。此外,您还需要保存模型状态字典和维度字典,其中包含一个 Python 字典,将 PyTorch 模型的每个层或参数映射到其相应的可学习参数,以及其他元数据和自定义配置。下面的代码显示了如何保存 Whisper PyTorch 工件。
- 选择DLC
下一步是从中选择预构建的 DLC 链接。选择正确的图像时要小心,考虑以下设置:框架 (PyTorch)、框架版本、任务(推理)、Python 版本和硬件(即 GPU)。建议尽可能使用最新版本的框架和 Python,因为这会带来更好的性能并解决先前版本中的已知问题和错误。
- 创建 Amazon SageMaker 模型
接下来,我们利用 SageMaker Python 开发工具包 创建 PyTorch 模型。创建 PyTorch 模型时请务必记住添加环境变量。默认情况下,TorchServe 只能处理最大 6MB 的文件大小,无论使用何种推理类型。
下表显示了不同 PyTorch 版本的设置:
骨架 | 环境变量 |
PyTorch 1.8(基于TorchServe) | “TS_MAX_REQUEST_SIZE ':'100000000'“ TS_MAX_RESPONSE_SIZE ':'100000000'“ TS_DEFAULT_RESPONSE_TIMEOUT ':'1000' |
PyTorch 1.4(基于MMS) | “MMS_MAX_REQUEST_SIZE ':'1000000000'“ MMS_MAX_RESPONSE_SIZE ':'1000000000'“ MMS_DEFAULT_RESPONSE_TIMEOUT ':'900' |
- 在inference.py中定义模型加载方法
在风俗中 inference.py
脚本中,我们首先检查支持 CUDA 的 GPU 的可用性。如果这样的 GPU 可用,那么我们分配 'cuda'
设备到 DEVICE
多变的;否则,我们分配 'cpu'
设备。此步骤确保将模型放置在可用的硬件上以进行高效计算。我们使用 Whisper Python 包加载 PyTorch 模型。
抱脸框架
- 保存模型工件
第二种选择是使用 拥抱脸的低语 执行。可以使用以下命令加载模型 AutoModelForSpeechSeq2Seq
变压器类。可学习的参数使用以下命令保存在二进制 (bin) 文件中 save_pretrained
方法。分词器和预处理器也需要单独保存,以确保 Hugging Face 模型正常工作。或者,您可以通过设置两个环境变量,直接从 Hugging Face Hub 在 Amazon SageMaker 上部署模型: HF_MODEL_ID
和 HF_TASK
。欲了解更多信息,请参阅此 网页.
- 选择DLC
与 PyTorch 框架类似,您可以从相同的框架中选择预构建的 Hugging Face DLC 链接。确保选择支持最新 Hugging Face 转换器并包含 GPU 支持的 DLC。
- 创建 Amazon SageMaker 模型
同样,我们利用 SageMaker Python 开发工具包 创建拥抱脸模型。 Hugging Face Whisper 模型有一个默认限制,即只能处理最长 30 秒的音频片段。要解决此限制,您可以包括 chunk_length_s
创建 Hugging Face 模型时将参数添加到环境变量中,稍后在加载模型时将此参数传递到自定义推理脚本中。最后,设置环境变量以增加 Hugging Face 容器的有效负载大小和响应超时。
骨架 | 环境变量 |
HuggingFace 推理容器 (基于彩信) |
“MMS_MAX_REQUEST_SIZE ':'2000000000'“ MMS_MAX_RESPONSE_SIZE ':'2000000000'“ MMS_DEFAULT_RESPONSE_TIMEOUT ':'900' |
- 在inference.py中定义模型加载方法
在为 Hugging Face 模型创建自定义推理脚本时,我们利用管道,允许我们传递 chunk_length_s
作为参数。该参数使模型能够在推理过程中有效地处理长音频文件。
探索 Amazon SageMaker 上的不同推理选项
PyTorch 和 Hugging Face 模型选择推理选项的步骤是相同的,因此下面我们不会区分它们。然而,值得注意的是,在撰写本文时, 无服务器推理 SageMaker 的选项不支持 GPU,因此,我们在此用例中排除此选项。
我们可以将模型部署为实时端点,以毫秒为单位提供响应。但请务必注意,此选项仅限于处理 6 MB 以下的输入。我们将序列化器定义为音频序列化器,它负责将输入数据转换为适合部署模型的格式。我们利用 GPU 实例进行推理,从而加速音频文件的处理。推理输入是来自本地存储库的音频文件。
第二个推理选项是批量转换作业,它能够处理高达 100 MB 的输入有效负载。但是,此方法可能需要几分钟的延迟。每个实例一次只能处理一个批量请求,并且实例的启动和关闭也需要几分钟的时间。推理结果保存在 Amazon Simple Storage Service (Amazon S3)批量转换作业完成后的存储桶。
配置批处理变压器时,请务必包括 max_payload = 100
有效地处理更大的有效载荷。推理输入应该是音频文件的 Amazon S3 路径或包含音频文件列表的 Amazon S3 存储桶文件夹,每个文件的大小小于 100 MB。
批量转换按键对输入中的 Amazon S3 对象进行分区,并将 Amazon S3 对象映射到实例。例如,当您有多个音频文件时,一个实例可能会处理 input1.wav,另一个实例可能会处理名为 input2.wav 的文件,以增强可扩展性。批量转换允许您配置 max_concurrent_transforms
增加对每个单独的转换器容器发出的 HTTP 请求的数量。然而,值得注意的是(max_concurrent_transforms* max_payload
) 不得超过 100 MB。
最后,Amazon SageMaker 异步推理非常适合同时处理多个请求,提供适度的延迟并支持高达 1 GB 的输入负载。此选项提供出色的可扩展性,支持为端点配置自动缩放组。当请求激增时,它会自动扩展以处理流量,处理完所有请求后,端点会缩小到 0 以节省成本。
使用异步推理,结果会自动保存到 Amazon S3 存储桶中。在里面 AsyncInferenceConfig
,您可以配置成功或失败完成的通知。输入路径指向音频文件的 Amazon S3 位置。如需更多详细信息,请参阅以下代码 GitHub上.
可选的: 如前所述,我们可以选择为异步推理端点配置自动缩放组,这使其能够处理突然激增的推理请求。这里提供了一个代码示例 GitHub存储库。在下图中,您可以观察到显示两个指标的折线图 亚马逊CloudWatch: ApproximateBacklogSize
和 ApproximateBacklogSizePerInstance
。最初,当触发 1000 个请求时,只有一个实例可用于处理推理。在三分钟内,积压的大小始终超过 XNUMX(请注意,这些数字是可以配置的),自动扩展组通过启动其他实例来有效地清除积压进行响应。这导致了显着下降 ApproximateBacklogSizePerInstance
,使得积压请求的处理速度比初始阶段快得多。
推理选项的比较分析
不同推理选项的比较基于常见的音频处理用例。实时推理提供最快的推理速度,但将有效负载大小限制为 6 MB。这种推理类型适用于音频命令系统,其中用户使用语音命令或口头指令控制设备或软件或与设备或软件交互。语音命令通常尺寸较小,低推理延迟对于确保转录的命令能够及时触发后续操作至关重要。当每个音频文件的大小低于 100 MB,并且对快速推理响应时间没有具体要求时,批量转换非常适合计划的离线任务。异步推理允许上传高达 1 GB 的数据,并提供适度的推理延迟。这种推理类型非常适合转录电影、电视剧和需要处理较大音频文件的录制会议。
实时和异步推理选项都提供自动扩展功能,允许端点实例根据请求量自动扩展或缩小。在没有请求的情况下,自动扩展会删除不必要的实例,帮助您避免与未主动使用的预配置实例相关的成本。然而,对于实时推理,必须保留至少一个持久实例,如果端点连续运行,这可能会导致更高的成本。相比之下,异步推理允许实例体积在不使用时减少到0。配置批量转换作业时,可以使用多个实例来处理该作业,并调整 max_concurrent_transforms 以使一个实例能够处理多个请求。因此,所有三个推理选项都提供了出色的可扩展性。
打扫干净
使用完该解决方案后,请确保删除 SageMaker 端点,以防止产生额外费用。您可以使用提供的代码分别删除实时和异步推理端点。
结论
在这篇文章中,我们向您展示了部署用于音频处理的机器学习模型如何在各个行业中变得越来越重要。以 Whisper 模型为例,我们演示了如何使用 PyTorch 或 Hugging Face 方法在 Amazon SageMaker 上托管开源 ASR 模型。此次探索涵盖了 Amazon SageMaker 上的各种推理选项,提供了有关有效处理音频数据、进行预测和有效管理成本的见解。这篇文章旨在为有兴趣利用 Whisper 模型执行音频相关任务并就推理策略做出明智决策的研究人员、开发人员和数据科学家提供知识。
有关在 SageMaker 上部署模型的更多详细信息,请参阅此 开发者指南。此外,可以使用 SageMaker JumpStart 部署 Whisper 模型。如需了解更多详情,请查看 Amazon SageMaker JumpStart 现已提供用于自动语音识别的 Whisper 模型 帖子。
请随意查看该项目的笔记本和代码 GitHub上 并与我们分享您的评论。
关于作者
侯颖 博士是 AWS 的机器学习原型架构师。她的主要兴趣领域包括深度学习,重点是 GenAI、计算机视觉、NLP 和时间序列数据预测。在业余时间,她喜欢与家人共度美好时光,沉浸在小说中,并在英国国家公园徒步旅行。
- :具有
- :是
- :不是
- :在哪里
- $UP
- 1
- 10
- 100
- 12
- 14
- 16
- 19
- 30
- 32
- 8
- a
- 加速
- ACCESS
- 访问
- 账号管理
- 横过
- 行动
- 积极地
- 加
- 额外
- 另外
- 地址
- 调整
- 高级
- AI
- 目标
- 所有类型
- 允许
- 允许
- 沿
- 还
- Amazon
- 亚马逊SageMaker
- 亚马逊网络服务
- an
- 分析
- 和
- 另一个
- 任何
- 应用领域
- 方法
- 保健
- 地区
- 排列
- 人造的
- 人工智能
- AS
- 财富
- 助理
- 相关
- At
- 音频
- 著作权
- 自动表
- 自动
- 可用性
- 可使用
- 避免
- AWS
- 基地
- 基于
- BE
- 成为
- 如下。
- 更好
- 之间
- 偏见
- BIN
- 都
- 虫子
- 但是
- by
- CAN
- 能力
- 能力
- 小心
- 例
- 更改
- 图表
- 查
- 选择
- 程
- 清除
- 码
- 如何
- 评论
- 相当常见
- 比较
- 比较
- 完成
- 完成
- 组件
- 全面
- 计算
- 一台
- 计算机视觉
- 进行
- 会议
- 配置
- 配置
- 配置
- 考虑
- 始终如一
- 包含
- 容器
- 集装箱
- 一直
- 对比
- 控制
- 转换
- 正确
- 相应
- 价格
- 成本
- 可以
- 中央处理器
- 创建信息图
- 创造
- 关键
- 习俗
- data
- 决定
- 减少
- 深
- 深入学习
- 默认
- 定义
- 证明
- 部署
- 部署
- 部署
- 部署
- 细节
- 详细
- 详情
- 开发
- 开发
- 研发支持
- 设备
- 设备
- 不同
- 区分
- 尺寸
- 直接
- 显示
- 潜水
- 不同
- 码头工人
- 不会
- 做
- 向下
- ,我们将参加
- e
- 每
- 此前
- 生态系统
- 只
- 高效
- 有效
- 毫不费力
- 或
- 其他
- 从事
- 如虎添翼
- enable
- 使
- 使
- 环绕
- 端点
- 端点
- 提高
- 加强
- 确保
- 确保
- 整个
- 环境
- 必要
- 建立
- 醚(ETH)
- 检查
- 例子
- 超过
- 突破
- 优秀
- 实验
- 说明
- 勘探
- 探索
- 面部彩妆
- 失败
- false
- 家庭
- 高效率
- 快
- 最快
- 少数
- 文件
- 档
- 发现
- 姓氏:
- 专注焦点
- 聚焦
- 以下
- 针对
- 格式
- 骨架
- 框架
- Free
- 止
- ,
- GPU
- 图形处理器
- 大
- 团队
- 处理
- 处理
- 硬件
- 有
- 听力
- 帮助
- 这里
- 高
- 更高
- 徒步旅行
- 主持人
- 托管
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- 中心
- 拥抱脸
- i
- 理想
- if
- 说明
- 图片
- 图片
- 履行
- 实现
- 进口
- 重要
- in
- 深入
- 包括
- 包括
- 包含
- 合并
- 增加
- 日益
- 个人
- 个人
- 行业
- 信息
- 通知
- 初始
- 原来
- 引发
- 输入
- 输入
- 可行的洞见
- 安装
- 例
- 实例
- 说明
- 整合
- 房源搜索
- 相互作用
- 兴趣
- 有兴趣
- 接口
- 成
- 问题
- IT
- 它的
- 工作
- 工作机会
- JPG
- 键
- 知识
- 已知
- 景观
- 大
- 最后
- 潜伏
- 后来
- 最新
- 层
- 铅
- 学习
- 最少
- 借力
- 执照
- 局限性
- 有限
- Line
- 清单
- 加载
- 装载
- 本地
- 圖書分館的位置
- 长
- 不再
- 低
- 机
- 机器学习
- 制成
- 主要
- 使
- 制作
- 制作
- 管理
- 管理的
- 地图
- 可能..
- 提到
- 元数据
- 方法
- 方法
- 指标
- 可能
- 毫秒
- 分钟
- 麻省理工学院简介
- ML
- 模型
- 模型
- 中度
- 美好瞬间
- 监控
- 更多
- 电影
- 许多
- 多
- 必须
- 命名
- National
- 国家公园
- 必要
- 需求
- 打印车票
- 网络
- 神经
- 神经网络
- 下页
- NLP
- 没有
- 注意
- 笔记本
- 通知
- 通知
- 注意
- 现在
- 数
- 数字
- 对象
- 对象
- 观察
- of
- 提供
- 提供
- 优惠精选
- 官方
- 这一点在线下监测数字化产品的影响方面尤为明显。
- on
- 一旦
- 一
- 仅由
- 开放源码
- 运营
- 附加选项
- 附加选项
- or
- 秩序
- 组织
- OS
- 其他名称
- 除此以外
- 输出
- 简介
- 包
- 包
- 参数
- 参数
- 公园
- 通过
- 径
- 演出
- 性能
- 相
- 管道
- 关键的
- 放置
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 点
- 可能
- 帖子
- 潜力
- 预测
- 预测
- 防止
- 以前
- 小学
- 过程
- 处理
- 处理
- 处理器
- 项目
- 正确
- 原型
- 提供
- 提供
- 提供
- 优
- 蟒蛇
- pytorch
- 质量
- 范围
- 实时的
- 境界
- 承认
- 建议
- 记录
- 减少
- 参考
- 而不管
- 有关
- 发布
- 纪念
- 去掉
- 移除了
- 知识库
- 请求
- 要求
- 要求
- 必须
- 需求
- 研究人员
- 分别
- 响应
- 回复
- 提供品牌战略规划
- 导致
- 结果
- 成果
- 保留
- 再培训
- 回报
- sagemaker
- 同
- 保存
- 保存
- 保存
- 可扩展性
- 鳞片
- 秤
- 预定
- 科学家
- 脚本
- 脚本
- 其次
- 秒
- 部分
- 中模板
- 选择
- 选
- 选择
- 系列
- 服务
- 特色服务
- 集
- 设置
- 设置
- Share
- 她
- 应该
- 显示
- 作品
- 关闭
- 显著
- 简易
- 简化
- 尺寸
- 尺寸
- 小
- 小
- So
- 软件
- 方案,
- 具体的
- 特别是
- 指定
- 言语
- 语音识别
- 速度
- 花费
- 说
- 开始
- 州/领地
- 国家的最先进的
- 步
- 步骤
- 存储
- 策略
- 随后
- 成功
- 这样
- 突
- 合适的
- SUPPORT
- 支持
- 支持
- 肯定
- 浪涌
- 产品
- 表
- 采取
- 服用
- 任务
- 任务
- 专业技术
- 比
- 这
- 英国
- 其
- 他们
- 然后
- 那里。
- 因此
- 博曼
- 他们
- Free Introduction
- 三
- 次
- 时间序列
- 时
- 至
- 工具
- 火炬
- 交通
- 培训
- 熟练
- 改造
- 变压器
- 变形金刚
- 触发
- 引发
- tv
- 电视剧
- 二
- 类型
- 一般
- Uk
- 下
- 解锁
- 上
- us
- 使用
- 用过的
- 用户友好
- 用户
- 运用
- 效用
- 利用
- 利用
- 有价值
- 折扣值
- 变量
- 各个
- 广阔
- 版本
- 愿景
- 音色
- 语音命令
- 体积
- 等待
- 想
- 是
- we
- 卷筒纸
- Web服务
- 井
- 为
- ,尤其是
- 每当
- 这
- 耳语
- 宽
- 大范围
- 中
- 工作流程
- 合作
- 价值
- 写作
- 您
- 您一站式解决方案
- 和风网