

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

# 基础模型自定义
<a name="jumpstart-foundation-models-customize"></a>

基础模型是非常强大的模型，能够处理各种任务。为了有效地解决大多数任务，这些模型需要进行某种形式的自定义。

根据特定使用案例，推荐用于自定义基础模型的第一种方法是通过提示工程。为基础模型提供精心设计、具有丰富上下文的提示可以帮助实现预期的结果，而无需微调或对模型权重进行任何更改。有关更多信息，请参阅 [适用于基础模型的提示工程](jumpstart-foundation-models-customize-prompt-engineering.md)。

如果仅靠提示工程不足以根据特定任务自定义基础模型，则可以根据其他特定于领域的数据对基础模型进行微调。有关更多信息，请参阅 [用于微调的基础模型和超参数](jumpstart-foundation-models-fine-tuning.md)。微调过程涉及到更改模型权重。

如果您想使用知识库中的信息自定义模型而不进行任何重新训练，请参阅[检索增强生成](jumpstart-foundation-models-customize-rag.md)。

# 适用于基础模型的提示工程
<a name="jumpstart-foundation-models-customize-prompt-engineering"></a>

提示工程是针对语言模型，设计和完善提示或输入刺激以生成特定类型输出的过程。提示工程涉及到选择适当的关键字、提供上下文，并以促进模型生成所需响应的方式塑造输入，这是一项主动塑造基础模型行为和输出的重要技术。

有效的提示工程对于指导模型行为和实现所需的响应至关重要。通过提示工程，您可以控制模型的语气、风格和领域专业知识，而无需进行诸如微调之类的更多自定义措施。我们建议您在考虑根据其他数据对模型进行微调之前，专门用一些时间来设计提示工程。目标是为模型提供足够的背景信息和指导，使其能够对没见过或有限数据的场景进行概括并有好的表现。

## 零样本学习
<a name="jumpstart-foundation-models-customize-prompt-engineering-zero-shot"></a>

零样本学习涉及训练模型以对没见过的类或任务进行概括和预测。要在零样本学习环境中执行提示工程，我们建议您构造提示，明确提供有关目标任务和所需输出格式的信息。例如，如果您要使用基础模型，对模型在训练期间未看到的一组类进行零样本文本分类，则良好设计的提示可能是：`"Classify the following text as either sports, politics, or entertainment: [input text]."`。通过明确指定目标类和预期的输出格式，您可以指导模型即使对没见过的类也能做出准确的预测。

## 少样本学习
<a name="jumpstart-foundation-models-customize-prompt-engineering-few-shot"></a>

少样本学习涉及使用有限的数据量训练模型，以用于新课程或任务。在少样本学习环境中，提示工程侧重于设计能够高效利用有限的可用训练数据的提示。例如，如果您使用基础模型执行图像分类任务，并且只有几个新图像类的样本，则可以设计一个提示，在其中包含可用的已标注样本，并带有用于目标类的占位符。例如，提示可能是：`"[image 1], [image 2], and [image 3] are examples of [target class]. Classify the following image as [target class]"`。通过纳入有限的已标注样本并明确指定目标类，即使训练数据极少，您也可以指导模型进行概括并做出准确的预测。

## 支持的推理参数
<a name="jumpstart-foundation-models-customize-prompt-engineering-inference-params"></a>

更改推理参数也可能会影响对提示的响应。您可以尽量为提示添加具体内容和上下文，也可以尝试使用支持的推理参数。以下是一些常用的推理参数的示例：


| 推理参数 | 说明 | 
| --- | --- | 
| `max_new_tokens` | 基础模型响应的最大输出长度。有效值：整数，范围：正整数。 | 
| `temperature` | 控制输出的随机性。较高的温度会导致输出序列中包含低概率词，而较低的温度会生成带有高概率词的输出序列。如果是 `temperature=0`，则响应只由概率最高的单词组成（贪婪解码）。有效值：浮点型，范围：正浮点数。 | 
| `top_p` | 在文本生成的每一步中在文本生成的每个步骤中，模型都会以 `top_p` 的累积概率从尽可能小的词集中采样。有效值：浮点型，范围：0.0，1.0。 | 
| `return_full_text` | 如果 `True`，则输入文本是生成的输出文本的一部分。有效值：布尔值，默认值：False。 | 

