re:Invent 2023 技术上新|使用 Amazon SageMaker 新工具和引导式工作流程快速打包和部署模型

re:Invent
Amazon SageMaker
0
0
[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 现在推出了经过改进的模型部署体验,能够帮助您更快地部署传统的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(ML)模型和基础模型(FM)。 作为数据科学家或[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)从业者,您现在可以使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Python SDK 中新提供的 `ModelBuilder` 类打包模型,执行本地推理以检验运行时错误,并将模型从本地 IDE 或 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 笔记本部署到 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail)。 在 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 中,新的交互式模型部署工作流程将为您提供步骤指南,指导您选择实例类型,以获得最佳端点配置。[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Studio 还提供了其他接口,用于在已部署的端点上添加模型、测试推理和启用自动扩缩策略。 ### **Amazon SageMaker Python SDK 中的新工具** [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Python SDK 更新了新的工具,包括 `ModelBuilder` 类和 `SchemaBuilder` 类,它们将跨越[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)框架和模型服务器,为将模型转换为 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 可部署模型提供统一的体验。模型构建器会通过选择兼容的 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 容器,并从开发环境中捕获依赖关系,自动完成模型的部署。架构构建器可帮助您管理模型输入和输出的序列化与反序列化任务。您可以使用这些工具在本地开发环境部署模型,对其进行试验,修复所有运行时错误,并且在准备就绪后,您仅需使用一行代码,即可从本地测试过渡到在 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 上部署模型。 ![image.png](https://dev-media.amazoncloud.cn/655429a2117f448696a85b95cfab6512_image.png "image.png") 我将向您演示具体做法。在以下示例中,我选择了来自 Hugging Face 模型中心的 Falcon-7B 模型。我首先会在本地部署模型,运行示例推理,并执行本地基准测试,以找到最佳配置,最后将模型与推荐的配置部署到 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail)。 首先,导入更新后的 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Python SDK,并定义示例模型输入和输出,使其与所选模型的提示格式相匹配。 ```Python import sagemaker from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from 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 等 FM,您可以选择在本地容器模式下运行 `tune()` ,该模式将执行本地基准测试,以找到模型服务的最佳配置。这包括张量并行度,如果您的环境有多个 GPU 可用,它将指定要使用的 GPU 数量。准备就绪后,调用 `deploy()` ,在本地开发环境中部署模型。 ```Python tuned_model = local_mode_model.tune() tuned_model.deploy() ``` 我们来测试模型。 ```js updated_sample_input = model_builder.schema_builder.sample_input print(updated_sample_input) {'inputs': 'Falcons are', 'parameters': {'max_new_tokens': 32}} local_tuned_predictor.predict(updated_sample_input)[0]["generated_text"] ``` 在我的演示中,模型将返回以下响应: ```js a type of bird that are known for their sharp talons and powerful beaks.They are also known for their ability to fly at high speeds […] ``` 准备好在 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 上部署模型时,请再次调用 `deploy()` ,将模式设置为 `SAGEMAKLER_ENDPOINT` ,并提供具有适当权限的 Amazon Identity and Access Management(IAM)角色。 ```Python sm_predictor = tuned_model.deploy( mode=Mode.SAGEMAKER_ENDPOINT, role="arn:aws:iam::012345678910:role/role_name" ) ``` 这将开始在 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 端点上部署您的模型。端点准备就绪后,就可以进行预测了。 ```Python new_input = {'inputs': 'Eagles are','parameters': {'max_new_tokens': 32}} sm_predictor.predict(new_input)[0]["generated_text"]) ``` ### **全新的 Amazon SageMaker Studio 模型部署体验** 通过从模型登录页面或 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) JumpStart 模型详细信息页面选择一个或多个要部署的模型,或从端点详细信息页面创建新的端点,您将可以启动新的交互式模型部署工作流程。 ![image.png](https://dev-media.amazoncloud.cn/a962eed276e440168b6f0932fecb0fb4_image.png "image.png") 新的工作流程可帮助您以最少的输入快速部署所选模型。如果您使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) Inference Recommender 对模型进行基准测试,其下拉列表将显示基于该基准测试的实例推荐。 ![image.png](https://dev-media.amazoncloud.cn/596b8e82ed564ecebba5426a594da1d1_image.png "image.png") 如果未对模型进行基准测试,[Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 将根据其自身的启发式方法,预测可能合适的潜在实例,显示在下拉列表中。对于一些最受欢迎的 SageMaker JumpStart 模型,您将看到经过亚马逊云科技预先测试的最佳实例类型。对于其他模型,您将看到通常推荐的实例类型。例如,如果我在 SageMaker JumpStart 中选择 Falcon 40B Instruct 模型,我可以看到推荐的实例类型。 ![image.png](https://dev-media.amazoncloud.cn/3833d20ad3c840fa9e0deddc154a4cc0_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/5d5902f1a02549bc9d57a1a10dfe176e_image.png "image.png") 然而,如果我想根据成本或性能优化部署,以满足特定用例的需求,我可以打开**备用配置**面板查看更多选项,这些选项基于基准测试前的数据。 ![image.png](https://dev-media.amazoncloud.cn/ce3ce15442dc496699f70a3f42768270_image.png "image.png") 部署后,您可以测试推理,或管理自动扩缩策略。 ![image.png](https://dev-media.amazoncloud.cn/0930a59fabbf412db697284e62b30632_image.png "image.png") ### **注意事项** 这里需要牢记以下几点: **支持的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)模型和框架** – 在发布时,新的 SageMaker Python SDK 工具支持 XGBoost 和 PyTorch 模型的模型部署。您可以使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) LMI 容器或基于 Hugging Face TGI 的容器指定 Hugging Face 模型 ID 或 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) JumpStart 模型 ID,实现对 FM 的部署。您也可以自带容器(BYOC),或使用 Triton 模型服务器部署 ONNX 格式的模型。 ### **现已推出** 这套新工具现已在所有可以使用 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 实时推理的区域推出。使用这套新工具不会产生任何费用,您只需为创建的任何 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 基础资源付费。 ### **了解详情** * [Amazon SageMaker 模型部署](https://aws.amazon.com/sagemaker/deploy/?trk=cndc-detail) * [Amazon SageMaker 开发人员指南](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html?trk=cndc-detail)  ### **开始使用** 立即在亚马逊云科技管理控制台中探索全新的 [Amazon SageMaker](https://aws.amazon.com/cn/sagemaker/?trk=cndc-detail) 模型部署体验! > **了解所有 re:Invent 2023 热门发布产品,请扫描下方二维码:** ![image.png](https://dev-media.amazoncloud.cn/9493c521d44046f2a7e159ae421e52cc_image.png "image.png") ![开发者尾巴.gif](https://dev-media.amazoncloud.cn/bf04c5c24087406b89f898e98e507122_%E5%BC%80%E5%8F%91%E8%80%85%E5%B0%BE%E5%B7%B4.gif "开发者尾巴.gif")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