在 Amazon SageMaker 上运行 MXNet:Estimator 训练与托管推理实战指南
发布时间:2026/9/21 1:19:53 作者:尧图编辑部 阅读量:1,286

人工智能深度学习机器学习【免费下载链接】mxnetLightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more项目地址https://gitcode.com/gh_mirrors/mxne/mxnet点击查看免费下载本篇指南以 Apache MXNet 官方文档中 Run on Amazon SageMaker 章节docs/python_docs/python/tutorials/deploy/run-on-aws/use_sagemaker.rst为骨架讲解如何借助 Amazon SageMaker 全托管平台运行 MXNet 工作负载。你将掌握用 SageMaker SDK 的MXNetEstimator一行启动训练、编写被 SageMaker 自动调用的训练入口脚本以及用deploy()创建 HTTPS 推理端点的完整流程并了解分布式训练、超参数调优、SageMaker Neo 等进阶能力。SageMaker 是什么为何适合运行 MXNetAmazon SageMaker 是 AWS 提供的全托管机器学习平台。对 MXNet 用户而言它的价值体现在两个最直接的层面开箱即用out-of-the-box的 MXNet 支持SageMaker 内置 Jupyter Notebook 环境无需自行搭建环境即可直接编写和运行 MXNet 代码免运维的弹性算力训练所需的底层 EC2 实例由 SageMaker 按需自动创建与回收用户无需手动登录 EC2 控制台配置实例、安装驱动或管理 Docker 容器。从计费角度看官方文档明确指出Notebook 可以运行在 CPU 实例上并享受免费额度free tier而更强大的 CPU 实例或 GPU 实例则按使用时长计费。因此 SageMaker 特别适合算力需求不确定、且希望按需付费的深度学习训练场景——这与仓库中 MXNet on the Cloud 一文的观点一致深度学习的硬件需求往往既昂贵又难以预估时长而 MXNet 又能从多 GPU、多机并行中获益云上按需扩容天然契合这类负载。SageMaker 平台概览Notebook、训练任务与推理端点SageMaker 的完整工作流覆盖机器学习全生命周期与 MXNet 相关的核心组件有三个Notebook Instances托管 Jupyter 笔记本实例用于数据探索、数据准备和编写训练代码Training Jobs提交到 SageMaker 的训练任务由底层 EC2 实例执行Endpoints部署模型后创建的 HTTPS 推理端点对外提供实时推理服务。上述三大环节正是使用 MXNet 在 SageMaker 上进行训练、部署和管理的核心操作入口也与本仓库部署教程的目录结构一一对应——参见 Run on AWS 教程索引 中 MXNet on SageMaker 卡片以及 Deployment 教程总览 的 Cloud 分类。快速开始用 MXNetEstimator 启动训练在 Notebook 实例上准备好自己的数据后即可通过 SageMaker SDK 启动训练无需手动配置和登录 EC2 实例。SageMaker 将训练过程封装为Estimator类而 MXNet 训练任务对应sagemaker.mxnet.MXNetfrom sagemaker.mxnet import MXNet as MXNetEstimator estimator MXNetEstimator(entry_pointtrain.py, rolesagemaker.get_execution_role(), train_instance_count1, train_instance_typelocal, hyperparameters{batch_size: 1024, epochs: 30}) estimator.fit(inputs)各参数含义如下参数含义与说明entry_point训练入口脚本文件名此处为train.py描述模型结构和训练循环由 SageMaker 自动加载执行role执行训练所用的 IAM 角色通常用sagemaker.get_execution_role()获取当前 Notebook 的权限train_instance_count训练使用的实例数量设置为大于 1 即启动分布式训练train_instance_type训练实例类型。设为local表示在本地 Notebook 实例上运行便于调试与免费额度内使用如需更强大的平台只需改为具体的 EC2 实例类型即可hyperparameters传递给训练脚本的超参数以键值对形式传入例如批量大小batch_size与训练轮数epochs调用fit(inputs)后SageMaker 会自动完成以下动作依据train_instance_type自动创建所需的 EC2 实例本地模式则复用 Notebook 实例在一个预置好 MXNet 环境的 Docker 容器内执行训练脚本训练结束后立即关闭这些实例避免闲置计费。inputs参数指定训练数据的来源既可以是本地路径也可以是 S3 存储桶地址。这正是文档强调的体验从local迁移到 GPU 集群只需修改train_instance_type一个参数训练数据与代码无需任何改动。训练入口脚本SageMaker 对 train.py 的约定Estimator的训练能力依赖入口脚本train.py。该脚本需要按照 SageMaker 的约定提供特定函数SageMaker 会在训练与部署阶段自动调用它们训练阶段脚本被加载后在 Docker 容器内执行完成模型定义、数据加载与训练循环部署阶段脚本还需提供模型加载与推理所需的函数如model_fn供 SageMaker 创建推理端点时调用。换句话说train.py是连接训练与推理的桥梁SageMaker 通过约定的函数签名解析模型、加载权重并对外提供推理服务。文档同时建议关于入口脚本应实现的函数细节可参考 AWS 官方提供的 MXNet 训练/推理代码模板training/inference code template其中给出了标准的函数骨架。部署一行代码创建 HTTPS 推理端点当模型训练完成、准备上线时可使用 SageMaker 的托管服务hosting services部署模型。Estimator.deploy()会创建 EC2 实例、加载训练产物并暴露一个 HTTPS 端点predictor estimator.deploy(initial_instance_count1, instance_typeml.m4.xlarge)initial_instance_count推理端点的初始实例数量用于承载并发推理请求instance_type托管推理所使用的实例类型示例中为ml.m4.xlarge。部署完成后predictor对象即可直接对传入数据进行推理预测。整个部署过程由 SageMaker 托管用户无需关心实例配置、负载均衡与 HTTPS 证书等基础设施细节。数据准备Notebook 与 S3 集成训练之前的数据获取、探索与准备都在 Notebook 实例内完成。对于大规模训练数据集仓库中的 Use data from S3 for trainingFAQ 提供了与 SageMaker 训练链路配套的 S3 集成方案要点如下构建期启用 S3 支持从源码构建 MXNet 时安装libcurl4-openssl-dev与libssl-dev并在配置文件中设置USE_S31配置认证设置环境变量AWS_ACCESS_KEY_ID与AWS_SECRET_ACCESS_KEY上传数据使用 AWS CLI 同步本地目录到存储桶例如aws s3 sync ./training-data s3://bucket-name/training-data训练时直接引用任何以文件路径为输入的数据迭代器均可直接使用s3://bucket-name/...形式路径例如mx.io.ImageRecordIter(path_imgrecs3://bucket-name/training-data/caltech_train.rec, ...)或mx.io.MNISTIter(images3://.../train-images-idx3-ubyte, ...)。这样SageMaker 训练任务的fit(inputs)就可以直接指向 S3 存储桶中的数据集实现数据存 S3、训练跑 SageMaker的分离架构。进阶场景超越单机单卡训练官方文档进一步列出了 SageMaker 中更高级的 MXNet 使用场景可作为后续深入学习的路线图多机分布式训练Distributed training将train_instance_count设为大于 1 即可横向扩展MXNet 自身的 KVStore 与数据并行机制在此场景下可充分发挥多机优势仓库中 distributed_training 示例 提供了参考实现超参数调优任务Hyperparameter Tuning Jobs由 SageMaker 自动编排多组超参数组合的并行训练并择优适用于batch_size、epochs、学习率等关键参数的寻优SageMaker Neo 模型优化对训练好的 MXNet 模型进行编译优化加速目标硬件上的推理Amazon SageMaker Ground Truth 数据集构建用于构建带标注的训练数据集与 Notebook 中的数据准备环节衔接。小结SageMaker 与仓库中的其他 AWS 部署方式结合 Run on AWS 教程索引MXNet 在 AWS 上主要有四条路径方案特点仓库参考文档Amazon SageMaker全托管Notebook 训练 推理一站式按需自动创建/回收实例use_sagemaker.rst本文EC2 Deep Learning AMI手动创建实例AMI 预装 MXNet 与 conda 环境适合深度定制use_ec2.rstAWS Deep Learning Container官方预置的 Docker 镜像可移植到自有容器编排环境cloud.mdS3 数据直连训练数据迭代器直接读取s3://路径与上述任意方案组合使用s3_integration.md选择建议如果追求最短的开发运维成本、希望按需弹性使用算力SageMaker 是 MXNet 训练与部署的最佳起点如果需要精细控制实例配置或复用既有容器化流水线则可考虑 Deep Learning AMI 或 Deep Learning Container 方案。赞分享人工智能深度学习机器学习【免费下载链接】mxnetLightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more项目地址https://gitcode.com/gh_mirrors/mxne/mxnet点击查看免费下载相关推荐在 Amazon SageMaker 上运行与部署 MXNet从 Estimator 训练到 HTTPS 推理端点在 Amazon SageMaker 上运行与部署 MXNet从 Estimator 训练到 HTTPS 推理端点 本指南聚焦于如何在 Amazon Sage深度学习人工智能机器学习分布式训练Floci 本地模拟 Amazon SageMaker控制面 API 与真实 Docker 训练/托管实战指南Floci 本地模拟 Amazon SageMaker控制面 API 与真实 Docker 训练/托管实战指南 Floci 的 SageMaker 模块在本地微信聊天记录导出成文档并生成年度报告的完整指南微信聊天记录导出成文档并生成年度报告的完整指南 WeChatMsg 是一个开源工具能帮你把微信聊天记录导出为 HTML、Word、CSV 文档永久保存还能分人工智能AI 技能/插件大模型AI 评测创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考