有关基础模型推理的更多信息，请参见 [使用 `JumpStartModel` 类部署公开可用的基础模型](jumpstart-foundation-models-use-python-sdk-model-class.md)。

如果提示工程不足以根据特定的业务需求、特定领域的语言、目标任务或其他要求来调整基础模型，您可以考虑根据其他数据微调模型，或者使用检索增强生成 (RAG)，通过来自存档知识来源的增强上下文来增强模型架构。有关更多信息，请参阅 [用于微调的基础模型和超参数](jumpstart-foundation-models-fine-tuning.md)或 [检索增强生成](jumpstart-foundation-models-customize-rag.md)。

# 用于微调的基础模型和超参数
<a name="jumpstart-foundation-models-fine-tuning"></a>

基础模型的计算成本很高，并且是在大型的、未标注的语料库上训练的。微调预训练的基础模型是一种经济实惠的方式，可以利用其广泛的功能，同时根据自己的小型语料库来自定义模型。微调是一种自定义方法，它涉及进一步的训练，并且会改变模型的权重。

如果您有以下要求，微调可能会很有用：
+ 根据特定业务需求自定义模型
+ 让模型可以成功处理特定于领域的语言，例如行业术语、技术术语或其他专业词汇
+ 针对特定任务增强性能
+ 在应用中提供准确、相对的和感知上下文的响应
+ 更真实、毒性更小、更符合具体要求的响应

根据使用案例和所选的基础模型，您可以采用两种主要方法进行微调。

1. 如果您有兴趣根据特定于领域数据微调模型，请参阅[利用领域适应性微调大型语言模型（LLM）](jumpstart-foundation-models-fine-tuning-domain-adaptation.md)。

1. 如果您对使用提示和响应样本进行基于指令的微调感兴趣，请参阅[使用提示指令微调大型语言模型（LLM）](jumpstart-foundation-models-fine-tuning-instruction-based.md)。

## 可进行微调的基础模型
<a name="jumpstart-foundation-models-fine-tuning-models"></a>

您可以微调以下任何 JumpStart 基础模型：
+ Bloom 3B
+ Bloom 7B1
+ BloomZ 3B FP16
+ BloomZ 7B1 FP16
+ Code Llama 13B
+ Code Llama 13B Python
+ Code Llama 34B
+ Code Llama 34B Python
+ Code Llama 70B
+ Code Llama 70B Python
+ Code Llama 7B
+ Code Llama 7B Python
+ CyberAgentLM2-7B-Chat (-7B-Chat) CALM2
+ Falcon 40B BF16
+ Falcon 40B Instruct BF16
+ Falcon 7B BF16
+ Falcon 7B Instruct BF16
+ Flan-T5 Base
+ Flan-T5 Large
+ Flan-T5 Small
+ Flan-T5 XL
+ Flan-T5 XXL
+ Gemma 2B
+ Gemma 2B Instruct
+ Gemma 7B
+ Gemma 7B Instruct
+ GPT-2 XL
+ GPT-J 6B
+ GPT-Neo 1.3B
+ GPT-Neo 125M
+ GPT-NEO 2.7B
+ LightGPT Instruct 6B
+ 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
+ Mistral 7B
+ Mixtral 8x7B
+ Mixtral 8x7B Instruct
+ RedPajama Incite Base 3B V1
+ RedPajama Incite Base 7B V1
+ RedPajama INCITE Chat 3B V1
+ RedPajama INCITE Chat 7B V1
+ RedPajama INCITE Instruct 3B V1
+ RedPajama INCITE Instruct 7B V1
+ Stable Diffusion 2.1

