将自定义模型导入到 Amazon Bedrock - Amazon Bedrock

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

将自定义模型导入到 Amazon Bedrock

Amazon Bedrock 的 “自定义模型导入” 处于预览版,可能会发生变化。

您可以在 Amazon Bedrock 中创建自定义模型,方法是使用自定义模型导入功能导入您在其他环境(例如亚马逊 SageMaker)中自定义的基础模型。例如,您可能有一个在 Amazon SageMaker 中创建的具有专有模型权重的模型。现在,您可以将该模型导入 Amazon Bedrock,然后利用 Amazon Bedrock 功能对该模型进行推理调用。

您可以使用按需吞吐量导入的模型。使用InvokeModelInvokeModelWithResponseStream运算对模型进行推理调用。有关更多信息,请参阅 提交包含 InvokeModel API操作的单个提示

注意

对于预览版,“自定义模型导入” 仅在美国东部(弗吉尼亚北部)和美国西部(俄勒冈) AWS 地区可用。您不能将 “自定义模型导入” 与以下 Amazon Bedrock 功能一起使用。

  • Amazon 基岩代理商

  • Amazon 基岩知识库

  • Amazon 基岩护栏

  • Batch 推理

  • AWS CloudFormation

在使用自定义模型导入之前,必须先申请增加Imported models per account配额。有关更多信息,请参阅 Requesting a quota increase(请求增加限额)。

使用自定义模型导入,您可以创建支持以下模式的自定义模型。

  • 微调或持续预训练模型 — 您可以使用专有数据自定义模型权重,但保留基础模型的配置。

  • 适应您可以根据自己的领域自定义模型,以应对模型无法很好地概括的用例。域名自适应修改模型以概化目标域并处理跨领域的差异,例如金融行业想要创建一个在定价上很好地概括的模型。另一个例子是语言适应。例如,您可以自定义模型以生成葡萄牙语或泰米尔语的响应。通常,这涉及对所用模型词汇的更改。

  • 从头开始预训练 — 除了自定义模型的权重和词汇量外,您还可以更改模型配置参数,例如注意力头的数量、隐藏层或上下文长度。

支持的架构

您导入的模型必须采用以下架构之一。

  • Mistral— 基于解码器的 Transformer 架构,带有滑动窗口注意力 (SWA) 和分组查询注意力 (GQA) 选项。有关更多信息,请参阅 Hugging Face 文档中的 Mistral。

  • Flan — T5 架构的增强版,基于编码器-解码器的变压器模型。有关更多信息,请参阅 Flan T5在 Hugging Face 文档中。

  • Llama 2 以及 Llama3— 的改进版 Llama 带分组查询注意事项 (GQA)。有关更多信息,请参阅 Llama 2Llama 3在 Hugging Face 文档中。

导入源

通过在 Amazon Bedrock 控制台中创建模型导入任务,您可以将模型导入到 Amazon Bedrock 中。在任务中,您可以指定 Amazon S3 URI 作为模型文件的来源。或者,如果您在 Amazon 中创建了模型 SageMaker,则可以指定 SageMaker 模型。在模型训练期间,导入任务会自动检测模型的架构。

如果您从 Amazon S3 存储桶导入,则需要在中提供模型文件 Hugging Face 权重格式。你可以使用 Hugging Face 转换器库来创建文件。为创建模型文件 Llama 模型,请参阅 convert_llama_weights_to_hf.py。为创建文件 Mistral AI 模型,请参阅 convert_mistral_weights_to_hf.py

要从 Amazon S3 导入模型,您只需要 Hugging Face 转换器库创建的以下文件。

  • .safetensor — Safetensor 格式的模型权重。Safetensors 是一种由 Hugging Face 它将模型权重存储为张量。必须将模型的张量存储在扩展名.safetensors为的文件中。有关更多信息,请参阅安全器。有关将模型权重转换为 Safetensor 格式的信息,请参见将权重转换为安全张量。

    注意
    • 目前,Amazon Bedrock 仅支持BF16精度为FP32FP16、和的模型权重。如果您提供任何其他精度的模型权重,Amazon Bedrock 将拒绝它们。在内部,Amazon Bedrock将把FP32模型转换为BF16精确度。

    • Amazon Bedrock 不支持导入量化模型。

  • config.json — 有关示例,请参阅LlamaConfig和。MistralConfig

  • tokenizer_config.json — 有关示例,请参阅。LlamaTokenizer

  • tokenizer.json

  • tokenizer.model

导入模型

以下过程说明如何通过导入已自定义的模型来创建自定义模型。模型导入任务可能需要几分钟。在导入任务期间,Amazon Bedrock 会验证模型是否使用兼容的模型架构。

要提交模型导入任务,请执行以下步骤。

  1. 申请增加配Imported models per account额。有关更多信息,请参阅 Requesting a quota increase(请求增加限额)。

  2. 如果您要从 Amazon S3 导入模型文件,请将模型转换为 Hugging Face 格式的日期和时间。

    1. 如果你的模型是 Mistral AI 模型,使用 convert_mistral_weights_to_hf.py

    2. 如果你的模型是 Llama 模型,请参阅 convert_llama_weights_to_hf.py

    3. 将模型文件上传到您 AWS 账户中的 Amazon S3 存储桶。有关更多信息,请参阅将对象上传到您的存储桶

  3. AWS Management Console 使用具有 Amazon Bedrock 权限的IAM角色登录,然后通过以下网址打开 Amazon Bedrock 控制台。https://console.aws.amazon.com/bedrock/

  4. 在左侧导航窗格的 “基础模型” 下选择 “导的模型”。

  5. 选择模型选项卡。

  6. 选择 Import model (导入模型)

  7. 导入选项卡中,选择导入模型以打开导入模型页面。

  8. 模型详细信息部分,执行以下操作:

    1. 模型名称中输入模型的名称。

    2. (可选)要将标签与模型关联,请展开标签部分并选择添加新标签

  9. 在 “导入作业名称” 部分中,执行以下操作:

    1. Job 名称中输入模型导入任务的名称。

    2. (可选)要将标签与自定义模型相关联,请展开标签部分并选择添加新标签

  10. 模型导入设置中,选择要使用的导入选项。

    • 如果您要从亚马逊 S3 存储桶导入模型文件,请选择 A mazon S3 存储桶,然后在 S3 位置输入亚马逊 S3 的位置。或者,您可以选择 “浏览 S3” 来选择文件位置。

    • 如果您要从亚马逊导入模型 SageMaker,请选择亚马逊 SageMaker 模型,然后选择要在 SageMaker 模型中导入的SageMaker 模型

  11. 服务访问权限部分,选择以下选项之一:

    • 创建和使用新的服务角色 — 输入服务角色的名称。

    • 使用现有服务角色 — 从下拉列表中选择一个服务角色。要查看您的现有服务角色所需的权限,请选择查看权限详细信息

      有关设置具有相应权限的服务角色的更多信息,请参阅为模型导入创建服务角色

  12. 选择 Import(导入)

  13. 自定义模型页面上,选择已导入

  14. 在 “作业” 部分,检查导入任务的状态。您选择的模型名称用于标识模型导入任务。如果模型的 “状态” 值为 “完成”,则任务已完成

  15. 通过执行以下操作获取您的模型的模型 ID。

    1. 导入的模型页面上,选择模型选项卡。

    2. 从ARNARN列中复制要使用的模型的。

  16. 使用您的模型进行推理调用。有关更多信息,请参阅 提交包含 InvokeModel API操作的单个提示。您可以使用具有按需吞吐量的模型。

    您也可以在 Amazon Bedrock 文字平台中使用您的模型