能力 4. 为生成式 AI 模型定制提供安全的访问、使用和实现 - AWS 规范性指导

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

能力 4. 为生成式 AI 模型定制提供安全的访问、使用和实现

下图说明了为生成式 AI 账户推荐的 AWS 服务以实现此功能。 此场景的范围是保护模型自定义。此用例侧重于保护模型定制任务的资源和训练环境,以及保护自定义模型的调用。

推荐用于生成式 AI 账户的 AWS 服务进行模型自定义。

Generative AI 账户包括自定义模型所需的服务,以及实施安全护栏和集中式安全治理所需的安全服务套件。您应该为配置私有 VPC 环境访问的 Amazon S3 中的训练数据和评估存储桶创建 Amazon S3 网关终端节点,以允许私有模型自定义。 

理由

模型定制是向模型提供训练数据以提高其在特定用例中的性能的过程。 在 Amazon Bedrock 中,您可以自定义 Amazon Bedrock 基础模型 (FM),以提高其性能并创造更好的客户体验,方法是使用未标记的数据进行持续预训练以增强领域知识,以及使用带标签的数据进行微调以优化特定任务的性能。如果您自定义模型,则必须购买预配置吞吐量才能使用它。 

此用例指的是生成式 AI 安全范围矩阵的范围 4。 在 Scope 4 中,您可以使用您的数据自定义 FM(例如 Amazon Bedrock 中提供的那些 FM),以提高模型在特定任务或领域中的性能。在此范围内,您可以控制应用程序、应用程序使用的任何客户数据、训练数据和自定义模型,而FM提供商则控制预先训练的模型及其训练数据。 

或者,您可以在 Amazon Bedrock 中创建自定义模型,方法是使用 “自定义模型导入” 功能导入您在其他环境(例如亚马逊)中自定义的 FM。 SageMaker对于导入源,我们强烈建议使用Safetensors作为导入的模型序列化格式。 与 Pickle 不同,Safetensors 允许你只存储张量数据,不能存储任意 Python 对象。这消除了因解封不可信数据而产生的漏洞。Safetensors 无法运行代码——它只能安全地存储和加载张量。

当你允许用户访问 Amazon Bedrock 中的生成式 AI 模型自定义时,你应该考虑以下关键的安全注意事项: 

  • 安全访问模型调用、训练作业以及训练和验证文件

  • 对训练模型作业、自定义模型以及训练和验证文件进行加密

  • 针对潜在安全风险发出警报,例如越狱提示或培训文件中的敏感信息 

以下各节讨论了这些安全注意事项和生成式 AI 功能。 

亚马逊 Bedrock 模型定制

您可以在 Amazon Bedrock 中使用自己的数据私密安全地自定义基础模型 (FM),以构建特定于您的域、组织和用例的应用程序。 通过微调,您可以通过提供自己的特定于任务的带标签的训练数据集来提高模型的准确性,并进一步专业化您的 FM。通过持续的预训练,您可以在具有客户托管密钥的安全托管环境中使用自己的未标记数据来训练模型。有关更多信息,请参阅 Amazon Bedrock 文档中的自定义模型

安全性注意事项

生成式 AI 模型自定义工作负载面临着独特的风险,包括训练数据的数据泄露、通过向训练数据注入恶意提示或恶意软件导致的数据中毒,以及在模型推断期间威胁行为者的提示注入或数据泄露。在 Amazon Bedrock 中,模型自定义为数据保护、访问控制、网络安全、日志和监控以及输入/输出验证提供了强大的安全控制,有助于降低这些风险。 

补救措施

数据保护

使用您创建、拥有和管理的 AWS KMS 中的客户托管密钥加密模型自定义任务、模型自定义任务的输出文件(训练和验证指标)以及生成的自定义模型。 当您使用 Amazon Bedrock 运行模型自定义任务时,会将输入(训练和验证数据)文件存储在 S3 存储桶中。任务完成后,Amazon Bedrock 会将输出指标文件存储在您在创建任务时指定的 S3 存储桶中,并将生成的自定义模型项目存储在由 AWS 控制的 S3 存储桶中。 默认情况下,输入和输出文件使用 AWS 托管密钥使用 Amazon S3 SSE-S3 服务器端加密进行加密。 您也可以选择使用客户管理的密钥对这些文件进行加密。