## 通常支持的微调超参数
<a name="jumpstart-foundation-models-fine-tuning-hyperparameters"></a>

微调时，不同的基础模型支持不同的超参数。以下是常用的超参数，可在训练过程中进一步自定义模型：


| 推理参数 | 说明 | 
| --- | --- | 
| `epoch` | 模型在训练过程中通过微调数据集的次数。必须是大于 1 的整数。 | 
| `learning_rate` |  完成每批微调训练样本后，更新模型权重的速度。必须是大于 0 的正浮点数。 | 
| `instruction_tuned` |  是否对模型进行指令训练。必须为 `'True'` 或 `'False'`。 | 
| `per_device_train_batch_size` |  用于训练的每个 GPU 内核或 CPU 的批量大小。其值必须为正整数。 | 
| `per_device_eval_batch_size` |  用于评估的每个 GPU 内核或 CPU 的批量大小。其值必须为正整数。 | 
| `max_train_samples` |  为了调试或加快训练速度，请将训练样本的数量截断为该值。值 -1 表示模型使用了所有训练样本。必须是正整数或 -1。 | 
| `max_val_samples` |  为了调试或加快训练速度，请将验证样本的数量截断为该值。值 -1 表示模型使用了所有验证样本。必须是正整数或 -1。 | 
| `max_input_length` |  令牌化后输入序列的最大总长度。长度超过此值的序列将被截断。如果为 -1，`max_input_length` 将被设置为 1024 和分词器定义的 `model_max_length` 的最小值。如果设置为正值，`max_input_length` 将被设置为所提供值和分词器定义的 `model_max_length` 的最小值。必须是正整数或 -1。 | 
| `validation_split_ratio` |  如果没有验证通道，则训练 - 验证的比例将从训练数据中拆分。必须介于 0 和 1 之间。 | 
| `train_data_split_seed` |  如果不存在验证数据，则将输入的训练数据随机拆分为模型使用的训练数据和验证数据。必须是整数。 | 
| `preprocessing_num_workers` |  用于预处理的进程数。如果 `None`，则使用主进程进行预处理。 | 
| `lora_r` |  低秩适应 (LoRA) r 值，作为权重更新的缩放因子。其值必须为正整数。 | 
| `lora_alpha` |  低秩适应 (LoRA) 阿尔法值，作为权重更新的缩放因子。一般是 `lora_r` 的 2 到 4 倍。其值必须为正整数。 | 
| `lora_dropout` |  低秩适应 (LoRA) 层的释放参数必须是介于 0 和 1 之间的正浮点数。 | 
| `int8_quantization` |  如果 `True`，则模型将以 8 位精度加载，以进行训练。 | 
| `enable_fsdp` |  如果 `True`，则训练使用完全分片数据并行。 | 

在 Studio 中微调模型时，您可以指定超参数值。有关更多信息，请参阅 [在 Studio 中微调模型](jumpstart-foundation-models-use-studio-updated-fine-tune.md)。

使用 SDK 微调模型时，您也可以覆盖默认的超参数值。 SageMaker Python有关更多信息，请参阅 [使用 `JumpStartEstimator` 类微调公开可用的基础模型](jumpstart-foundation-models-use-python-sdk-estimator-class.md)。

# 利用领域适应性微调大型语言模型（LLM）
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation"></a>

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

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

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

## 准备和上传训练数据以进行领域适应微调
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-prepare-data"></a>

域适应微调的训练数据可以采用 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 ....
```

### 拆分数据用于训练和测试
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-split-data"></a>

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

### 将微调数据上传到 Amazon S3
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-upload-data"></a>

将准备好的数据上传到亚马逊简单存储服务 (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}")
```

## 创建基于指令的微调的训练作业
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-train"></a>

将数据上传到 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)。

## 示例笔记本
<a name="jumpstart-foundation-models-fine-tuning-domain-adaptation-examples"></a>

