项目概述
SageMaker Python SDK 是一个开源库,旨在简化在 Amazon SageMaker 上进行机器学习模型训练和部署的全过程。通过该 SDK,用户可以使用流行的深度学习框架,如 Apache MXNet 和 TensorFlow,来训练和部署模型。此外,用户还可以利用 Amazon 为 SageMaker 和 GPU 训练优化的可扩展算法,甚至可以使用自定义的 Docker 容器中的算法在 SageMaker 上进行训练和托管。
主要功能
支持的框架和算法
SageMaker Python SDK 支持多种机器学习和深度学习框架,包括:
- MXNet
- TensorFlow
- Chainer
- PyTorch
- Scikit-learn
- XGBoost
此外,SDK 同时支持使用 Amazon SageMaker 内置算法、强化学习估算器以及 SparkML 模型的托管和推理。
自动模型调优
SageMaker 提供了自动模型调优功能,可以帮助用户自动化调整模型的超参数,以提升模型性能。
用户自定义算法
用户可以使用自己构建的、符合 SageMaker 规范的 Docker 容器进行算法训练和部署。
安装说明
SageMaker Python SDK 可以通过 Python 包管理工具 pip 进行安装:
pip install sagemaker
用户也可以从源代码进行安装,步骤如下:
git clone https://github.com/aws/sagemaker-python-sdk.git
cd sagemaker-python-sdk
pip install .
支持的操作系统和 Python 版本
该 SDK 支持 Unix/Linux 和 Mac 操作系统,并在以下 Python 版本上经过测试:
- Python 3.8
- Python 3.9
- Python 3.10
- Python 3.11
Telemetry 功能
SageMaker SDK 默认启用 telemetry 功能,以帮助开发团队更好地了解用户需求,诊断问题及推出新特性。用户可以通过设置 TelemetryOptOut
参数为 true
来选择退出此功能。
必要的 AWS 权限
作为一种托管服务,Amazon SageMaker 在 AWS 硬件上代表用户执行操作。这些操作的前提是用户已授予相应的权限。SDK 所需的权限可以参考 AWS 文档获取更多信息。
示例应用:SageMaker SparkML Serving
通过 SageMaker SparkML Serving,用户可以在 SageMaker 上托管 SparkML 模型并进行预测。模型需要使用 MLeap
库进行序列化。如下是通过 SparkMLModel
类创建实例并使用 deploy()
方法部署模型的示例:
sparkml_model = SparkMLModel(model_data='s3://path/to/model.tar.gz', env={'SAGEMAKER_SPARKML_SCHEMA': schema})
model_name = 'sparkml-model'
endpoint_name = 'sparkml-endpoint'
predictor = sparkml_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)
完成部署后,用户可以使用 CSV 格式数据进行预测。
单元测试和集成测试
SageMaker Python SDK 提供了单元测试和集成测试以确保代码质量和功能完整性。用户可以通过安装必要的测试库后,使用 tox
工具运行这些测试。
许可证
SageMaker Python SDK 遵循 Apache 2.0 许可证,由 Amazon.com, Inc. 或其子公司版权所有。
通过 SageMaker Python SDK,开发者可以高效地在 Amazon 云上进行机器学习项目的开发和部署,大幅度简化了从模型构建到上线的全过程。