使用 Amazon SageMaker JumpStart 在 VPC 模式下使用生成式 AI 基础模型,无需连接互联网 | 亚马逊网络服务

使用 Amazon SageMaker JumpStart 在 VPC 模式下使用生成式 AI 基础模型,无需连接互联网 | 亚马逊网络服务

随着最近的进展 生成式人工智能,关于如何跨不同行业使用生成式人工智能来解决特定业务问题的讨论正在进行中。 生成式人工智能是一种可以创造新内容和想法的人工智能,包括对话、故事、图像、视频和音乐。 它全部由非常大的模型支持,这些模型经过大量数据的预先训练,通常称为 基础模型 (FM)。 这些 FM 可以执行跨越多个领域的广泛任务,例如撰写博客文章、生成图像、解决数学问题、参与对话以及根据文档回答问题。 FM 的规模和通用性质使其不同于传统的 ML 模型,传统的 ML 模型通常执行特定的任务,例如分析文本的情感、对图像进行分类和预测趋势。

虽然组织希望利用这些 FM 的强大功能,但他们也希望基于 FM 的解决方案能够在自己的受保护环境中运行。 在全球金融服务、医疗保健和生命科学等受到严格监管的领域运营的组织对于在 VPC 中运行其环境有听觉和合规性要求。 事实上,很多时候,在这些环境中甚至会禁用直接互联网访问,以避免暴露于任何意外流量(包括入口和出口)。

亚马逊SageMaker JumpStart 是一个提供算法、模型和 ML 解决方案的 ML 中心。 借助 SageMaker JumpStart,ML 从业者可以从不断增长的性能最佳开源 FM 列表中进行选择。 它还提供了在您自己的中部署这些模型的能力 虚拟私有云(VPC).

在这篇文章中,我们演示了如何使用 JumpStart 来部署 法兰-T5 XXL 没有互联网连接的 VPC 中的模型。 我们讨论以下主题:

  • 如何在无法访问 Internet 的 VPC 中使用 SageMaker JumpStart 部署基础模型
  • 在 VPC 模式下通过 SageMaker JumpStart 模型部署 FM 的优势
  • 通过 JumpStart 自定义基础模型部署的其他方法

除了 FLAN-T5 XXL 之外,JumpStart 还为各种任务提供了许多不同的基础模型。 如需完整列表,请查看 开始使用 Amazon SageMaker JumpStart.

解决方案概述

作为解决方案的一部分,我们涵盖以下步骤:

  1. 设置没有互联网连接的 VPC。
  2. 成立 亚马逊SageMaker Studio 使用我们创建的 VPC。
  3. 在无法访问 Internet 的 VPC 中使用 JumpStart 部署生成式 AI Flan T5-XXL 基础模型。

以下是该解决方案的架构图。

太阳拱门

让我们逐步了解实施此解决方案的不同步骤。

先决条件

要跟进这篇文章,您需要具备以下条件:

设置没有互联网连接的 VPC

创建新的 CloudFormation 堆栈 通过使用 01_networking.yaml 模板。 此模板创建一个新的 VPC,并在两个没有 Internet 连接的可用区中添加两个私有子网。 然后,它部署网关 VPC 端点以进行访问 亚马逊简单存储服务 (Amazon S3) 以及 SageMaker 和其他一些服务的接口 VPC 终端节点,以允许 VPC 中的资源通过以下方式连接到 AWS 服务: AWS私有链接.

提供堆栈名称,例如 No-Internet,并完成堆栈创建过程。

vpc 堆栈输入

该解决方案的可用性不高,因为 CloudFormation 模板仅在一个子网中创建接口 VPC 终端节点,以降低按照本文中的步骤操作时的成本。

使用 VPC 设置 Studio

使用创建另一个 CloudFormation 堆栈 02_sagemaker_studio.yaml,它创建 Studio 域、Studio 用户配置文件以及 IAM 角色等支持资源。 为堆栈选择一个名称; 对于这篇文章,我们使用名称 SageMaker-Studio-VPC-No-Internet。 提供您之前创建的 VPC 堆栈的名称 (No-Internet)作为 CoreNetworkingStackName 参数并将其他一切保留为默认值。

工作室 cfn 堆栈输入

等待 AWS CloudFormation 报告堆栈创建已完成。 您可以确认 Studio 域可在 SageMaker 控制台上使用。

域名主页

要验证 Studio 域用户没有 Internet 访问权限, 使用 SageMaker 控制台启动 Studio。 选 文件, 全新终端,然后尝试访问 Internet 资源。 如下图所示,终端会一直等待资源,最终超时。

工作室终端

这证明 Studio 正在无法访问 Internet 的 VPC 中运行。

使用 JumpStart 部署生成式 AI 基础模型 Flan T5-XXL

我们可以通过 Studio 以及 API 部署这个模型。 JumpStart 提供了通过可从 Studio 内访问的 SageMaker 笔记本部署模型的所有代码。 在这篇文章中,我们展示了 Studio 的这种功能。

  • 在 Studio 欢迎页面上,选择 快速启动 在预构建和自动化解决方案下。

工作室欢迎页面

  • 选择下面的 Flan-T5 XXL 型号 基础模型.

js 模型中心

  • 默认情况下,它会打开 部署 标签。 展开 部署配置 部分更改 hosting instanceendpoint name,或添加任何其他标签。 还有一个选项可以更改 S3 bucket location 将存储用于创建端点的模型工件的位置。 对于这篇文章,我们将所有内容保留为默认值。 记下调用端点进行预测时要使用的端点名称。