有关域适应微调的更多信息，请参阅以下示例笔记本：
+ [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)

# 使用提示指令微调大型语言模型（LLM）
<a name="jumpstart-foundation-models-fine-tuning-instruction-based"></a>

基于指令的微调使用已标注的样本，提高预训练基础模型在特定任务上的性能。已标注样本采用提示和响应对的格式，可解析为指令。这个微调过程修改模型的权重。有关基于指令的微调的更多信息，请参阅 [FLAN 简介：具有指令微调的更具通用性的语言模型](https://ai.googleblog.com/2021/10/introducing-flan-more-generalizable.html)和[缩放指令微调语言模型](https://arxiv.org/abs/2210.11416)。

经过微调的 LAnguage 网络 (FLAN) 模型使用指令调整来使模型更适合解决一般的下游 NLP 任务。Amazon 在 FLAN 模型系列中 SageMaker JumpStart 提供了许多基础模型。例如，FLAN-T5 模型针对广泛的任务进行了指令微调，以提高各种常见使用案例的零样本性能。通过额外的数据和微调，基于指令的模型可以针对在预训练期间未考虑过的更具体的任务进一步进行调整。

要在特定任务中使用提示 - 响应对任务指令对 LLM 进行微调：

1. 在 JSON 文件中编写指令。有关提示 - 响应对文件所需格式和数据文件夹结构的更多信息，请参阅 [准备并上传训练数据，以便进行基于指令的微调](#jumpstart-foundation-models-fine-tuning-instruction-based-prepare-data)。

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

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

只有一部分 JumpStart 基础模型与基于指令的微调兼容。基于指令的微调适用于以下基础模型：

**注意**  
一些 JumpStart 基础模型，例如 Llama 2 7B，要求在微调和执行推理之前接受最终用户许可协议。有关更多信息，请参阅 [最终用户许可协议](jumpstart-foundation-models-choose.md#jumpstart-foundation-models-choose-eula)。
+ Flan-T5 Base
+ Flan-T5 Large
+ Flan-T5 Small
+ Flan-T5 XL
+ Flan-T5 XXL
+ 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
+ Mistral 7B
+ RedPajama Incite Base 3B V1
+ RedPajama Incite Base 7B V1
+ RedPajama INCITE Chat 3B V1
+ RedPajama INCITE Chat 7B V1
+ RedPajama INCITE Instruct 3B V1
+ RedPajama INCITE Instruct 7B V1

## 准备并上传训练数据，以便进行基于指令的微调
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-prepare-data"></a>

基于指令的微调所需的训练数据必须以 JSON 行文本文件格式提供，其中每一行都是一个字典。所有训练数据必须放在一个文件夹中。此文件夹可包含多个 .jsonl 文件。

训练文件夹还可以包含一个模板 JSON 文件 (`template.json`)，用于描述数据的输入和输出格式。如果未提供模板文件，则使用以下模板文件：

```
{
  "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}",
  "completion": "{response}"
}
```

根据 `template.json` 文件，训练数据的每个 .jsonl 条目必须包括 `{instruction}`、`{context}` 和 `{response}` 字段。

如果您提供了自定义模板 JSON 文件，请使用 `"prompt"` 和 `"completion"` 键定义自己的必填字段。根据以下自定义模板 JSON 文件，训练数据的每个 .jsonl 条目必须包括 `{question}`、`{context}` 和 `{answer}` 字段：

```
{
  "prompt": "question: {question} context: {context}",
  "completion": "{answer}"
}
```

### 拆分数据用于训练和测试
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-split-data"></a>

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

### 将微调数据上传到 Amazon S3
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-upload-data"></a>

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

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

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

## 创建基于指令的微调的训练作业
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-train"></a>

将数据上传到 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)。

## 示例笔记本
<a name="jumpstart-foundation-models-fine-tuning-instruction-based-examples"></a>

有关基于指令的微调的更多信息，请参阅以下示例笔记本：
+ [微调 LLa MA 2 机型 JumpStart](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/llama-2-finetuning.html)
+ [简介 SageMaker JumpStart -使用 Mistral 模型生成文本](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/mistral-7b-instruction-domain-adaptation-finetuning.html)
+ [简介 SageMaker JumpStart -使用 Falcon 模型生成文本](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/falcon-7b-instruction-domain-adaptation-finetuning.html)
+ [SageMaker JumpStart 基础模型- HuggingFace Text2Text 指令微调](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/instruction-fine-tuning-flan-t5.html)

# 检索增强生成
<a name="jumpstart-foundation-models-customize-rag"></a>

基础模型通常是离线训练的，这使得模型不了解在模型训练后创建的任何数据。此外，基础模型在非常通用的领域语料库上训练，这使得它们在特定于领域的任务中的效率较低。您可以使用检索增强生成 (RAG) 在基础模型的外部检索数据，并通过在上下文中添加检索到的相关数据来增强提示。有关 RAG 模型架构的更多信息，请参阅[知识密集型 NLP 任务的检索增强生成](https://arxiv.org/abs/2005.11401)。

使用 RAG，用于增强提示的外部数据可以来自多个数据源，例如文档存储库、数据库或。 APIs第一步是将您的文档和任何用户查询转换为兼容的格式，以执行相关性搜索。为了使格式兼容，需要使用嵌入式语言模型，将文档集合或知识库以及用户提交的查询转换为数字表示形式。*嵌入*是在向量空间中对文本进行数字表示的过程。RAG 模型架构比较知识库向量中用户查询的嵌入情况。然后，将知识库中类似文档的相关上下文附加到原始用户提示中。接下来，此增强提示将发送到基础模型。您可以异步更新知识库及其相关嵌入。

 ![\[A model architecture diagram of Retrieval Augmented Generation (RAG).\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/jumpstart/jumpstart-fm-rag.jpg) 

检索到的文件应足够大，以便包含有用的上下文，帮助增强提示信息，但又应足够小，以适应提示信息的最大序列长度。您可以使用特定于任务的 JumpStart 模型（例如中的通用文本嵌入 (GTE) 模型）来为提示和知识库文档提供嵌入内容。Hugging Face在比较提示和文档嵌入找到最相关的文档后，利用补充上下文构建新的提示。然后，将增强后的提示传递给您选择的文本生成模型。

## 示例笔记本
<a name="jumpstart-foundation-models-customize-rag-examples"></a>

有关 RAG 基础模型解决方案的更多信息，请参阅以下示例笔记本：
+ [检索增强生成：使用 LangChain和 Cohere 的生成和嵌入模型进行问答 SageMaker JumpStart](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_Cohere+langchain_jumpstart.html)
+ [检索增强生成：使用- LLama 2、Pinecone 和自定义数据集回答问题](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_pinecone_llama-2_jumpstart.html)
+ [检索增强生成：基于开源库的自定义数据集问答 LangChain ](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_langchain_jumpstart.html)
+ [检索增强生成：基于自定义数据集的问题回答](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_jumpstart_knn.html)
+ [检索增强生成：使用 Llama-2 和文本嵌入模型进行问题解答](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/question_answering_text_embedding_llama-2_jumpstart.html)
+ [Amazon SageMaker JumpStart -文本嵌入和句子相似度](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/jumpstart-foundation-models/question_answering_retrieval_augmented_generation/text-embedding-sentence-similarity.html)

您可以克隆 [Amazon A SageMaker I 示例存储库](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models)，以便在 Studio 中您选择的 Jupyter 环境中运行可用的 JumpStart 基础模型示例。有关可用于在 SageMaker AI 中创建和访问 Jupyter 的应用程序的更多信息，请参阅。[Amazon SageMaker Studio 支持的应用程序](studio-updated-apps.md)