微调 Meta Llama2 13B 模型提供的 Amazon Bedrock: 端到端

在本笔记本中,我们演示了使用 Boto3 SDK 对 Bedrock 中的 Llama2 13B 模型进行微调和配置。我们也可以通过 Bedrock 控制台来完成此操作。

警告: 此模块无法在 Workshop Studio 帐户中执行,我们必须在自己的帐户中运行此笔记本。

总结使用案例

在本笔记本中,我们构建了一个端到端的工作流程来微调和评估 Amazon Bedrock 中的基础模型 (FM)。我们选择 Meta Llama 2 13B 作为我们的 FM 来执行通过微调的定制,然后创建经过微调的模型的配置吞吐量、测试配置的模型调用,最后使用 fmeval 评估微调模型的性能,包括 METEOR、ROUGE 和 BERT 得分。我们在下面的 评估配置的自定义模型 部分中定义了这些得分。

本笔记本应该可以与 Data Science 3.0Python 3ml.c5.2xlarge 内核在 SageMaker Studio 中很好地配合使用

先决条件

  • 确保我们已经执行了 00_setup.ipynb 笔记本。
  • 确保我们使用的是与 00_setup.ipynb 笔记本相同的内核和实例。

在本笔记本中,我们演示了使用 Boto3 SDK 对 Bedrock 中的 Llama2 13B 模型进行微调和配置。我们也可以通过 Bedrock 控制台来完成此操作。

警告: 本笔记本将创建配置的吞吐量来测试微调的模型。因此,请确保按照笔记本最后一节中的说明删除配置的吞吐量,否则即使我们不使用它,也会被收费。

设置

安装并导入完成此笔记本所需的所有库和依赖项。

请忽略与 pip 的依赖项解析器相关的错误消息。

创建微调作业

注意: 微调作业将需要大约 60 分钟才能完成,使用 5K 条记录。

Meta Llama2 定制超参数:

  • epochs: 通过整个训练数据集的迭代次数,可以取 1-10 之间的任意整数值,默认值为 2。
  • batchSize: 在更新模型参数之前处理的样本数,可以取 1-64 之间的任意整数值,默认值为 1。
  • learningRate: 每个批次后模型参数更新的速率,可以取 0.0-1.0 之间的浮点值,默认值设置为 1.00E-5。
  • learningRateWarmupSteps: 学习率逐步增加到指定速率的迭代次数,可以取 0-250 之间的任意整数值,默认值为 5。

有关设置超参数的指南,请参考此处 提供的指南。

检查微调作业状态

检索自定义模型

一旦微调作业完成,我们就可以检查现有的自定义模型并检索我们的微调 Llama2 模型的 modelArn。

注意: 请确保我们的微调作业状态为"已完成",然后再继续检索 modelArn,否则我们将遇到错误。

可视化训练和验证损失

现在我们已经完成了微调作业,让我们可视化我们的结果,看看我们的作业是否没有欠拟合或过拟合。

从 S3 下载模型定制作业指标并绘制学习曲线。

创建配置吞吐量

注意: 创建配置吞吐量将需要大约 20-30 分钟才能完成。
我们需要创建配置吞吐量才能评估模型性能。我们可以通过[控制台](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-cap-console.html)或使用以下 API 调用来执行此操作。

调用配置的自定义模型

调用配置的自定义模型。我们可以用更类似于我们的微调数据集的提示替换以下 prompt_txt,这有助于检查微调模型是否按预期执行。

注意: 请确保我们的配置吞吐量作业状态变为 InService 后再继续。

清理

警告: 请务必按照以下代码删除配置的吞吐量,因为即使我们不使用它,也会产生费用。
注意: 请完成清理过程,运行 04_cleanup.ipynb 来清理其他资源。