我很高兴能与大家分享一个好消息,[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 现已推出经改进的模型部署体验,帮助用户更快地部署传统[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(MI)模型与基础模型(FMs)。
作为数据科学家,或者说[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)从业者,各位现可利用 [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/?trk=cndc-detail) 中的 `ModelBuilder` 类来实现模型打包,开展局部推论以验证运行错误,以及从你的本地集成开发环境(IDE)或者 SageMaker Studio 笔记本部署至 SageMaker。
在 [SageMaker Studio](https://aws.amazon.com/cn/sagemaker/studio/?trk=cndc-detail) 之中,新的交互式模型部署工作流可为用户提供逐步指导,告诉你选择哪种实例类型以找到最优的端点配置。 SageMaker Studio 还提供了额外界面以添加模型,测试推论,并在部署的端点上启用自动缩放策略。
#### SageMaker Python SDK 内的新型工具
更新后的 SageMaker Python SDK 将包含新型工具,包括` ModelBuilder` 和 `SchemaBuilder` 类,在 ML 框架和模型服务器中将模型转换为可部署模型方面,上述新型工具可提供一致的使用体验。ModelBuilder 将选择兼容的 SageMaker 容器,并从开发环境中捕获依赖关系,以此来实现模型部署的自动化。模式构造器可帮助用户管理模型输入和输出的序列化和反序列化任务。用户可使用这些工具在本地开发环境中部署模型以进行实验,修复任何运行错误,然后在一切准备就绪之时,通过一行代码从本地测试转移到 SageMaker 上完成模型部署。
![屏幕截图 2023-12-26 185030.png](https://dev-media.amazoncloud.cn/bcb9585fa8924db8b5e494231ebedccf_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20185030.png "屏幕截图 2023-12-26 185030.png")
下面让我给大家做一次演示。在以下示例中,我从 ++Hugging Face 模型库++中选择了 [Falcon-7B](https://huggingface.co/tiiuae/falcon-7b?trk=cndc-detail) 模型。我首先在本地部署模型,运行一个样本推理,执行本地基准测试以找到最佳配置,最后使用建议的配置将模型部署到 SageMaker 。我首先在本地完成模型部署,运行一个样本推论,并执行本地基准测试,以找到最佳配置,最后使用建议的配置将模型部署至 SageMaker 。
第一步,导入更新后的 SageMaker Python SDK ,并就匹配所选模型提示格式的示例模型输入和输出进行定义。
```Python
import sagemakerfrom sagemaker.serve.builder.model_builder
import ModelBuilderfrom sagemaker.serve.builder.schema_builder
import SchemaBuilderfrom sagemaker.serve import Mode
prompt = "Falcons are"
response = "Falcons are small to medium-sized birds of prey related to hawks and eagles."
sample_input = {
"inputs": prompt,
"parameters": {"max_new_tokens": 32}}
sample_output = [{"generated_text": response}]
```
接下来,使用 Hugging Face 模型 ID 创建一个 `ModelBuilder` 实例,使用示例模型输入和输出创建一个 `SchemaBuilder` 实例,定义一个本地模型路径,并将模式设置为 `LOCAL_CONTAINER` ,如此便可在本地部署模型。模式构造器将生成序列化和反序列化模型输入和输出所需的函数。
```Python
model_builder = ModelBuilder(
model="tiiuae/falcon-7b",
schema_builder=SchemaBuilder(sample_input, sample_output),
model_path="/path/to/falcon-7b",
mode=Mode.LOCAL_CONTAINER,
env_vars={"HF_TRUST_REMOTE_CODE": "True"})
```
之后,调用` build()` 将 PyTorch 模型转换为可部署到 SageMaker 上的模型。而该构建函数则会生成模型服务器所需的必要制品,包括 `inferency.py `和 `serving.properties` 文件。
```Python
local_mode_model = model_builder.build()
```
对于包括 Falcon 在内的 FMs , 用户可选择在本地容器模式下运行 `tune()`,其能开展本地基准测试,帮助你找到最佳的模型服务配置。这包括张量并行数量,若你的运行环境拥有多个可用的 GPU,它将指定需使用的 GPU 数量。一旦准备好,调用 `deploy()` 在本地开发环境中部署模型。
```Python
tuned_model = local_mode_model.tune()
tuned_model.deploy()
```
现在我们对模型进行测试。
```Python
updated_sample_input = model_builder.schema_builder.sample_inputprint(updated_sample_input)
{'inputs': 'Falcons are',
'parameters': {'max_new_tokens': 32}}
local_tuned_predictor.predict(updated_sample_input)[0]["generated_text"]
```
在我的演示中,模型返回了以下响应:
一种以锋利的爪子和强大的喙而闻名的鸟类。该种鸟类还以极高的飞行速度而著名[…]
当用户准备在 SageMaker 上部署模型时,需再次调用 `deploy()` ,将模式设置为 `SAGEMAKER_ENDPOINT` ,并提供具有适当权限的 [Amazon Identity and Access Management(IAM)](https://aws.amazon.com/cn/iam/?trk=cndc-detail)角色。
```Python
sm_predictor = tuned_model.deploy(
mode=Mode.SAGEMAKER_ENDPOINT,
role="arn:aws:iam::012345678910:role/role_name")
```
这表示用户可开始在 SageMaker 端点上部署模型。一旦端点准备好,用户便可以运行预测。
```Python
new_input = {'inputs': 'Eagles are','parameters': {'max_new_tokens': 32}}
sm_predictor.predict(new_input)[0]["generated_text"])
```
#### 新型 SageMaker Studio 模型的开发体验
用户可通过从模型着陆页或 [SageMaker JumpStart](https://aws.amazon.com/cn/sagemaker/jumpstart/?trk=cndc-detail) 模型详细信息页面选择一个或多个模型进行部署,或者通过在端点详细信息页面创建一个新端点来启动新的交互式模型部署工作流。
![屏幕截图 2023-12-26 191128.png](https://dev-media.amazoncloud.cn/1a2c5e7fbc0f4a61ad93a042a34e1b66_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191128.png "屏幕截图 2023-12-26 191128.png")
新的工作流可帮助用户以最少的输入快速部署所选模型。如果用户使用了 [SageMaker Inference Recommender](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender.html?trk=cndc-detail) 对其模型进行基准测试,下拉菜单将显示有关该基准测试的实例推荐。
![屏幕截图 2023-12-26 191206.png](https://dev-media.amazoncloud.cn/9f31580b494d459daabd590527c06ab0_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191206.png "屏幕截图 2023-12-26 191206.png")
在未对模型进行基准测试的情况下,下拉菜单将显示 SageMaker 根据自身试探法预测的潜在匹配实例。对于一些最受欢迎的 SageMaker JumpStart 模型,用户会看到经亚马逊云科技预测试的最佳实例类型。至于其它模型,用户将看到通常推荐的实例类型。例如,如果我在 SageMaker JumpStart 中选择 Falcon 40B Instruct 模型,我可以看到推荐的实例类型。
![屏幕截图 2023-12-26 191236.png](https://dev-media.amazoncloud.cn/4ec54d9ce4454b11a019dc5ffba73df9_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191236.png "屏幕截图 2023-12-26 191236.png")
![屏幕截图 2023-12-26 191244.png](https://dev-media.amazoncloud.cn/d667956e4be44823b7612cb89214f42e_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191244.png "屏幕截图 2023-12-26 191244.png")
然而,如果我想要针对成本或性能进行部署优化以满足我的特定用例,我可以打开 “ **备用配置** ” 面板,查看基于之前基准测试数据的更多选项。
![屏幕截图 2023-12-26 191333.png](https://dev-media.amazoncloud.cn/b8c91b0c9dce4773854799c115b45803_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191333.png "屏幕截图 2023-12-26 191333.png")
一经部署,用户便可测试推论或者管理自动缩放策略。
![屏幕截图 2023-12-26 191351.png](https://dev-media.amazoncloud.cn/a6dc565877984a74b1c70425239a2bce_%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-12-26%20191351.png "屏幕截图 2023-12-26 191351.png")
##### 注意事项
以下几点大家需注意:
**支持性 ML 模型和框架**:在发布阶段,新的 SageMaker Python SDK 工具支持 XGBoost 和 PyTorch 模型的部署。用户可通过指定 Hugging Face 模型 ID 或 SageMaker JumpStart 模型 ID 来使用 [SageMaker LMI 容器](https://docs.aws.amazon.com/sagemaker/latest/dg/large-model-inference-dlc.html?trk=cndc-detail) 或基于 [Hugging Face TGI 的容器](https://huggingface.co/blog/sagemaker-huggingface-llm?trk=cndc-detail)部署 FMs。用户还能使用自己的容器(BYOC)或 ONNX 格式内的 Triton 模型服务器完成模型部署任务。
现已可用
上述全套工具今天将在支持 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 实时推论的所有亚马逊云科技区域完成上线。全套工具均可免费试用,仅所有的 SageMaker 底层资源收取费用。
#### 详细信息
● [Amazon SageMaker 模型开发](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail)
● [SageMaker 开发人员指南](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html?trk=cndc-detail)
#### 去体验
赶紧到 [Amazon Management Console](https://console.aws.amazon.com/sagemaker/home?trk=cndc-detail) 内解锁新 SageMaker 模型的部署体验吧!
— [Antje](https://www.linkedin.cn/incareer/in/antje-barth/?trk=cndc-detail)