如果你已经接触过 AWS Bedrock 这类大模型服务平台,可能会想:如果我要训练一个完全属于自己的模型,而不是调用现成的 API,该用哪个服务?这时候,你需要的是 Amazon SageMaker

简单来说,如果说 Bedrock 是“调用现成大模型”的平台,那么 SageMaker 就是“自己打造模型”的工作台——你可以从头开始构建、训练和部署属于自己的机器学习模型,拥有完全的控制权。

今天这篇文章,就带你彻底搞懂 SageMaker 是什么、能做什么,以及它和 Bedrock 有什么不同。

什么是 Amazon SageMaker?

Amazon SageMaker 是 AWS 提供的完全托管机器学习服务,旨在简化构建、训练和部署机器学习(ML)模型的过程。它自动执行 ML 部署每个阶段中的许多劳动密集型任务,从而降低工作流的复杂性并加速整个机器学习生命周期。

你可以把它理解成一个“机器学习全流程工作台”:

  • 数据准备:清洗、转换、标注数据

  • 模型训练:选择算法、分配计算资源、调优参数

  • 模型部署:一键将模型发布为可调用的 API 端点

  • 监控管理:跟踪模型性能、检测数据漂移

SageMaker 的设计目标很明确——让数据科学家和开发者能够专注于模型本身,而不需要操心底层基础设施的管理。

SageMaker 的核心功能

一、SageMaker Studio:一站式开发环境

SageMaker Studio 是一个集成开发环境(IDE) ,让用户可以在单一界面中完成数据探索、特征工程、模型训练、调参与部署。它支持 Jupyter Notebook,允许用户高效地编写和运行 Python 代码,并提供可视化的模型训练监控和团队协作功能。

二、数据准备与标注

高质量的数据是机器学习成功的关键。SageMaker 提供了两大数据准备工具:

  • SageMaker Data Wrangler:通过可视化界面快速完成数据清洗、转换和特征工程,无需编写代码

  • SageMaker Ground Truth:提供人力与机器协作的数据标注机制,可创建高质量的训练数据集

三、模型训练:内置算法 + 自带脚本

SageMaker 提供了多种训练方式,灵活适配不同需求:

  • 内置算法:SageMaker 内置了 XGBoost、线性回归、K-means 等常用机器学习算法,开箱即用

  • 自带脚本:支持使用 TensorFlow、PyTorch、MXNet 等主流框架编写自定义训练脚本

  • 自定义容器:可以将任何算法打包成 Docker 容器,在 SageMaker 上运行

四、超参数调优(Hyperparameter Tuning)

SageMaker 提供自动超参数调优功能,可以并行运行多个训练任务,自动寻找最优参数组合,帮助找到最佳模型性能,同时节省计算资源。

五、模型部署与推理

训练完成后,SageMaker 支持多种部署方式:

  • 实时推理(Real-time Inference) :部署为低延迟的 HTTPS 端点,适合在线应用

  • 批量推理(Batch Inference) :对大规模数据进行离线预测

  • 异步推理(Asynchronous Inference) :适合处理大文件或长时任务

六、模型监控与 MLOps

SageMaker 内置了完整的模型管理工具:

  • Model Registry:模型版本管理和审批流程

  • Model Monitor:自动检测模型性能下降和数据漂移

  • SageMaker Pipelines:自动化 ML 工作流,实现 CI/CD 集成

两种无代码/低代码工具

对于机器学习经验有限的用户,SageMaker 还提供了两个简化工具:

SageMaker Canvas(无代码机器学习)

SageMaker Canvas 让用户无需编写任何代码即可生成预测。通过简单的点击式操作,业务分析师可以完成数据导入、模型训练和预测生成,适用于客户流失预测、库存规划、定价优化等场景。

SageMaker Autopilot(自动机器学习)

Autopilot 可以自动探索数据并尝试多种算法,根据精度对每种算法进行排名,自动完成端到端的模型构建、训练和部署,适合 ML 经验有限的用户。

Bedrock vs SageMaker:怎么选?

很多新手会混淆这两个服务,其实它们的定位完全不同:

对比维度Amazon BedrockAmazon SageMaker适用场景将现成的大模型 AI 能力集成到应用中,无需投入大量资源开发自定义模型需要自行构建、训练和优化自定义 AI/ML 模型目标用户不需要深厚机器学习专业知识的开发者和企业用户数据科学家、机器学习工程师模型来源使用预训练模型(Claude、Llama、Nova 等),可进行有限微调完全控制,可以根据需求自定义或从头创建模型定价方式按 API 调用次数付费按计算资源、存储等使用量收费基础设施管理无服务器,无需管理基础设施需要对计算资源和扩展进行精细控制

一句话总结:想快速在应用里接入大模型能力,选 Bedrock;需要自行训练和优化专属模型,选 SageMaker。

如何开始使用 SageMaker?

第一步:进入 SageMaker 控制台

登录 AWS 管理控制台,在顶部搜索框输入 “SageMaker” 并点击进入。

第二步:创建笔记本实例(Notebook Instance)

在 SageMaker 控制台左侧点击 “笔记本实例”“创建笔记本实例”

  1. 实例名称:输入 my-first-notebook

  2. 实例类型:选择 ml.t2.medium(免费套餐适用)

  3. IAM 角色:选择“创建新角色”,允许 SageMaker 访问 S3

  4. 点击 “创建笔记本实例”

第三步:打开 Jupyter Notebook

实例状态变为“可用”后,点击 “打开 Jupyter” ,进入 Notebook 界面。

第四步:训练并部署一个模型

以下是一个使用 SageMaker 内置 XGBoost 算法训练模型的示例代码流程:

python

import sagemaker
from sagemaker import get_execution_role
from sagemaker.amazon.amazon_estimator import get_image_uri

# 获取执行角色
role = get_execution_role()

# 指定训练数据在 S3 中的位置
bucket = 'your-bucket-name'
prefix = 'sagemaker/xgboost'
training_data_uri = f's3://{bucket}/{prefix}/train.csv'

# 创建 XGBoost 估计器
xgboost = sagemaker.estimator.Estimator(
    image_uri=get_image_uri(boto3.Session().region_name, 'xgboost', '1.0-1'),
    role=role,
    instance_count=1,
    instance_type='ml.m5.xlarge',
    output_path=f's3://{bucket}/{prefix}/output'
)

# 设置超参数
xgboost.set_hyperparameters(
    objective='binary:logistic',
    num_round=100,
    max_depth=5
)

# 开始训练
xgboost.fit({'train': training_data_uri})

# 部署为实时端点
predictor = xgboost.deploy(
    initial_instance_count=1,
    instance_type='ml.m5.xlarge'
)

# 使用端点进行预测
result = predictor.predict(test_data)

SageMaker 的笔记本实例、训练任务和部署端点会持续产生费用。测试完成后,记得清理:

  1. 停止或删除笔记本实例:在“笔记本实例”中选中,点击“停止”或“删除”

  2. 删除端点:在“端点”中删除不再使用的部署

  3. 删除 S3 中的训练数据:如果不再需要


SageMaker 是 AWS 机器学习生态中的核心服务,它让构建、训练和部署 ML 模型这件事从“复杂工程”变成了“可控流程”。无论你是准备将现有模型规模化部署,还是想从头探索机器学习,SageMaker 都是 AWS 云上最值得掌握的工具之一。