

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

# 利用领域适应性微调大型语言模型（LLM）
利用领域适应性微调模型

通过领域适应微调，您可以利用预先训练的基础模型，并使用有限的特定于领域的数据，根据特定任务来调整模型。如果通过提示工程无法提供足够的自定义，则可以使用领域适应微调，让您的模型处理特定于领域的语言，例如行业术语、技术术语或其他专业数据。这个微调过程修改模型的权重。

要在特定领域的数据集上微调模型：

1. 准备训练数据。有关说明，请参阅[准备和上传训练数据以进行领域适应微调](#jumpstart-foundation-models-fine-tuning-domain-adaptation-prepare-data)。

1. 创建您的微调训练作业。有关说明，请参阅[创建基于指令的微调的训练作业](#jumpstart-foundation-models-fine-tuning-domain-adaptation-train)。

您可以在中找到 end-to-end示例[示例笔记本](#jumpstart-foundation-models-fine-tuning-domain-adaptation-examples)。

领域适应微调适用于以下基础模型：

**注意**  
一些 JumpStart 基础模型，例如 Llama 2 7B，要求在微调和执行推理之前接受最终用户许可协议。有关更多信息，请参阅 [最终用户许可协议](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula)。
+ Bloom 3B
+ Bloom 7B1
+ BloomZ 3B FP16
+ BloomZ 7B1 FP16
+ GPT-2 XL
+ GPT-J 6B
+ GPT-Neo 1.3B
+ GPT-Neo 125M
+ GPT-NEO 2.7B
+ Llama 2 13B
+ Llama 2 13B Chat
+ Llama 2 13B Neuron
+ Llama 2 70B
+ Llama 2 70B Chat
+ Llama 2 7B
+ Llama 2 7B Chat
+ Llama 2 7B Neuron

## 准备和上传训练数据以进行领域适应微调


域适应微调的训练数据可以采用 CSV、JSON 或 TXT 文件格式提供。所有训练数据必须放在单个文件夹内的单个文件中。

训练数据取自 CSV 或 JSON 训练数据文件的**文本**列。如果没有标记为**文本**的列，则训练数据将从 CSV 或 JSON 训练数据文件的第一列中获取。

以下是用于微调的 TXT 文件正文示例：

```
This report includes estimates, projections, statements relating to our
business plans, objectives, and expected operating results that are “forward-
looking statements” within the meaning of the Private Securities Litigation
Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E
of ....
```

### 拆分数据用于训练和测试


您可以选择提供另一个包含验证数据的文件夹。此文件夹还应包含一个 CSV、JSON 或 TXT 文件。如果未提供验证数据集，则会留出一定量的训练数据用于验证。在选择用于微调模型的超参数时，可以调整用于验证的训练数据比例。

### 将微调数据上传到 Amazon S3


将准备好的数据上传到亚马逊简单存储服务 (Amazon S3)，以便在微调 JumpStart 基础模型时使用。您可以使用以下命令上传数据：

```
from sagemaker.s3 import S3Uploader
import sagemaker
import random

output_bucket = sagemaker.Session().default_bucket()
local_data_file = "train.txt"
train_data_location = f"s3://{output_bucket}/training_folder"
S3Uploader.upload(local_data_file, train_data_location)
S3Uploader.upload("template.json", train_data_location)
print(f"Training data: {train_data_location}")
```

## 创建基于指令的微调的训练作业


将数据上传到 Amazon S3 后，您可以微调和部署 JumpStart 基础模型。要在 Studio 中微调您的模型，请参阅 [在 Studio 中微调模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)。要使用 SageMaker Python SDK 微调模型，请参阅[使用 `JumpStartEstimator` 类微调公开可用的基础模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)。

## 示例笔记本


有关域适应微调的更多信息，请参阅以下示例笔记本：
+ [SageMaker JumpStart 基础模型——微调特定领域数据集上的文本生成 GPT-J 6B 模型](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/domain-adaption-finetuning-gpt-j-6b.html)
+ [微调 LLa MA 2 机型 JumpStart](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/llama-2-finetuning.html)