部署js

  • 展开 安全设置 部分,您可以在其中指定 IAM role 用于创建端点。 您还可以指定 VPC configurations 通过提供 subnetssecurity groups。 子网 ID 和安全组 ID 可以从 AWS CloudFormation 控制台上的 VPC 堆栈的输出选项卡中找到。 SageMaker JumpStart 需要至少两个子网作为此配置的一部分。 子网和安全组控制对模型容器的访问。

js 部署安全设置

注意:无论 SageMaker JumpStart 模型是否部署在 VPC 中,该模型始终在网络隔离模式下运行,该模式会隔离模型容器,因此无法对模型容器进行入站或出站网络调用。 由于我们使用的是 VPC,因此 SageMaker 通过我们指定的 VPC 下载模型工件。 在网络隔离中运行模型容器不会阻止您的 SageMaker 端点响应推理请求。 服务器进程与模型容器一起运行并向其转发推理请求,但模型容器没有网络访问权限。

  • 部署 部署模型。 我们可以看到端点创建过程中的近实时状态。 端点创建可能需要 5-10 分钟才能完成。

js 部署进度

观察字段的值 模型数据位置 在本页。 所有 SageMaker JumpStart 模型均托管在 SageMaker 托管的 S3 存储桶上(s3://jumpstart-cache-prod-{region})。 因此,无论从 JumpStart 选择哪个模型,该模型都会从可公开访问的 SageMaker JumpStart S3 存储桶进行部署,并且流量永远不会进入公共模型库 API 来下载该模型。 这就是为什么即使我们在无法直接访问 Internet 的 VPC 中创建终端节点,模型终端节点创建仍能成功启动的原因。

模型工件还可以复制到任何私有模型动物园或您自己的 S3 存储桶,以进一步控制和保护模型源位置。 您可以使用以下命令将模型下载到本地 AWS命令行界面 (AWS CLI):

aws s3 cp s3://jumpstart-cache-prod-eu-west-1/huggingface-infer/prepack/v1.0.2/infer-prepack-huggingface-text2text-flan-t5-xxl.tar.gz .
  • 几分钟后,端点创建成功并显示状态为 在服务。 选 Open Notebook ,在 Use Endpoint from Studio 部分。 这是作为 JumpStart 体验的一部分提供的示例笔记本,用于快速测试端点。

快速启动-部署-完成

运行-部署-笔记本-jumpstart

这就结束了在无法访问 Internet 的 VPC 中使用 JumpStart 部署 Flan-T5 XXL 模型的步骤。

在 VPC 模式下部署 SageMaker JumpStart 模型的优势

以下是在 VPC 模式下部署 SageMaker JumpStart 模型的一些优势:

  • 由于 SageMaker JumpStart 不会从公共模型库下载模型,因此它可以在完全锁定的环境以及无法访问互联网的环境中使用
  • 由于 SageMaker JumpStart 模型的网络访问可以受到限制并缩小范围,这有助于团队改善环境的安全状况
  • 由于 VPC 边界,对终端节点的访问也可以通过子网和安全组进行限制,这增加了额外的安全层

通过 SageMaker JumpStart 自定义基础模型部署的其他方法

在本节中,我们分享一些部署模型的替代方法。

从您的首选 IDE 使用 SageMaker JumpStart API

SageMaker JumpStart 提供的模型不需要您访问 Studio。 您可以从任何 IDE 将它们部署到 SageMaker 端点,这要归功于 JumpStart API。 您可以跳过本文前面讨论的 Studio 设置步骤,并使用 JumpStart API 来部署模型。 这些 API 提供了也可以提供 VPC 配置的参数。 API 是 SageMaker Python 开发工具包 本身。 欲了解更多信息,请参阅 预训练模型.

使用 SageMaker Studio 中的 SageMaker JumpStart 提供的笔记本

SageMaker JumpStart 还提供笔记本来直接部署模型。 在模型详细信息页面上,选择 打开笔记本 打开包含部署端点的代码的示例笔记本。 笔记本使用的是 SageMaker JumpStart 行业 API 允许您列出和过滤模型、检索工件以及部署和查询端点。 您还可以根据特定于用例的要求编辑笔记本代码。

打开跳跃启动笔记本

清理资源

查询 清理.md 文件中查找删除 Studio、VPC 以及本文中创建的其他资源的详细步骤。

故障排除

如果您在创建 CloudFormation 堆栈时遇到任何问题,请参阅 CloudFormation 故障排除.

结论

由大型语言模型提供支持的生成式人工智能正在改变人们从信息中获取和应用见解的方式。 然而,在严格监管的空间中运营的组织需要以一种既能加快创新速度又能简化此类功能的访问模式的方式使用生成式人工智能功能。

我们鼓励您尝试本文中提供的方法,将生成式 AI 功能嵌入到您现有的环境中,同时仍将其保留在您自己的 VPC 内,无法访问互联网。 如需进一步阅读 SageMaker JumpStart 基础模型,请查看以下内容:


关于作者

使用 Amazon SageMaker JumpStart 在 VPC 模式下使用生成式 AI 基础模型,无需连接互联网 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。维克什·潘迪 是 AWS 的机器学习专家解决方案架构师,帮助金融行业的客户设计和构建基于生成式 AI 和 ML 的解决方案。 工作之余,Vikesh 喜欢尝试不同的美食和进行户外运动。

使用 Amazon SageMaker JumpStart 在 VPC 模式下使用生成式 AI 基础模型,无需连接互联网 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。 迈赫兰·尼库 是 AWS 的高级解决方案架构师,与英国的数字原生企业合作并帮助他们实现目标。 他热衷于将自己的软件工程经验应用到机器学习中,专门研究端到端机器学习和 MLOps 实践。

时间戳记:

更多来自 AWS机器学习