随着高速 5G 移动网络的出现,企业比以往任何时候都更容易获得利用电信网络和云融合的机会。 作为迄今为止最突出的用例之一,边缘机器学习 (ML) 使企业能够在更靠近最终客户的地方部署 ML 模型,以减少延迟并提高应用程序的响应能力。 举个例子, 智慧场馆解决方案 可以使用近实时计算机视觉通过 5G 网络进行人群分析,同时最大限度地减少对本地硬件网络设备的投资。 通过自然语言处理 (NLP)、实时推荐系统和欺诈检测,零售商可以在旅途中提供更顺畅的体验。 甚至 地面和空中机器人 可以使用 ML 解锁更安全、更自主的操作。
为了降低边缘 ML 的进入门槛,我们想展示一个部署预训练模型的示例 亚马逊SageMaker 至 AWS波长,不到 100 行代码。 在本文中,我们演示了如何将 SageMaker 模型部署到 AWS Wavelength 以减少基于 5G 网络的应用程序的模型推理延迟。
解决方案概述
在 AWS 快速扩展的全球基础设施中,AWS Wavelength 将云计算和存储的强大功能带到 5G 网络的边缘,解锁更高效的移动体验。 借助 AWS Wavelength,您可以将虚拟私有云 (VPC) 扩展到与电信运营商的网络边缘相对应的 Wavelength 区域 29城市 在全球范围内。 下图显示了此体系结构的示例。
您可以通过以下方式选择加入给定区域内的 Wavelength 区域 AWS管理控制台 或者 AWS命令行界面 (AWS CLI)。 要了解有关在 AWS Wavelength 上部署地理分布式应用程序的更多信息,请参阅 在 AWS Wavelength 上部署地理分布式 Amazon EKS 集群.
基于本文讨论的基础知识,我们将边缘 ML 视为部署到 AWS Wavelength 的示例工作负载。 作为我们的示例工作负载,我们从 亚马逊SageMaker JumpStart.
SageMaker 是一种完全托管的 ML 服务,允许开发人员轻松地将 ML 模型部署到他们的 AWS 环境中。 尽管 AWS 提供了多种模型训练选项——从 AWS Marketplace 模型和 SageMaker 内置算法——有多种技术可以部署开源 ML 模型。
JumpStart 提供对数百种内置算法的访问,这些算法具有可以无缝部署到 SageMaker 端点的预训练模型。 从预测性维护和计算机视觉到自动驾驶和欺诈检测,JumpStart 通过在控制台上的一键式部署支持各种流行的用例。
由于 Wavelength 区域本身不支持 SageMaker,因此我们演示了如何从区域中提取模型工件并重新部署到边缘。 为此,您使用 Amazon Elastic Kubernetes服务 (Amazon EKS) Wavelength 区域中的集群和节点组,然后使用 JumpStart 生成的容器映像创建部署清单。 下图说明了此体系结构。
先决条件
为尽可能简化此过程,请确保您的 AWS 账户启用了 Wavelength 区域。 请注意,此集成仅适用于 us-east-1
和 us-west-2
,你将使用 us-east-1
在演示期间。
要选择加入 AWS Wavelength,请完成以下步骤:
- 在Amazon VPC控制台上,选择 区 下 个人设置 并选择 美国东部 (Verizon) / us-east-1-wl1.
- 管理.
- 选择 选择加入.
- 更新区域.
创建 AWS Wavelength 基础设施
在我们将本地 SageMaker 模型推理端点转换为 Kubernetes 部署之前,您可以在 Wavelength 区域中创建 EKS 集群。 为此,部署一个带有 AWS Wavelength 节点组的 Amazon EKS 集群。 要了解更多信息,您可以访问 AWS 容器博客上的本指南 or Verizon 的 5GEdgeTutorials 存储库 对于一个这样的例子。
接下来,使用一个 AWS 云9 环境或选择的交互式开发环境 (IDE),下载必要的 SageMaker 包和 Docker撰写,JumpStart 的关键依赖项。
使用 JumpStart 创建模型工件
首先,请确保您有一个 AWS身份和访问管理 (IAM) SageMaker 的执行角色。 要了解更多信息,请访问 SageMaker 角色.
- 运用 这个例子,创建一个名为 train_model.py 的文件,该文件使用 SageMaker 软件开发工具包 (SDK) 检索预构建模型(替换 与您的 SageMaker 执行角色的 Amazon 资源名称 (ARN))。 在此文件中,您使用
instance_type
属性在model.deploy()
函数,它使用您定义的所有必需模型工件在您的 IDE 中启动一个 Docker 容器:
- 接下来,设置
infer_model_id
添加到您要使用的 SageMaker 模型的 ID。
有关完整列表,请参阅 带有预训练模型表的内置算法. 在我们的示例中,我们使用了通常用于自然语言处理的 Bidirectional Encoder Representations from Transformers (BERT) 模型。
- 运行
train_model.py
用于检索 JumpStart 模型工件并将预训练模型部署到本地计算机的脚本:
如果此步骤成功,您的输出可能类似于以下内容:
在输出中,您将按顺序看到三个工件:用于 TensorFlow 推理的基础图像、为模型提供服务的推理脚本以及包含训练模型的工件。 尽管您可以使用这些构件创建自定义 Docker 映像,但另一种方法是让 SageMaker 本地模式为您创建 Docker 映像。 在后续步骤中,我们提取本地运行的容器镜像并部署到 Amazon Elastic Container注册 (Amazon ECR)以及将模型工件单独推送到 亚马逊简单存储服务 (亚马逊S3)。
将本地模式工件转换为远程 Kubernetes 部署
现在您已确认 SageMaker 在本地运行,让我们从正在运行的容器中提取部署清单。 完成以下步骤:
确定 SageMaker 本地模式部署清单的位置:为此,在我们的根目录中搜索名为 docker-compose.yaml
.
docker_manifest=$( find /tmp/tmp* -name "docker-compose.yaml" -printf '%T+ %pn' | sort | tail -n 1 | cut -d' ' -f2-)
echo $docker_manifest
确定 SageMaker 本地模式模型工件的位置:接下来,找到安装到本地 SageMaker 推理容器的基础卷,在我们将工件上传到 Amazon s3 后,它将在每个 EKS 工作节点中使用。
model_local_volume = $(grep -A1 -w "volumes:" $docker_manifest | tail -n 1 | tr -d ' ' | awk -F: '{print $1}' | cut -c 2-) # Returns something like: /tmp/tmpcr4bu_a7</p>
创建正在运行的 SageMaker 推理容器的本地副本:接下来,我们将找到运行我们的机器学习推理模型的当前正在运行的容器映像,并在本地制作该容器的副本。 这将确保我们拥有自己的容器映像副本以从 Amazon ECR 中提取。
# Find container ID of running SageMaker Local container
mkdir sagemaker-container
container_id=$(docker ps --format "{{.ID}} {{.Image}}" | grep "tensorflow" | awk '{print $1}')
# Retrieve the files of the container locally
docker cp $my_container_id:/ sagemaker-container/
在采取行动之前 model_local_volume
,我们将推送到 Amazon S3,推送正在运行的 Docker 映像的副本,现在在 sagemaker-container
目录,到 Amazon Elastic Container Registry。 务必更换 region
, aws_account_id
, docker_image_id
和 my-repository:tag
或者按照 亚马逊 ECR 用户指南. 此外,请务必记下最终的 ECR 图像 URL (aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
),我们将在 EKS 部署中使用它。
现在我们有一个与推理端点对应的 ECR 图像,创建一个新的 Amazon S3 存储桶并复制 SageMaker Local 工件(model_local_volume
) 到这个桶。 同时,创建身份访问管理 (IAM),为 Amazon EC2 实例提供对存储桶中读取对象的访问权限。 务必更换 为您的 Amazon S3 存储桶设置一个全球唯一的名称。
接下来,为确保每个 EC2 实例在启动时提取模型工件的副本,编辑 EKS 工作程序节点的用户数据。 在您的用户数据脚本中,确保每个节点在启动时使用 S3 API 检索模型工件。 务必更换 为您的 Amazon S3 存储桶设置一个全球唯一的名称。 鉴于节点的用户数据还将包含 EKS 引导脚本,完整的用户数据可能如下所示。
现在,您可以检查现有的 docker 清单并将其转换为 Kubernetes 友好的清单文件,使用 编排,一个著名的转换工具。 注意:如果出现版本兼容性错误,请更改 version
docker-compose.yml 第 27 行的属性为 “2”
.
运行 Kompose 后,您会看到四个新文件: Deployment
宾语, Service
宾语, PersistentVolumeClaim
对象,和 NetworkPolicy
目的。 您现在拥有开始涉足边缘 Kubernetes 所需的一切!
部署 SageMaker 模型构件
确保您已将 kubectl 和 aws-iam-authenticator 下载到您的 AWS Cloud9 IDE。 如果没有,请按照安装指南进行操作:
现在,完成以下步骤:
修改 service/algo-1-ow3nv
要从中切换服务类型的对象 ClusterIP
至 NodePort
. 在我们的示例中,我们选择端口 30,007 作为我们的 NodePort
:
接下来,您必须在节点的安全组中允许 NodePort。 为此,检索安全组 ID 并将 NodePort 列入白名单:
接下来,修改 algo-1-ow3nv-deployment.yaml
清单挂载 /tmp/model hostPath
目录到容器。 代替 使用您之前创建的 ECR 映像:
使用您从 Kompose 创建的清单文件,使用 kubectl 将配置应用到您的集群:
连接到 5G 边缘模型
要连接到您的模型,请完成以下步骤:
在 Amazon EC2 控制台上,检索 EKS 工作节点的运营商 IP 或使用 AWS CLI 直接查询运营商 IP 地址:
现在,提取运营商 IP 地址后,您可以使用 NodePort 直接连接到模型。 创建一个名为 invoke.py
通过提供基于文本的输入直接调用 BERT 模型,该输入将针对情绪分析器运行以确定语气是积极的还是消极的:
您的输出应类似于以下内容:
清理
要销毁创建的所有应用程序资源,请删除 AWS Wavelength 工作程序节点、EKS 控制平面以及在 VPC 中创建的所有资源。 此外,删除用于托管容器映像的 ECR 存储库、用于托管 SageMaker 模型工件的 S3 存储桶和 sagemaker-demo-app-s3 IAM
政策。
结论
在本文中,我们展示了一种使用 Amazon EKS 和 AWS Wavelength 将 SageMaker 模型部署到网络边缘的新方法。 要了解 AWS Wavelength 上的 Amazon EKS 最佳实践,请参阅 在 AWS Wavelength 上部署地理分布式 Amazon EKS 集群. 此外,要了解有关 Jumpstart 的更多信息,请访问 Amazon SageMaker JumpStart 开发人员指南 或者 JumpStart 可用型号表.
作者简介
罗伯特贝尔森 是 AWS 全球电信业务部门的一名开发倡导者,专攻 AWS 边缘计算。 他专注于与开发人员社区和大型企业客户合作,使用自动化、混合网络和边缘云解决他们的业务挑战。
穆罕默德·梅赫达尔 是 AWS 全球电信业务部门的高级解决方案架构师。 他的主要工作重点是帮助客户在 AWS 上构建和部署电信和企业 IT 工作负载。 在加入 AWS 之前,Mohammed 已在电信行业工作超过 13 年,在 LTE Packet Core、5G、IMS 和 WebRTC 领域拥有丰富的经验。 Mohammed 拥有康考迪亚大学的电信工程学士学位。
埃文·克拉维茨 是 Amazon Web Services 的一名软件工程师,致力于 SageMaker JumpStart。 他喜欢烹饪和在纽约市跑步。
贾斯汀·圣阿诺 是 Verizon 公共部门解决方案架构师的副总监,在 IT 行业拥有超过 15 年的经验。 他是边缘计算和 5G 网络力量的热情倡导者,并且是开发利用这些技术的创新技术解决方案的专家。 Justin 特别热衷于 Amazon Web Services (AWS) 为他的客户提供尖端解决方案的能力。 在业余时间,贾斯汀喜欢了解最新的技术趋势,并与业内其他人分享他的知识和见解。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/deploy-pre-trained-models-on-aws-wavelength-with-5g-edge-using-amazon-sagemaker-jumpstart/
- :是
- 1
- 10
- 100
- 11
- 15 年
- 5G
- 7
- 8
- 9
- a
- 关于
- 接受
- ACCESS
- 账号管理
- 横过
- 操作
- 另外
- 地址
- 来临
- 主张
- 后
- 驳
- 算法
- 所有类型
- 允许
- 尽管
- 时刻
- Amazon
- Amazon EC2
- 亚马逊SageMaker
- 亚马逊SageMaker JumpStart
- 亚马逊网络服务
- 亚马逊网络服务(AWS)
- 分析
- 和
- 另一个
- API
- 应用领域
- 应用领域
- 使用
- 的途径
- 架构
- 保健
- 地区
- AS
- 律师
- 社区
- At
- 自动化和干细胞工程
- 自主性
- 可使用
- AWS
- AWS 云9
- 屏障
- 基地
- BE
- 开始
- 最佳
- 最佳实践
- 引导
- 带来
- 建立
- 内建的
- 商业
- by
- 被称为
- CAN
- 能力
- 例
- 喵星人
- CD
- 挑战
- 更改
- 选择
- 城市
- 客户
- 接近
- 云端技术
- Cloud9
- 簇
- 码
- COM的
- 常用
- 社体的一部分
- 兼容性
- 完成
- 计算
- 一台
- 计算机视觉
- 计算
- CONFIRMED
- 分享链接
- 安慰
- 容器
- 集装箱
- 控制
- 收敛
- 转化
- 兑换
- 核心
- 相应
- 可以
- 创建信息图
- 创建
- 创造
- 人群
- 目前
- 习俗
- 合作伙伴
- 切
- 前沿
- data
- 日期
- 定义
- 学位
- 交付
- 交付
- 演示
- 证明
- 依赖
- 部署
- 部署
- 部署
- 部署
- 摧毁
- 检测
- 确定
- 开发商
- 开发
- 发展
- 研发支持
- 直接
- 副总经理
- 讨论
- 码头工人
- 下载
- 驾驶
- 每
- 此前
- 容易
- 东部
- 回音
- 边缘
- 边缘计算
- 效果
- enable
- 启用
- 端点
- 工程师
- 工程师
- 确保
- 企业
- 企业
- 热心
- 条目
- 环境
- 环境中
- 设备
- 错误
- 甚至
- EVER
- 一切
- 例子
- 执行
- 现有
- 扩大
- 体验
- 体验
- 技术专家
- 延长
- 提取
- 文件
- 档
- 最后
- 找到最适合您的地方
- 专注焦点
- 重点
- 遵循
- 其次
- 以下
- 针对
- 突袭
- 骗局
- 欺诈检测
- 自由的
- 无摩擦
- 止
- 充分
- 功能
- 基本原理
- 产生
- 得到
- 特定
- 全球
- 在全球范围内
- 地球
- Go
- 去
- 团队
- 组的
- 指南
- 指南
- 硬件
- 马具
- 有
- 帮助
- 持有
- 主持人
- 创新中心
- How To
- HTML
- HTTP
- HTTPS
- 数百
- 杂交种
- ID
- 身分
- 图片
- 进口
- in
- 包括
- 增加
- 行业中的应用:
- 基础设施
- 创新
- 创新技术
- 输入
- 可行的洞见
- 安装
- 例
- 积分
- 互动
- 投资
- IP
- IP地址
- IT
- IT行业
- 加盟
- JPG
- JSON
- 贾斯汀
- 保持
- 键
- 类
- 套件 (SDK)
- 知识
- 标签
- 语言
- 大
- 潜伏
- 最新
- 发射
- 学习用品
- 学习
- 杠杆作用
- 喜欢
- Line
- 线
- 清单
- 本地
- 当地
- 圖書分館的位置
- 看
- 机
- 机器学习
- 主要
- 保养
- 使
- 管理
- 颠覆性技术
- 元数据
- 最小化
- ML
- 联络号码
- 移动网络
- 时尚
- 模型
- 模型
- 修改
- 更多
- 最先进的
- 安装
- 姓名
- 命名
- 自然
- 自然语言处理
- 需求
- 负
- 网络
- 基于网络的
- 工业网络
- 网络
- 全新
- 纽约
- 纽约市
- 下页
- NLP
- 节点
- 节点
- 小说
- 数
- 对象
- 对象
- of
- 最多线路
- 优惠精选
- on
- 一
- 开放源码
- 运营
- ZAP优势
- 附加选项
- 秩序
- 其它
- 产量
- 己
- 包
- 并行
- 尤其
- 多情
- 径
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 政策
- 热门
- 定位的
- 积极
- 可能
- 帖子
- 功率
- 做法
- 预报器
- 先
- 私立
- 处理
- 突出
- 提供
- 优
- 国家
- 拉
- 推
- 急速
- 阅读
- 实时的
- 推荐
- 减少
- 地区
- 注册处
- 远程
- 更换
- 要求
- 必要条件
- 资源
- 资源
- 零售商
- 回报
- 角色
- 根
- 运行
- 运行
- 更安全
- sagemaker
- SageMaker 推理
- SDK
- 无缝
- 搜索
- 扇形
- 保安
- 选
- 前辈
- 服务
- 服务
- 服务
- 特色服务
- 集
- 共享
- 应该
- 作品
- 简易
- 只是
- So
- 软件
- 软件开发
- 软件工程师
- 方案,
- 解决方案
- 解决
- 东西
- 专业
- 启动
- 个人陈述
- Status
- 步
- 步骤
- 存储
- 策略
- 随后
- 走向成功
- 这样
- 支持
- 支持
- Switch 开关
- 产品
- 行李牌
- 采取
- 技术
- 技术
- 专业技术
- 电信
- 电信
- 电信
- 电信工程
- 模板
- tensorflow
- 这
- 其
- 博曼
- 三
- 次
- 至
- TONE
- 工具
- 熟练
- 变形金刚
- 翻译
- 趋势
- true
- 下
- 相关
- 独特
- 单元
- 大学
- 开锁
- 解锁
- 跟上时代的
- 网址
- 使用
- 用户
- v1
- 折扣值
- 各种
- 地点
- Verizon
- 版本
- 通过
- 在线会议
- 愿景
- 参观
- 体积
- 卷
- 通缉
- 财富
- 卷筒纸
- Web服务
- 井
- 知名
- 是否
- 这
- 而
- 将
- 中
- 工人
- 加工
- 全世界
- 将
- 雅姆
- 年
- 完全
- 您一站式解决方案
- YouTube的
- 和风网
- 区