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

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

Amazon SageMaker 现在推出了经过改进的模型部署体验,能够帮助您更快地部署传统的机器学习(ML)模型和基础模型(FM)。

作为数据科学家或机器学习从业者,您现在可以使用 Amazon SageMaker Python SDK 中新提供的 ModelBuilder 类打包模型,执行本地推理以检验运行时错误,并将模型从本地 IDE 或 Amazon SageMaker Studio 笔记本部署到 Amazon SageMaker。

在 Amazon SageMaker Studio 中,新的交互式模型部署工作流程将为您提供步骤指南,指导您选择实例类型,以获得最佳端点配置。Amazon SageMaker Studio 还提供了其他接口,用于在已部署的端点上添加模型、测试推理和启用自动扩缩策略。

Amazon SageMaker 

Python SDK 中的新工具

Amazon SageMaker Python SDK 更新了新的工具,包括 ModelBuilder 类和 SchemaBuilder 类,它们将跨越机器学习框架和模型服务器,为将模型转换为 Amazon SageMaker 可部署模型提供统一的体验。模型构建器会通过选择兼容的 Amazon SageMaker 容器,并从开发环境中捕获依赖关系,自动完成模型的部署。架构构建器可帮助您管理模型输入和输出的序列化与反序列化任务。您可以使用这些工具在本地开发环境部署模型,对其进行试验,修复所有运行时错误,并且在准备就绪后,您仅需使用一行代码,即可从本地测试过渡到在 Amazon SageMaker 上部署模型。

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

我将向您演示具体做法。在以下示例中,我选择了来自 Hugging Face 模型中心的 Falcon-7B 模型。我首先会在本地部署模型,运行示例推理,并执行本地基准测试,以找到最佳配置,最后将模型与推荐的配置部署到 Amazon SageMaker。

首先,导入更新后的 Amazon SageMaker 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()

我们来测试模型。

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"]

在我的演示中,模型将返回以下响应:

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 上部署模型时,请再次调用 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 端点上部署您的模型。端点准备就绪后,就可以进行预测了。

 Python 

new_input = {'inputs': 'Eagles are','parameters': {'max_new_tokens': 32}}
sm_predictor.predict(new_input)[0]["generated_text"])

全新的 Amazon SageMaker Studio 

模型部署体验

通过从模型登录页面或 Amazon SageMaker JumpStart 模型详细信息页面选择一个或多个要部署的模型,或从端点详细信息页面创建新的端点,您将可以启动新的交互式模型部署工作流程。

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

新的工作流程可帮助您以最少的输入快速部署所选模型。如果您使用 Amazon SageMaker Inference Recommender 对模型进行基准测试,其下拉列表将显示基于该基准测试的实例推荐。

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

如果未对模型进行基准测试,Amazon SageMaker 将根据其自身的启发式方法,预测可能合适的潜在实例,显示在下拉列表中。对于一些最受欢迎的 SageMaker JumpStart 模型,您将看到经过亚马逊云科技预先测试的最佳实例类型。对于其他模型,您将看到通常推荐的实例类型。例如,如果我在 SageMaker JumpStart 中选择 Falcon 40B Instruct 模型,我可以看到推荐的实例类型。

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

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

然而,如果我想根据成本或性能优化部署,以满足特定用例的需求,我可以打开备用配置面板查看更多选项,这些选项基于基准测试前的数据。

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

部署后,您可以测试推理,或管理自动扩缩策略。

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

注意事项

这里需要牢记以下几点:

支持的机器学习模型和框架 – 在发布时,新的 SageMaker Python SDK 工具支持 XGBoost 和 PyTorch 模型的模型部署。您可以使用 Amazon SageMaker LMI 容器或基于 Hugging Face TGI 的容器指定 Hugging Face 模型 ID 或 Amazon SageMaker JumpStart 模型 ID,实现对 FM 的部署。您也可以自带容器(BYOC),或使用 Triton 模型服务器部署 ONNX 格式的模型。

现已推出

这套新工具现已在所有可以使用 Amazon SageMaker 实时推理的区域推出。使用这套新工具不会产生任何费用,您只需为创建的任何 Amazon SageMaker 基础资源付费。

了解详情

  • Amazon SageMaker 模型部署

    https://aws.amazon.com/sagemaker/deploy/

  • Amazon SageMaker 开发人员指南 

    https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html

开始使用

立即在亚马逊云科技管理控制台中探索全新的 Amazon SageMaker 模型部署体验!

了解所有 re:Invent 2023 热门发布产品,

请扫描下方二维码:

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

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

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

听说,点完下面4个按钮

就不会碰到bug了!

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

你可能感兴趣的:(re:Invent 2023 技术上新|使用 Amazon SageMaker 新工具和引导式工作流程快速打包和部署模型...)