云部署:AWS SageMaker
SageMaker Model、EndpointConfig、Endpoint、实时推理和批量转换。
云部署:AWS SageMaker 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
为何使用 SageMaker
Amazon SageMaker 是一项用于训练和部署 ML 模型的托管服务。您无需自行配置服务器和负载均衡器,只需描述模型,SageMaker 就会在后台创建一个可扩展的 HTTPS 端点。
三个要素
SageMaker 部署需要三项内容:
- 容器镜像 URI(ECR 中的服务镜像,或内置的框架镜像)
- 作为模型数据的训练权重,即 S3 中的 tar.gz 文件
- 授予 SageMaker 访问这些资源权限的IAM 角色
定义模型
sagemaker.Model 对象会将容器镜像与 S3 中的模型构件关联起来。
import sagemaker
from sagemaker.model import Model
model = Model(
image_uri="123456789012.dkr.ecr.us-east-1.amazonaws.com/my-model:latest",
model_data="s3://my-bucket/models/model.tar.gz",
role="arn:aws:iam::123456789012:role/SageMakerRole",
)model.tar.gz 中有什么
SageMaker 会在容器启动时,将 model_data 下载并解压到容器内的 /opt/ml/model。您的服务代码会从那里读取权重。该归档文件通常包含保存的模型文件以及预处理所需的资源。
# model.tar.gz contents
# model.pt
# tokenizer.json
# config.json部署实时端点
model.deploy 会在一个持久的 HTTPS 端点后启动一个或多个实例。您可以选择实例类型和初始实例数量。
predictor = model.deploy(
initial_instance_count=1,
instance_type="ml.m5.xlarge",
endpoint_name="my-model-endpoint",
)选择实例类型
实例类型会影响成本和延迟:
ml.m5.*是通用型 CPU 实例,适合小型模型且成本较低ml.c5.*经过计算优化ml.g4dn.*/ml.g5.*配备 GPU,适合深度学习推理
应根据模型选择实例:将 GPU 用于微型 scikit-learn 模型是一种浪费。
调用 predict()
部署完成后,predictor.predict() 会向端点发送负载并返回推理结果。SageMaker 会对请求进行序列化,并将其路由到正在运行的实例。
result = predictor.predict({
"instances": [[5.1, 3.5, 1.4, 0.2]]
})
print(result)清理端点
实时端点在运行期间按秒计费。请始终删除不再需要的端点,否则即使没有流量,也会持续产生费用。
predictor.delete_endpoint()用于离线任务的批量 transform
如果需要对大型数据集进行一次性评分,而不是提供低延迟服务,请使用批量 transform。SageMaker 会启动实例,处理整个 S3 数据集,将结果写回 S3,然后关闭实例。这样无需持久端点,也不会产生闲置成本。
运行批量 transform
您可以从模型创建转换器,并将其指向 S3 中的输入数据。
transformer = model.transformer(
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://my-bucket/predictions/",
)
transformer.transform(
data="s3://my-bucket/input/batch.csv",
content_type="text/csv",
)
transformer.wait()实时处理与批处理
请根据工作负载进行选择:
- 实时端点:持续处理低延迟请求(例如推荐 API)
- 批量 transform:定期对大型数据集进行评分(例如每晚生成客户流失预测)
如果不需要即时响应,批处理的成本会低得多。
快速检查
什么时候应使用 SageMaker 批量 transform,而不是实时端点?
回顾
您已经将模型部署到 AWS SageMaker:
sagemaker.Model将 镜像 URI 与 S3 中的模型数据关联起来model.deploy会基于所选实例类型创建实时端点predictor.predict()发送推理请求- 批量 transform 以较低成本处理大型离线工作负载
- 始终删除闲置端点,以避免产生费用
常见问题解答
「云部署:AWS SageMaker」课时是免费的吗?
是的 — 「云部署:AWS SageMaker」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「云部署:AWS SageMaker」这节课中我会学到什么?
SageMaker Model、EndpointConfig、Endpoint、实时推理和批量转换。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「云部署:AWS SageMaker」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 Docker 容器化机器学习模型
- 云部署:AWS SageMaker
- 使用 Triton Inference Server 实现高性能服务
- 扩展与自动扩展模型端点