

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

# 微调模型
<a name="jumpstart-fine-tune"></a>

微调过程在新数据集上训练已经预训练的模型，而无需从头开始训练。这个过程也称为转移学习，可以使用较小数据集和较短的训练时间生成准确模型。如果模型的卡片显示**可微调**属性设置为**是**，则可以对其进行微调。

 ![\[JumpStart fine-tunable Image Classification - TensorFlow model\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/jumpstart/jumpstart-finetune-model.png) 

**重要**  
截至 2023 年 11 月 30 日，之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用 Studio Classic 应用程序。有关使用更新的 Studio 体验的信息，请参阅 [亚马逊 SageMaker Studio](studio-updated.md)。  
Studio Classic 仍针对现有工作负载进行维护，但不再可供入门使用。您只能停止或删除现有的 Studio Classic 应用程序，不能创建新的应用程序。我们建议您将[工作负载迁移到全新 Studio 体验](studio-updated-migrate.md)。

**注意**  
有关在 Studio 中微调 JumpStart 模型的更多信息，请参阅 [在 Studio 中微调模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)

## 微调数据来源
<a name="jumpstart-fine-tune-data"></a>

 在微调模型时，您可以使用默认数据集或选择自己的数据，该数据位于 Amazon S3 存储桶中。

要浏览可供您使用的存储桶，请选择**查找 S3 存储桶**。这些存储桶受用于设置 Studio Classic 帐户的权限的限制。您也可以通过选择**输入 Amazon S3 存储桶位置**来指定 Amazon S3 URI。

 ![\[JumpStart data source settings with default dataset selected.\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/jumpstart/jumpstart-dataset.png) 

**提示**  
 要了解如何格式化存储桶中的数据，请选择**了解更多**。模型的描述部分还提供了有关输入和输出的详细信息。  

 对于文本模型：
+  存储桶必须具有 data.csv 文件。
+  第一列必须是用于类标签的唯一整数。例如，`1`、`2`、`3`、`4`、`n`
+  第二列必须是字符串。
+  第二列应包含与模型的类型和语言相符的对应文本。  

 对于视觉模型：
+  存储桶中的子目录数量必须与类数相同。
+  每个子目录都应包含属于该类的 .jpg 格式的图像。

**注意**  
 Amazon S3 存储桶必须与您运行 SageMaker Studio Classic 的 AWS 区域 位置相同，因为 SageMaker AI 不允许跨区域请求。

## 微调部署配置
<a name="jumpstart-fine-tune-deploy"></a>

p3 系列是用于深度学习训练最快的系列，建议用于微调模型。下图显示了每种实例类型 GPUs 中的数量。还有其他可供选择的选项，包括 p2 和 g4 实例类型。


|  实例类型  |  GPUs  | 
| --- | --- | 
|  p3.2xlarge  |  1  | 
|  p3.8xlarge  |  4  | 
|  p3.16xlarge  |  8  | 
|  p3dn.24xlarge  |  8  | 

## 超参数
<a name="jumpstart-hyperparameters"></a>

您可以自定义用于微调模型的训练作业的超参数。每个可微调模型的可用超参数因模型而异。有关每个可用超参数的信息，请参阅您在[Amazon 中的内置算法和预训练模型 SageMaker](algos.md)中选择的模型的超参数文档。例如，有关可微调[图像分类- TensorFlow 超参数](IC-TF-Hyperparameter.md)的图像分类- TensorFlow 超参数的详细信息，请参阅。

如果您在不更改超参数的情况下将默认数据集用于文本模型，则会得到几乎相同的模型。对于视觉模型，默认数据集与预训练模型在训练时使用的数据集不同，因此您的模型也会不同。

以下超参数在模型中很常见：
+ **纪元** – 一个纪元是遍历整个数据集的一个周期。通过多个时间间隔完成一个批次，通过多个批次最终完成一个纪元。系统运行多个纪元，直到模型的准确性达到可接受的水平，或者说当错误率降至可接受的水平以下时。
+ **学习率** – 各个纪元之间应该变化的值的数量。随着模型的优化，其内部权重将被调整，并检查错误率以确定模型是否有所改善。典型的学习率为 0.1 或 0.01，其中 0.01 是一个小得多的调整，可能会导致训练需要很长时间才能收敛，而 0.1 则要大得多，可能会导致训练过度。这是在训练模型时可能会调整的主要超参数之一。请注意，对于文本模型，小得多的学习率（BERT 为 5e-5）可以生成更准确的模型。
+ **Batch siz** e — 要从数据集中为每个间隔选择的记录数量，然后发送到 GPUs 进行训练。

  在图像示例中，您可以向每个 GPU 发送 32 张图像，所以批次大小是 32。如果您选择具有多个 GPU 的实例类型，则批次将除以数量 GPUs。建议的批次大小因数据和所使用的模型而异。例如，针对图像数据进行优化的方式与处理语言数据的方式不同。

  在部署配置部分的实例类型图表中，您可以看到 GPUs 每种实例类型的数量。从推荐的标准批次大小开始（例如，对于视觉模型为 32）。然后，将其乘以您选择的实例类型 GPUs 中的数量。例如，如果您使用的是`p3.8xlarge`，则这将是 32（批次大小）乘以 4 (GPUs)，总共为 128，因为批量大小会根据数量进行调整。 GPUs对于 BERT 这样的文本模型，请尝试从批次大小 64 开始，然后根据需要减少。

 

## 训练输出
<a name="jumpstart-training"></a>

微调过程完成后， JumpStart 提供有关模型的信息：父模型、训练作业名称、训练作业 ARN、训练时间和输出路径。输出路径是您在 Amazon S3 存储桶中可以找到新模型的位置。文件夹结构使用您提供的模型名称，模型文件位于 `/output` 子文件夹内，其名称始终为 `model.tar.gz`。  

 示例：`s3://bucket/model-name/output/model.tar.gz`

## 配置模型训练的默认值
<a name="jumpstart-config-defaults-training"></a>

您可以为 IAM 角色和 KMS 密钥等参数配置默认值 VPCs，以便为 JumpStart 模型部署和训练进行预填充。有关更多信息，请参阅[为 JumpStart 模型配置默认值](jumpstart-deploy.md#jumpstart-config-defaults)。