身份和访问管理

遵循最小权限原则,为模型自定义或模型导入创建自定义服务角色。对于模型定制服务角色,创建信任关系,允许 Amazon Bedrock 担任此角色并执行模型定制任务。 附加策略以允许该角色访问您的训练和验证数据以及您要向其写入输出数据的存储桶。 对于模型导入服务角色,创建信任关系,允许 Amazon Bedrock 担任此角色并执行模型导入任务。 附加策略以允许该角色访问您的 S3 存储桶中的自定义模型文件。如果您的模型自定义任务在 VPC 中运行,请将 VPC 权限附加到模型自定义角色。 

网络安全

要控制对数据的访问权限,请使用带有 Amazon VPC 的虚拟私有云 (VPC)。 在创建 VPC 时,我们建议您使用终端节点路由表的默认 DNS 设置,以便标准的 Amazon S3 网址能够解析。 

如果您将 VPC 配置为无法访问互联网,则需要创建一个 Amazon S3 VPC 终端节点,以允许您的模型自定义任务访问存储您的训练和验证数据以及存储模型工件的 S3 存储桶。

完成 VPC 和终端节点的设置后,您需要为模型自定义 IAM 角色附加权限。 配置 VPC 以及所需的角色和权限后,您可以创建使用此 VPC 的模型自定义任务。通过创建没有互联网访问权限的 VPC 以及用于训练数据的关联 S3 VPC 终端节点,您就可以在私有连接的情况下运行模型自定义作业(没有任何互联网暴露)。 

推荐的 AWS 服务

Amazon S3

当您运行模型自定义任务时,该任务会访问您的 S3 存储桶来下载输入数据和上传任务指标。在 Amazon Bedrock 控制台或 API 上提交模型自定义任务时,您可以选择微调或继续预训练作为模型类型。 模型自定义任务完成后,您可以通过查看您在提交任务时指定的输出 S3 存储桶中的文件来分析训练过程的结果,或者查看有关模型的详细信息。使用客户管理的密钥@@ 对两个存储桶进行加密。为了进一步加强网络安全,您可以为 VPC 环境配置为访问的 S3 存储桶创建网关终端节点。 应记录和监控访问权限。使用版本控制进行备份。您可以使用基于资源的策略来更严格地控制对 Amazon S3 文件的访问。 

Amazon Macie

Macie 可以帮助识别您的 Amazon S3 训练和验证数据集中的敏感数据。 有关安全最佳实践,请参阅本指南中前面的 Macie 部分

亚马逊 EventBridge

您可以使用亚马逊 EventBridge将亚马逊 SageMaker 配置为自动响应 Amazon Bedrock 中模型定制任务状态的变化。来自亚马逊 Bedrock 的活动以近乎实时 EventBridge 的方式发送到亚马逊。您可以编写简单的规则,以便在事件与规则匹配时自动执行操作。

AWS KMS

我们建议您使用客户托管密钥来加密模型自定义任务、模型自定义任务的输出文件(训练和验证指标)、生成的自定义模型以及托管训练、验证和输出数据的 S3 存储桶。有关更多信息,请参阅 Amazon Bedrock 文档中的模型自定义任务和工件的加密

密钥策略是 AWS KMS 密钥的资源策略。密钥政策是控制对 KMS 密钥访问的主要方法。您也可以使用 IAM 策略和授权来控制对 KMS 密钥的访问权限,但每个 KMS 密钥都必须有密钥策略。使用密钥策略为角色提供访问使用客户托管密钥加密的自定义模型的权限。这允许指定角色使用自定义模型进行推理。

如前面的功能 CloudWatch部分所述,使用亚马逊 CloudTrail、亚马逊 S OpenSearch erverless、Amazon S3 和 Amazon Comprehend。