微调策管中心模型 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

微调策管中心模型

在您的私有策管模型中心中,您可以使用模型参考运行微调训练作业。模型引用指向 SageMaker AI 公共中心中公开可用的 JumpStart 模型,但您可以根据自己的数据针对您的特定用例对模型进行微调。微调作业完成后,您可以访问模型权重,然后可以使用这些权重或将其部署到端点。

使用 Pyth SageMaker on SDK,只需几行代码即可对精心策划的中心模型进行微调。有关微调公开可用 JumpStart模型的更多一般信息,请参阅用于微调的基础模型和超参数

先决条件

要微调精选中心中的 JumpStart 模型引用,请执行以下操作:

  1. 确保您的用户的 IAM 角色附加了 SageMaker AI TrainHubModel 权限。有关更多信息,请参阅《Amazon IAM 用户指南》中的添加和移除 IAM 身份权限

    您应将下列示例策略附加到用户的 IAM 角色。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sagemaker:TrainHubModel", "Resource": "arn:aws:sagemaker:*:111122223333:hub/*" } ] }
    注意

    如果您跨多个账户共享策管中心,并且中心内容归其他账户所有,请确保您的 HubContent(模型参考资源)具有基于资源的 IAM 策略,另外向请求的账户授予 TrainHubModel 权限,如以下示例所示。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "sagemaker:TrainHubModel" ], "Resource": [ "arn:aws:sagemaker:*:111122223333:hub/*" ] } ] }
  2. 拥有一个私人策划中心,其中包含对要微调的 JumpStart 模型的模型引用。有关创建私有中心的更多信息,请参阅 创建私有模型中心。要了解如何向您的私有中心添加公开可用的 JumpStart 模型,请参阅将模型添加到私有中心

    注意

    您选择的 JumpStart 模型应该是可微调的。您可以通过查看内置算法与预训练模型表来验证模型是否可微调。

  3. 有一个要用于微调该模型的训练数据集。数据集应采用适用于您希望微调的模型的训练格式。

微调策管中心模型参考

以下过程向您展示了如何使用 Pyth SageMaker on SDK 在您的私有策划中心中微调模型引用。

  1. 确保你安装了(至少2.242.0)最新版本的 SageMaker Python 开发工具包。有关更多信息,请参阅使用 SageMaker Python 软件开发工具包的 2.x 版本

    !pip install --upgrade sagemaker
  2. 从 SageMaker Python 软件开发工具包中导入适用于 Python (Boto3) 的 Amazon SDK和你需要的模块。

    import boto3 from sagemaker.jumpstart.estimator import JumpStartEstimator from sagemaker.session import Session
  3. 初始化 Boto3 会话、A SageMaker I 客户端和 Pyth SageMaker on SDK 会话。

    sagemaker_client = boto3.Session(region_name=<Amazon-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. 创建JumpStartEstimator并提供 JumpStart 模型 ID、包含模型引用的中心名称以及您的 SageMaker Python SDK 会话。有关模型列表 IDs,请参阅 “带有预训练模型的内置算法表”。

    或者,您可以在创建估算器时指定 instance_typeinstance_count 字段。如果您不这样做,则训练作业将使用您所使用的模型的默认实例类型和计数。

    您也可以选择指定要存储经过微调的模型权重的 Amazon S3 位置的 output_path。如果您未指定output_path,则使用账户中该区域的默认 A SageMaker I Amazon S3 存储桶,其命名格式如下:sagemaker-<region>-<account-id>

    estimator = JumpStartEstimator( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, sagemaker_session=sm_session, # If you don't specify an existing session, a default one is created for you # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>" )
  5. 使用 training 键创建字典,其中您指定了微调数据集的位置。此示例指向 Amazon S3 URI。如果您还有其他注意事项,例如使用本地模式或多个训练数据通道,请参阅 SageMaker Python SDK 文档中的 JumpStartEstimator.fit () 以了解更多信息。

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. 调用估算器的 fit() 方法并传入您的训练数据和您的 EULA 接受情况(如果适用)。

    注意

    以下示例设置 accept_eula=False.。要接受 EULA,您应该手动将该值更改为 True

    estimator.fit(inputs=training_input, accept_eula=False)

您的微调作业现在应该开始了。

您可以在 SageMaker AI 控制台中或使用 ListTrainingJobsAPI 查看训练作业,查看微调作业。

您可以在JumpStartEstimator对象中指定的 Amazon S3 output_path 上访问经过微调的模型项目(该区域的默认 SageMaker AI Amazon S3 存储桶,或者您指定的自定义 Amazon S3 路径(如果适用))。