这是我们系列的第 3 部分,我们设计并实现了用于边缘视觉质量检查的 MLOps 管道。 在这篇文章中,我们重点关注如何自动化端到端 MLOps 管道的边缘部署部分。 我们向您展示如何使用 AWS IoT Greengrass 管理边缘的模型推理以及如何使用自动化该过程 AWS步骤功能 和其他 AWS 服务。
解决方案概述
In 部分1 在本系列中,我们为端到端 MLOps 管道设计了一个架构,该架构可以自动化整个机器学习 (ML) 流程,从数据标记到模型训练和边缘部署。 在 部分2,我们展示了如何自动化管道的标签和模型训练部分。
本系列使用的示例用例是视觉质量检测解决方案,可以检测金属标签上的缺陷,您可以将其部署为制造过程的一部分。 下图显示了我们在本系列开头定义的 MLOps 管道的高级架构。 如果您还没有阅读过,我们建议您查看一下 部分1.
自动执行 ML 模型的边缘部署
机器学习模型经过训练和评估后,需要将其部署到生产系统中,以通过对传入数据进行预测来产生业务价值。 在边缘环境中,这个过程很快就会变得复杂,因为模型需要在通常远离训练模型的云环境的设备上部署和运行。 以下是边缘机器学习特有的一些挑战:
- 由于边缘设备的资源限制,机器学习模型通常需要优化
- 边缘设备无法像云中的服务器一样重新部署甚至替换,因此您需要强大的模型部署和设备管理流程
- 设备和云之间的通信需要高效且安全,因为它经常穿越不受信任的低带宽网络
让我们看看除了以 ONNX 格式导出模型之外,我们如何使用 AWS 服务应对这些挑战,例如,这使我们能够应用量化等优化来减小约束设备的模型大小。 ONNX 还为最常见的边缘硬件平台提供优化的运行时。
分解边缘部署过程,我们需要两个组件:
- 模型交付的部署机制,包括模型本身以及一些用于管理模型并与模型交互的业务逻辑
- 一个工作流引擎,可以编排整个流程,使其稳健且可重复
在此示例中,我们使用不同的 AWS 服务来构建自动化边缘部署机制,该机制集成了我们讨论的所有必需组件。
首先,我们模拟一个边缘设备。 为了让您轻松完成端到端工作流程,我们使用 亚马逊弹性计算云 (Amazon EC2) 实例,通过在实例上安装 AWS IoT Greengrass Core 软件来模拟边缘设备。 您还可以使用 EC2 实例在部署到实际边缘生产设备之前验证 QA 流程中的不同组件。 AWS IoT Greengrass 是一项物联网 (IoT) 开源边缘运行时和云服务,可帮助您构建、部署和管理边缘设备软件。 AWS IoT Greengrass 减少了以安全且可扩展的方式构建、部署和管理边缘设备软件的工作量。 在设备上安装 AWS IoT Greengrass Core 软件后,您可以添加或删除功能和组件,并使用 AWS IoT Greengrass 管理您的 IoT 设备应用程序。 它提供了许多内置组件,让您的生活更轻松,例如 StreamManager 和 MQTT 代理组件,您可以使用它们与云安全通信,支持端到端加密。 您可以使用这些功能高效上传推理结果和图像。
在生产环境中,您通常会使用工业相机来传输机器学习模型应生成预测的图像。 对于我们的设置,我们通过将预设图像上传到边缘设备上的特定目录来模拟此图像输入。 然后我们使用这些图像作为模型的推理输入。
我们将整个部署和推理过程分为三个连续步骤,将云训练的 ML 模型部署到边缘环境并将其用于预测:
- Prepare – 打包经过训练的模型以进行边缘部署。
- 部署 – 将模型和推理组件从云端传输到边缘设备。
- 推理 – 加载模型并运行图像预测的推理代码。
以下架构图显示了这个三步流程的详细信息以及我们如何使用 AWS 服务实施它。
在以下部分中,我们将讨论每个步骤的详细信息,并展示如何将此过程嵌入到 ML 模型和相应推理代码的自动化且可重复的编排和 CI/CD 工作流程中。
Prepare
与云环境相比,边缘设备的计算和内存通常有限,在云环境中,强大的 CPU 和 GPU 可以轻松运行 ML 模型。 不同的模型优化技术允许您为特定软件或硬件平台定制模型,以提高预测速度而不损失准确性。
在此示例中,我们将训练管道中的训练模型导出为 ONNX 格式,以实现可移植性、可能的优化以及优化的边缘运行时间,并在 Amazon SageMaker 模型注册表。 在此步骤中,我们创建一个新的 Greengrass 模型组件,其中包括最新注册的模型,以供后续部署。
部署
将模型从云端部署到边缘设备时,安全可靠的部署机制是关键。 由于 AWS IoT Greengrass 已经集成了强大且安全的边缘部署系统,因此我们将其用于部署目的。 在详细了解部署过程之前,让我们快速回顾一下 AWS IoT Greengrass 部署的工作原理。 AWS IoT Greengrass 部署系统的核心是 组件,它定义部署到运行 AWS IoT Greengrass Core 的边缘设备的软件模块。 这些可以是您构建的私有组件,也可以是由 AWS 或者更广泛的 格林格拉斯社区。 多个组件可以捆绑在一起作为部署的一部分。 部署配置定义部署中包含的组件以及部署的目标设备。 它可以在部署配置文件 (JSON) 中定义,也可以在创建新部署时通过 AWS IoT Greengrass 控制台进行定义。
我们创建以下两个 Greengrass 组件,然后通过部署过程将其部署到边缘设备:
- 封装模型(私有组件) – 该组件包含 ONNX 格式的经过训练的 ML 模型。
- 推理代码(私有组件) – 除了 ML 模型本身之外,我们还需要实现一些应用程序逻辑来处理数据准备、与模型进行推理的通信以及推理结果的后处理等任务。 在我们的示例中,我们开发了一个基于 Python 的私有组件来处理以下任务:
- 安装所需的运行时组件,例如 Ultralytics YOLOv8 Python 包。
- 我们不是从相机实时流中获取图像,而是通过从特定目录加载准备好的图像并根据模型输入要求准备图像数据来模拟这一点。
- 使用准备好的图像数据对加载的模型进行推理调用。
- 检查预测并将推理结果上传回云端。
如果您想更深入地了解我们构建的推理代码,请参阅 GitHub回购.
推理
上述组件部署完成后,边缘设备上的模型推理过程将自动开始。 自定义推理组件定期使用本地目录中的图像运行 ML 模型。 从模型返回的每张图像的推理结果是一个张量,其内容如下:
- 置信度分数 – 模型对检测的置信度如何
- 物体坐标 – 图像中模型检测到的划痕对象坐标(x、y、宽度、高度)
在我们的示例中,推理组件负责将推理结果发送到 AWS IoT 上的特定 MQTT 主题,以便在其中读取结果以进行进一步处理。 可以通过 AWS IoT 控制台上的 MQTT 测试客户端查看这些消息以进行调试。 在生产设置中,您可以决定自动通知另一个系统,该系统负责从生产线中删除有缺陷的金属标签。
编曲配置
如前几节所示,需要多个步骤来准备和部署 ML 模型、相应的推理代码以及边缘设备所需的运行时或代理。 Step Functions 是一项完全托管的服务,允许您编排这些专用步骤并以状态机的形式设计工作流程。 该服务的无服务器性质和本机 Step Functions 功能(例如 AWS 服务 API 集成)允许您快速设置此工作流程。 重试或日志记录等内置功能是构建强大编排的重要点。 有关状态机定义本身的更多详细信息,请参阅 GitHub存储库 或者在您的帐户中部署此示例后,检查 Step Functions 控制台上的状态机图。
基础设施部署并集成到 CI/CD 中
用于集成和构建所有必需的基础设施组件的 CI/CD 管道遵循以下所示的相同模式 部分1 这个系列的。 我们使用 AWS云开发套件 (AWS CDK)从部署所需的管道 AWS 代码管道.
学问
有多种方法可以构建自动化、稳健且安全的机器学习模型边缘部署系统的架构,这些方法通常非常依赖于用例和其他要求。 不过,我们想与您分享一些经验教训:
- 提前评估是否需要额外 AWS IoT Greengrass 计算资源要求 适合您的情况,尤其是边缘设备受限的情况。
- 建立部署机制,在部署的工件在边缘设备上运行之前集成验证步骤,以确保传输过程中不会发生篡改。
- 最好的做法是使 AWS IoT Greengrass 上的部署组件尽可能保持模块化和独立性,以便能够独立部署它们。 例如,如果您有一个相对较小的推理代码模块,但在大小方面有一个较大的 ML 模型,那么如果只是推理代码发生了更改,您并不总是希望同时部署它们。 当您的带宽有限或边缘设备连接成本较高时,这一点尤其重要。
结论
关于构建用于边缘视觉质量检查的端到端 MLOps 管道的三部分系列到此结束。 我们研究了在边缘部署 ML 模型所带来的额外挑战,例如模型打包或复杂的部署编排。 我们以完全自动化的方式实现了管道,因此我们可以以稳健、安全、可重复和可追踪的方式将模型投入生产。 请随意使用本系列中开发的架构和实现作为您下一个支持 ML 的项目的起点。 如果您对如何为您的环境设计和构建这样的系统有任何疑问,请 伸手。 有关其他主题和用例,请参阅我们的 机器学习 和 IoT 博客。
关于作者
迈克尔·罗斯 是 AWS 的高级解决方案架构师,支持德国的制造业客户通过 AWS 技术解决他们的业务挑战。 除了工作和家庭之外,他还对跑车感兴趣并喜欢意大利咖啡。
约尔格·沃尔勒 是 AWS 的解决方案架构师,与德国的制造客户合作。 Joerg 对自动化充满热情,在加入 AWS 之前曾担任过软件开发人员、DevOps 工程师和站点可靠性工程师。 除了云之外,他还是一位雄心勃勃的跑步者,享受与家人在一起的美好时光。 因此,如果您面临 DevOps 挑战或想要尝试一下:请告诉他。
约翰内斯·兰格 是 AWS 的高级解决方案架构师,与德国的企业客户合作。 Johannes 热衷于应用机器学习来解决实际的业务问题。 在个人生活中,约翰内斯喜欢从事家居装修项目并与家人一起在户外度过时光。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- PlatoData.Network 垂直生成人工智能。 赋予自己力量。 访问这里。
- 柏拉图爱流。 Web3 智能。 知识放大。 访问这里。
- 柏拉图ESG。 碳, 清洁科技, 能源, 环境, 太阳能, 废物管理。 访问这里。
- 柏拉图健康。 生物技术和临床试验情报。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :具有
- :是
- :在哪里
- $UP
- 150
- 7
- a
- Able
- 关于
- 根据
- 账号管理
- 实际
- 加
- 增加
- 额外
- 推进
- 后
- 驳
- 经纪人
- 所有类型
- 让
- 允许
- 已经
- 还
- 时刻
- Amazon
- Amazon EC2
- 亚马逊网络服务
- 有雄心
- an
- 和
- 另一个
- 任何
- API
- 应用领域
- 应用领域
- 使用
- 应用
- 架构
- 保健
- AS
- 旁白
- At
- 自动化
- 自动化
- 自动化
- 自动
- 自动化和干细胞工程
- 远离
- AWS
- AWS IoT Greengrass
- 背部
- 带宽
- BE
- 因为
- 成为
- 很
- before
- 开始
- 除了
- 之间
- 超越
- 大
- 博客
- 都
- 更广泛
- 经纪人
- 建立
- 建筑物
- 建
- 内建的
- 捆绑
- 商业
- 但是
- by
- 呼叫
- 相机
- CAN
- 能力
- 关心
- 汽车
- 案件
- 例
- 挑战
- 挑战
- 变
- 查
- 检查
- 客户
- 云端技术
- 码
- 咖啡
- 如何
- 相当常见
- 通信
- 沟通
- 相比
- 复杂
- 元件
- 组件
- 计算
- 信心
- 配置
- 连接方式
- 连续
- 安慰
- 约束
- 包含
- 内容
- 核心
- 核心软件
- 相应
- 价格
- 创建信息图
- 创造
- 习俗
- 合作伙伴
- data
- 资料准备
- 决定
- 专用
- 更深
- 定义
- 定义
- 定义
- 定义
- 交付
- 交货
- 依赖的
- 部署
- 部署
- 部署
- 部署
- 部署
- 设计
- 细节
- 详情
- 检测
- 检测
- 发达
- 开发商
- 研发支持
- 设备
- 设备
- 不同
- 讨论
- 讨论
- 分
- do
- 别
- 向下
- 两
- ,我们将参加
- 每
- 更容易
- 容易
- 边缘
- 高效
- 有效
- 努力
- 或
- 嵌
- 加密
- 端至端
- 发动机
- 工程师
- 确保
- 企业
- 整个
- 环境
- 特别
- 评估
- 甚至
- 例子
- 家庭
- 远
- 时尚
- 故障
- 特征
- 感觉
- 少数
- 文件
- 适合
- 专注焦点
- 以下
- 如下
- 针对
- 申请
- 格式
- Free
- 止
- 充分
- 功能
- 进一步
- 生成
- 德国
- Go
- 非常好
- 图形处理器
- 图形
- 处理
- 发生
- 硬件
- 有
- 高度
- 帮助
- 相关信息
- 高
- 高水平
- 他
- 他的
- 主页
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- if
- 图片
- 图片
- 实施
- 履行
- 实施
- 重要
- 改进
- in
- 包括
- 包括
- 包含
- 来电
- 增加
- 独立地
- 产业
- 基础设施
- 输入
- 安装
- 安装
- 例
- 整合
- 集成
- 积分
- 集成
- 相互作用
- 有兴趣
- 网络
- 物联网
- 成
- 物联网
- 物联网设备
- IT
- 意大利
- 本身
- JPG
- JSON
- 只是
- 保持
- 键
- 知道
- 标签
- 最新
- 学习
- 让
- 生活
- 喜欢
- 有限
- Line
- 生活
- 加载
- 装载
- 本地
- 位于
- 记录
- 逻辑
- 看
- 看着
- 失去
- 占地
- 机
- 机器学习
- 使
- 制作
- 管理
- 管理
- 颠覆性技术
- 制造业
- 机制
- 内存
- 条未读消息
- 某些金属
- Michael (中国)
- ML
- 多播
- 模型
- 模型
- 模块化
- 模块
- 模块
- 更多
- 最先进的
- 多
- 本地人
- 自然
- 需求
- 需要
- 全新
- 下页
- 没有
- 对象
- of
- 优惠精选
- 经常
- on
- 开放源码
- 优化
- or
- 管弦乐编曲
- 其他名称
- 我们的
- 输出
- 户外活动
- 最划算
- 包
- 包装
- 部分
- 部分
- 情
- 多情
- 模式
- 为
- 个人
- 管道
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 点
- 点
- 可移植性
- 可能
- 帖子
- 强大
- 在练习上
- 预测
- 预测
- 准备
- Prepare
- 准备
- 准备
- 私立
- 问题
- 过程
- 处理
- 生产
- 生产
- 项目
- 项目
- 提供
- 提供
- 国家
- 目的
- 放
- 蟒蛇
- Q&A
- 质量
- 有疑问吗?
- 快速
- 很快
- 阅读
- 真实
- 概括
- 建议
- 减少
- 减少
- 参考
- 关于
- 在相关机构注册的
- 相对
- 可靠性
- 可靠
- 去掉
- 删除
- 可重复的
- 更换
- 要求
- 必须
- 岗位要求
- 资源
- 导致
- 成果
- 健壮
- 运行
- 亚军
- 运行
- 运行
- sagemaker
- 同
- 可扩展性
- 划伤
- 部分
- 安全
- 安全
- 看到
- 看到
- 发送
- 前辈
- 系列
- 服务器
- 无服务器
- 服务
- 特色服务
- 集
- 设置
- 格局
- Share
- 应该
- 显示
- 显示
- 作品
- 网站
- 尺寸
- 小
- So
- 软件
- 方案,
- 解决方案
- 解决
- 一些
- 具体的
- 速度
- 花费
- 运动
- 开始
- 启动
- 州/领地
- 步
- 步骤
- 简单的
- 流
- 随后
- 这样
- 支持
- 系统
- 滑车
- 需要
- 服用
- 目标
- 任务
- 技术
- 专业技术
- 条款
- test
- 这
- 国家
- 其
- 他们
- 然后
- 博曼
- 事
- Free Introduction
- 那些
- 三
- 三步
- 通过
- 次
- 至
- 一起
- 主题
- Topics
- 可追溯的
- 熟练
- 产品培训
- 转让
- 二
- 一般
- 独特
- 上传
- us
- 使用
- 用例
- 用过的
- 运用
- 验证
- 折扣值
- 企业验证
- 非常
- 通过
- 想
- 方法..
- 方法
- we
- 卷筒纸
- Web服务
- 井
- ,尤其是
- 这
- 全
- 宽度
- 中
- 也完全不需要
- 工作
- 工作
- 工作流程
- 加工
- 将
- X
- 但
- 完全
- 您一站式解决方案
- 和风网