Our Projects
在企业中使用 Amazon SageMaker Canvas 监管生成性 AI 机器学习博客
作者:Saptarshi Banerjee Davide Gallitelli 和 Lijan Kuniyil 发表于 2024 年 9 月 23 日
随着 Amazon Bedrock 和 Amazon SageMaker JumpStart等服务提供的强大基础模型FMs的传播,企业希望对能够访问和使用这些模型的用户和组进行细致管理。这在合规性、安全性以及治理中至关重要。
自 2021 年推出的 Amazon SageMaker Canvas 是一项可视化、无需编码的服务,允许商业分析师和普通数据科学家使用现成的机器学习ML模型并构建自定义 ML 模型,以生成准确的预测。SageMaker Canvas 提供了一个无代码的接口,可以轻松使用广泛的基础模型,支持通过使用 Amazon Kendra 作为知识库的检索增强生成RAG工作流来定制模型响应。这使得业务分析师和数据科学家能快速提升生产力,无需具备技术知识或编写代码即可获取生成型人工智能AI功能。
在这篇文章中,我们将分析如何通过 AWS 身份与访问管理IAM策略管理 SageMaker Canvas 中的 Amazon Bedrock 和 SageMaker JumpStart 模型的访问。您将学习如何创建细粒度权限以控制预先定义的 Amazon Bedrock 模型的调用,并防止使用特定 SageMaker JumpStart 模型的 SageMaker 终端节点的配置。我们还将提供与常见企业治理方案相关的代码示例。通过阅读本篇文章,您将理解如何根据组织要求限制对生成型 AI 功能的访问,从而在无代码的 SageMaker Canvas 环境中确保安全和合规的使用。
随着越来越多强大的 AI 模型的发布,这个话题变得愈加重要,成为机器学习操作人员、安全团队和任何企业 AI 治理人员的宝贵资源。
以下图表展示了解决方案架构。
SageMaker Canvas 的架构允许商业分析师和数据科学家无需编写代码即可与机器学习模型互动。然而,管理对这些模型的访问对于维护安全性和合规性至关重要。当用户通过 SageMaker Canvas 进行交互时,他们所执行的操作例如调用模型或创建终端节点由 SageMaker 服务角色进行处理。SageMaker 用户配置文件可以继承 SageMaker 域的默认角色,或者拥有用户特定角色。
通过自定义附加到该角色的策略,您可以控制哪些操作被许可或拒绝,从而管理对生成型 AI 功能的访问。本篇文章探讨了应为此角色使用的 IAM 策略,以控制 SageMaker Canvas 中的操作,例如调用模型或创建终端节点,具体根据企业组织的要求分析了限制对服务的所有模型访问和限制对特定模型的访问两种模式。
为了使用 Amazon Bedrock 模型,SageMaker Canvas 调用以下 Amazon Bedrock API:
bedrockInvokeModel 同步调用模型bedrockInvokeModelWithResponseStream 同步调用带响应流的模型,具体展示如下图:另外,SageMaker Canvas 可以调用 bedrockFineTune API 用于微调 Amazon Bedrock 的大型语言模型 (LLM)。截至目前,SageMaker Canvas 仅允许微调 Amazon Titan 模型。
要使用 Amazon Bedrock 中的特定 LLM,SageMaker Canvas 使用所选 LLM 的模型 ID 作为 API 调用的一部分。截至目前,SageMaker Canvas 支持来自 Amazon Bedrock 的以下模型,按模型提供者进行分组:
AI21 Jurassic2 Mid j2midv1Jurassic2 Ultra j2ultrav1Amazon Titan titantextpremierv1Titan Large titantextlitev1Titan Express titantextexpressv1Anthropic Claude 2 claudev2Claude Instant claudeinstantv1Cohere Command Text commandtextCommand Light commandlighttextMeta Llama 2 13B llama213bchatv1Llama 2 70B llama270bchatv1有关 Amazon Bedrock 模型 ID 的完整列表,请参见 Amazon Bedrock 模型 ID。
要限制对所有 Amazon Bedrock 模型的访问,您可以修改 SageMaker 角色以显式拒绝这些API。这确保没有用户可以通过 SageMaker Canvas 调用任何 Amazon Bedrock 模型。
以下是实现此目标的 IAM 策略示例:
json{ Version 20121017 Statement [ { Effect Deny Action [ bedrockInvokeModel bedrockInvokeModelWithResponseStream ] Resource } ]}
该策略使用以下参数:
Effect Deny 指定以下操作被拒绝Action [bedrockInvokeModel bedrockInvokeModelWithResponseStream] 指定被拒绝的 Amazon Bedrock APIResource 指示拒绝适用于所有 Amazon Bedrock 模型您可以扩展前面的 IAM 策略,通过在策略的资源部分指定模型 ID 来限制对特定 Amazon Bedrock 模型的访问。这样,用户只能调用被允许的模型。
以下是扩展版本的 IAM 策略示例:
json{ Version 20121017 Statement [ { Effect Deny Action [ bedrockInvokeModel bedrockInvokeModelWithResponseStream ] Resource [ arnawsbedrockltregionorgtfoundationmodel/ltmodelid1gt arnawsbedrockltregionorgtfoundationmodel/ltmodelid2gt ] } ]}
在此策略中,资源数组列出被拒绝的具体 Amazon Bedrock 模型。提供适合您环境的 AWS 区域、账户和模型 ID。
要使 SageMaker Canvas 能够消费来自 SageMaker JumpStart 的 LLM,必须执行以下操作:
从 SageMaker Canvas 或 JumpStart 模型 ID 列表中选择 LLM。创建一个终端节点配置并在实时终端上部署 LLM。调用该终端以生成预测。以下图表展示了此工作流。
有关可用 JumpStart 模型 ID 的列表,请参见 JumpStart 可用模型表。截至目前,SageMaker Canvas 支持以下模型 ID:
huggingfacetextgeneration1mpt7bhuggingfacellmmistralmetatextgenerationllama2huggingfacellmfalconhuggingfacetextgenerationdollyv2huggingfacetext2textflant5要从 SageMaker JumpStart 中识别正确的模型,SageMaker Canvas 会在终端节点配置中传递 awsRequestTag/sagemakersdkjumpstartmodelid。要了解更多有关使用 IAM 权限限制对 SageMaker JumpStart 模型访问的其他技术,请参见 管理 Amazon SageMaker JumpStart 基础模型访问。
在 AWS 管理控制台的 SageMaker 页面中的 SageMaker 域配置页面上,您可以配置 SageMaker Canvas 部署 SageMaker 终端节点的能力。此选项还启用对经典 ML 模型例如时间序列预测或分类的实时终端的部署。要启用模型部署,请完成以下步骤:
在 Amazon SageMaker 控制台中,导航到您的域。在 域详情 页面,选择 应用配置
在 Canvas 部分,点击 编辑。
要限制对所有 SageMaker JumpStart 模型的访问,请配置 SageMaker 角色以阻止对任何 SageMaker JumpStart 模型 ID 的 CreateEndpointConfig 和 CreateEndpoint API 的调用。这将阻止使用这些模型创建终端。请参见以下代码示例:
json{ Version 20121017 Statement [ { Effect Deny Action [ sagemakerCreateEndpointConfig sagemakerCreateEndpoint ] Resource Condition { Null { awsRequestTag/sagemakersdkjumpstartmodelid } } } ]}
此政策使用以下参数:
免费加速器官网Effect Deny 指定以下操作被拒绝Action [sagemakerCreateEndpointConfig sagemakerCreateEndpoint] 指定被拒绝的 SageMaker APINull 条件运算符用于检查密钥是否存在awsRequestTag/sagemakersdkjumpstartmodelid 指示拒绝适用于所有 SageMaker JumpStart 模型与 Amazon Bedrock 模型类似,您可以通过在 IAM 策略中指定其模型 ID 限制对特定 SageMaker JumpStart 模型的访问。为此,管理员需要限制用户使用未经授权模型创建终端。例如,要拒绝对 Hugging Face FLAN T5 模型和 MPT 模型的访问,请使用以下代码:
json{ Version 20121017 Statement [ { Effect Deny Action [ sagemakerCreateEndpointConfig sagemakerCreateEndpoint ] Resource Condition { StringLike { awsRequestTag/sagemakersdkjumpstartmodelid [ huggingfacetextgeneration1mpt7b huggingfacetext2textflant5 ] } } } ]}
在此政策中,StringLike 条件允许进行模式匹配,从而使策略适用于多个相似前缀的模型 ID。
为避免将来产生 工作区实例费用,在完成应用程序使用后,请退出 SageMaker Canvas。可选地,您还可以配置 SageMaker Canvas 在空闲时 自动关闭。
在本文中,我们演示了 SageMaker Canvas 如何调用由 Amazon Bedrock 和 SageMaker JumpStart 提供的 LLM,以及企业如何管理对这些模型的访问,无论是限制对特定模型的访问还是对任一服务下的模型的访问。您可以将本文中所示的 IAM 策略组合在同一 IAM 角色中,以实现完全控制。
通过遵循这些指南,企业可以确保他们对生成型 AI 模型的使用既安全又符合组织政策。这种方法不仅能够保护敏感数据,还使业务分析师和数据科学家能够在受控环境中充分利用 AI 的潜力。
现在您的环境已根据企业标准配置完成,我们建议您阅读以下文章,以了解 SageMaker Canvas 能为您实现的生成型 AI 功能:
优先关注员工福祉:使用生成型 AI 和 Amazon SageMaker Canvas 的创新方法使用 Amazon SageMaker Canvas 和 Amazon Bedrock 微调和部署语言模型利用生成型 AI 和 Amazon SageMaker Canvas 更快地分析安全发现,进行无代码数据准备利用生成型 AI 和 Amazon SageMaker Canvas 克服常见的呼叫中心挑战利用 Amazon SageMaker Canvas 和生成型 AI Empower your business users to extract insights from company documentsDavide Gallitelli 是一名高级专员解决方案架构师,专注于生成型 AI 和机器学习。他出生于意大利,现居布鲁塞尔,并与全球客户紧密合作处理生成型 AI 工作负载及低代码无代码机器学习技术。他从七岁起就开始编程,后来在大学学习 AI/ML,并对此产生了浓厚的兴趣。
Lijan Kuniyil 是 AWS 的高级技术客户经理。他热衷于帮助 AWS 企业客户建立高度可靠且具成本效益的系统,确保卓越运营。Lijan 拥有超过 25 年的经验,为金融和咨询公司开发解决方案。
Saptarshi Banerjee 在 AWS 担任高级合作