机器学习 (ML) 范式转变的种子已经存在了几十年,但随着几乎无限的计算能力、数据的大量扩散以及 ML 技术的快速发展,各行各业的客户正在迅速采用和使用 ML技术来改变他们的业务。
就在最近,生成式 AI 应用引起了所有人的关注和想象。 在 ML 的广泛采用方面,我们确实处于一个激动人心的转折点,我们相信每个客户体验和应用程序都将通过生成 AI 进行重塑。
生成式人工智能是一种可以创造新内容和想法的人工智能,包括对话、故事、图像、视频和音乐。 与所有 AI 一样,生成 AI 由 ML 模型提供支持——这些模型是在大量数据集上进行预训练的非常大的模型,通常称为基础模型 (FM)。
FM 的规模和通用性质使其不同于传统的 ML 模型,传统的 ML 模型通常执行特定任务,例如分析文本的情感、分类图像和预测趋势。
对于传统的 ML 模型,为了完成每个特定任务,您需要收集标记数据、训练模型并部署该模型。 使用基础模型,无需为每个模型收集标记数据并训练多个模型,您可以使用相同的预训练 FM 来适应各种任务。 您还可以自定义 FM 以执行使您的业务与众不同的特定领域功能,仅使用从头开始训练模型所需的一小部分数据和计算。
生成式人工智能有可能通过彻底改变内容的创建和消费方式来颠覆许多行业。 原创内容制作、代码生成、客户服务提升和文档摘要是生成式 AI 的典型用例。
亚马逊SageMaker JumpStart 为各种问题类型提供预训练的开源模型,以帮助您开始使用 ML。 您可以在部署之前逐步训练和调整这些模型。 JumpStart 还提供为常见用例设置基础设施的解决方案模板,以及用于 ML 的可执行示例笔记本 亚马逊SageMaker.
JumpStart 拥有超过 600 个可用的预训练模型并且每天都在增加,它使开发人员能够快速轻松地将尖端的 ML 技术整合到他们的生产工作流程中。 您可以通过 JumpStart 登录页面访问预训练模型、解决方案模板和示例 亚马逊SageMaker Studio. 您还可以使用 SageMaker Python SDK 访问 JumpStart 模型。 有关如何以编程方式使用 JumpStart 模型的信息,请参阅 将 SageMaker JumpStart 算法与预训练模型结合使用.
2023 年 XNUMX 月,AWS 揭幕 亚马逊基岩,它提供了一种通过来自初创公司的预训练模型构建生成式人工智能应用程序的方法,包括 AI21 实验室, 人类的及 稳定人工智能. Amazon Bedrock 还提供对 Titan 基础模型的访问,这是由 AWS 内部训练的一系列模型。 借助 Amazon Bedrock 的无服务器体验,您可以轻松找到适合您需求的模型、快速入门、使用您自己的数据私下定制 FM,并使用您熟悉的 AWS 工具和功能轻松地将它们集成并部署到您的应用程序中与(包括与 SageMaker ML 功能的集成,例如 Amazon SageMaker实验 测试不同的模型和 Amazon SageMaker管道 大规模管理您的 FM)而无需管理任何基础设施。
在本文中,我们展示了如何使用 JumpStart 部署图像和文本生成 AI 模型 AWS云开发套件 (AWS CDK)。 AWS CDK 是一个开源软件开发框架,用于使用熟悉的编程语言(如 Python)定义您的云应用程序资源。
我们使用 Stable Diffusion 模型生成图像,使用 FLAN-T5-XL 模型生成图像 自然语言理解 (NLU) 和文本生成 拥抱脸 在 JumpStart 中。
解决方案概述
Web应用程序是建立在 流光,一个开源 Python 库,可以轻松创建和共享用于 ML 和数据科学的漂亮的自定义 Web 应用程序。 我们使用托管 Web 应用程序 亚马逊弹性容器服务 (Amazon ECS) 与 AWS 法门 并通过 Application Load Balancer 访问它。 Fargate 是一项可以与 Amazon ECS 结合使用以运行的技术 集装箱 无需管理服务器、集群或虚拟机。 生成式 AI 模型端点从 JumpStart 图像启动 Amazon Elastic Container注册 (亚马逊 ECR)。 模型数据存储在 亚马逊简单存储服务 (Amazon S3) 在 JumpStart 帐户中。 Web 应用程序通过以下方式与模型交互 Amazon API网关 和 AWS Lambda 功能如下图所示。
API Gateway 为 Web 应用程序和其他客户端提供标准的 RESTful 接口,同时屏蔽与模型接口的 Lambda 函数。 这简化了使用模型的客户端应用程序代码。 API 网关端点在此示例中可公开访问,允许扩展此架构以实现不同的可能性 API 访问控制 并与其他应用程序集成。
在这篇文章中,我们将引导您完成以下步骤:
- 安装 AWS命令行界面 (AWS CLI)和 AWS CDK v2 在本地计算机上。
- 克隆并设置 AWS CDK 应用程序。
- 部署 AWS CDK 应用程序。
- 使用图像生成 AI 模型。
- 使用文本生成 AI 模型。
- 查看已部署的资源 AWS管理控制台.
我们在本文末尾的附录中概述了该项目中的代码。
先决条件
您必须具备以下先决条件:
您可以从本地计算机部署本教程中的基础结构,也可以使用 AWS 云9 作为您的部署工作站。 AWS Cloud9 预装了 AWS CLI、AWS CDK 和 Docker。 如果您选择 AWS Cloud9, 创造环境 来自 AWS 控制台.
假设您让资源运行 50 小时,完成这篇文章的估计费用为 8 美元。 请确保删除您在这篇文章中创建的资源,以避免持续收费。
在本地计算机上安装 AWS CLI 和 AWS CDK
如果您的本地机器上还没有 AWS CLI,请参阅 安装或更新最新版本的 AWS CLI 和 配置AWS CLI.
使用以下节点包管理器命令全局安装 AWS CDK 工具包:
运行以下命令以验证安装是否正确并打印 AWS CDK 的版本号:
确保在本地计算机上安装了 Docker。 发出以下命令以验证版本:
克隆并设置 AWS CDK 应用程序
在您的本地计算机上,使用以下命令克隆 AWS CDK 应用程序:
导航到项目文件夹:
在我们部署应用程序之前,让我们回顾一下目录结构:
stack
文件夹包含 AWS CDK 应用程序中每个堆栈的代码。 这 code
文件夹包含 Lambda 函数的代码。 存储库还包含位于该文件夹下的 Web 应用程序 web-app
.
cdk.json
文件告诉 AWS CDK 工具包如何运行您的应用程序。
此应用程序在 us-east-1
区域,但它应该在具有所需服务和推理实例类型的任何区域中工作 ml.g4dn.4xlarge
指定于 app.py
.
设置虚拟环境
该项目的设置类似于标准 Python 项目。 使用以下代码创建 Python 虚拟环境:
使用以下命令激活虚拟环境:
如果您使用的是 Windows 平台,请按如下方式激活虚拟环境:
虚拟环境激活后,将pip升级到最新版本:
安装所需的依赖项:
在部署任何 AWS CDK 应用程序之前,您需要在您的账户和要部署到的区域中引导一个空间。 要在您的默认区域中引导,请发出以下命令:
如果要部署到特定帐户和区域,请发出以下命令:
有关此设置的更多信息,请访问 开始使用 AWS CDK.
AWS CDK 应用栈结构
AWS CDK 应用程序包含多个堆栈,如下图所示。
您可以使用以下命令列出 AWS CDK 应用程序中的堆栈:
以下是其他有用的 AWS CDK 命令:
- CDK LS – 列出应用程序中的所有堆栈
- cdk合成器 – 发射合成 AWS CloudFormation 模板
- cdk部署 – 将此堆栈部署到您的默认 AWS 账户和区域
- cdk差异 – 将部署的堆栈与当前状态进行比较
- cdk文档 – 打开 AWS CDK 文档
下一节将向您展示如何部署 AWS CDK 应用程序。
部署 AWS CDK 应用程序
AWS CDK 应用程序将根据您的工作站配置部署到默认区域。 如果您想在特定区域强制部署,请设置您的 AWS_DEFAULT_REGION
相应的环境变量。
此时,您可以部署 AWS CDK 应用程序。 首先启动 VPC 网络堆栈:
如果出现提示,请输入 y
继续部署。 您应该会看到在堆栈中预置的 AWS 资源列表。 此步骤大约需要 3 分钟才能完成。
然后启动 Web 应用程序堆栈:
AWS CDK 分析完堆栈后,会显示堆栈中的资源列表。 输入 y 继续部署。 此步骤大约需要 5 分钟。
记下 WebApplicationServiceURL
从输出中稍后使用。 您还可以在 AWS CloudFormation 控制台上检索它,位于 GenerativeAiDemoWebStack
堆栈输出。
现在,启动图像生成 AI 模型端点堆栈:
此步骤大约需要 8 分钟。 图像生成模型端点已部署,我们现在可以使用它了。
使用图像生成 AI 模型
第一个示例演示了如何使用 Stable Diffusion,这是一种强大的生成建模技术,可以根据文本提示创建高质量图像。
- 使用
WebApplicationServiceURL
从输出GenerativeAiDemoWebStack
您的浏览器。 - 在导航窗格中,选择 影像产生.
- SageMaker 端点名称 和 API GW 网址 字段将被预先填充,但您可以根据需要更改图像描述的提示。
- 生成图像.
- 应用程序将调用 SageMaker 端点。 这需要几秒钟。 将显示具有图像描述中特征的图片。
使用文本生成 AI 模型
第二个示例围绕使用 FLAN-T5-XL 模型,这是一个基础或大型语言模型 (LLM),以实现文本生成的上下文学习,同时还解决了广泛的自然语言理解 (NLU) 和自然语言生成 (NLG) 任务。
某些环境可能会限制您一次可以启动的端点数量。 如果是这种情况,您可以一次启动一个 SageMaker 端点。 要在 AWS CDK 应用程序中停止 SageMaker 端点,您必须销毁已部署的端点堆栈,然后再启动其他端点堆栈。 要关闭图像生成 AI 模型端点,请发出以下命令:
然后启动文本生成 AI 模型端点堆栈:
在提示下输入 y。
启动文本生成模型端点堆栈后,完成以下步骤:
- 返回到 Web 应用程序并选择 文本生成 在导航窗格中。
- 输入上下文 字段预先填充了客户和代理之间关于客户电话问题的对话,但如果您愿意,您可以输入自己的上下文。
- 在上下文下方,您会在下拉菜单中找到一些预填充的查询。 选择查询并选择 生成响应.
- 您也可以在 输入查询 字段,然后选择 生成响应.
在控制台查看部署的资源
在AWS CloudFormation控制台上,选择 堆栈 在导航窗格中查看已部署的堆栈。
在 Amazon ECS 控制台上,您可以看到集群上的 集群 页面上发布服务提醒。
在 AWS Lambda 控制台上,您可以看到 主要工作内容 页面上发布服务提醒。
在 API 网关控制台上,您可以在 APIs 页面上发布服务提醒。
在 SageMaker 控制台上,您可以在 端点 页面上发布服务提醒。
启动堆栈时,会生成一些参数。 这些存储在 AWS Systems Manager参数存储. 要查看它们,请选择 参数存储 在导航窗格中 AWS系统经理 安慰。
清理
为避免不必要的成本,请清理在您的工作站上使用以下命令创建的所有基础结构:
输入 y
在提示符下。 此步骤大约需要 10 分钟。 在控制台查看是否所有资源都被删除。 同时删除 AWS CDK 在 Amazon S3 控制台上创建的资产 S3 存储桶以及 Amazon ECR 上的资产存储库。
结论
如本文所示,您可以使用 AWS CDK 在 JumpStart 中部署生成式 AI 模型。 我们使用由 Streamlit、Lambda 和 API 网关提供支持的用户界面展示了一个图像生成示例和一个文本生成示例。
您现在可以在 JumpStart 中使用预训练的 AI 模型构建您的生成式 AI 项目。 您还可以扩展此项目以针对您的用例微调基础模型并控制对 API 网关端点的访问。
我们邀请您测试解决方案并为项目做出贡献 GitHub上. 在评论中分享您对本教程的看法!
许可证摘要
此示例代码根据修改后的 MIT 许可证提供。 见 许可 文件以获取更多信息。 此外,查看相应的许可证 稳定扩散 和 法兰-t5-xl 模型上拥抱的脸。
关于作者
汉兹利陶库尔 是驻新加坡的 APJ 合作伙伴解决方案架构负责人。 他在 ICT 行业拥有 20 年的经验,涉及多个职能领域,包括解决方案架构、业务开发、销售策略、咨询和领导力。 他领导着一个由高级解决方案架构师组成的团队,使合作伙伴能够开发联合解决方案、构建技术能力,并在客户将其应用程序迁移到 AWS 并对其进行现代化改造时指导他们完成实施阶段。
崔权律 是位于首尔的韩国美容护理平台初创公司 BABITALK 的首席技术官。 在此之前,Kownyul 在 AWS 担任软件开发工程师,专注于 AWS CDK 和 Amazon SageMaker。
阿伦普拉萨特·香卡(Arunprasath Shankar) 是 AWS 的高级 AI/ML 专家解决方案架构师,帮助全球客户在云中有效且高效地扩展其 AI 解决方案。 业余时间,阿伦喜欢看科幻电影和听古典音乐。
萨蒂什·乌普雷蒂 是 APJ 合作组织中的迁移主管 PSA 和安全 SME。 Satish 在本地私有云和公共云技术方面拥有 20 年的经验。 自 2020 年 XNUMX 月作为迁移专家加入 AWS 以来,他为 AWS 合作伙伴提供广泛的技术建议和支持,以规划和实施复杂的迁移。
附录:代码演练
在本节中,我们概述了该项目中的代码。
AWS CDK 应用程序
主要的 AWS CDK 应用程序包含在 app.py
根目录下的文件。 该项目由多个堆栈组成,因此我们必须导入堆栈:
我们定义我们的生成 AI 模型并从 SageMaker 获取相关的 URI:
get_sagemaker_uris 函数从 JumpStart 检索所有模型信息。 看 script/sagemaker_uri.py
.
然后,我们实例化堆栈:
第一个启动的堆栈是 VPC 堆栈,GenerativeAiVpcNetworkStack。 Web 应用程序堆栈 GenerativeAiDemoWebStack 依赖于 VPC 堆栈。 通过传递参数 vpc=network_stack.vpc 完成依赖。
我们 app.py
完整代码。
VPC 网络堆栈
在 GenerativeAiVpcNetworkStack 堆栈中,我们创建了一个具有公共子网和跨越两个可用区的私有子网的 VPC:
我们 /stack/generative_ai_vpc_network_stack.py
完整代码。
演示 Web 应用程序堆栈
在 GenerativeAiDemoWebStack 堆栈中,我们启动 Lambda 函数和相应的 API 网关端点,Web 应用程序通过这些端点与 SageMaker 模型端点进行交互。 请参阅以下代码片段:
Web 应用程序被容器化并托管在带有 Fargate 的 Amazon ECS 上。 请参阅以下代码片段:
我们 /stack/generative_ai_demo_web_stack.py
完整代码。
图像生成 SageMaker 模型端点堆栈
GenerativeAiTxt2imgSagemakerStack 堆栈从 JumpStart 创建图像生成模型端点,并将端点名称存储在 Systems Manager Parameter Store 中。 Web 应用程序将使用此参数。 请参见以下代码:
我们 /stack/generative_ai_txt2img_sagemaker_stack.py
完整代码。
NLU 和文本生成 SageMaker 模型端点堆栈
GenerativeAiTxt2nluSagemakerStack 堆栈从 JumpStart 创建 NLU 和文本生成模型端点,并将端点名称存储在 Systems Manager Parameter Store 中。 Web 应用程序也将使用此参数。 请参见以下代码:
我们 /stack/generative_ai_txt2nlu_sagemaker_stack.py
完整代码。
Web应用程序
Web 应用程序位于 /web-app
目录。 它是一个 Streamlit 应用程序,根据 Dockerfile
:
要了解有关 Streamlit 的更多信息,请参阅 精简的文档.
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图爱流。 Web3 数据智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- 使用 PREIPO® 买卖 PRE-IPO 公司的股票。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/deploy-generative-ai-models-from-amazon-sagemaker-jumpstart-using-the-aws-cdk/
- :具有
- :是
- $UP
- 1
- 10
- 100
- 20
- 20 年
- 2020
- 2023
- 7
- 8
- 9
- a
- 关于
- ACCESS
- 访问
- 无障碍
- 因此
- 账号管理
- 横过
- 适应
- 解决
- 采用
- 采用
- 进步
- 忠告
- 经纪人
- AI
- AI供电
- AI / ML
- 算法
- 所有类型
- 允许
- 已经
- 还
- Amazon
- Amazon API网关
- 亚马逊SageMaker
- 亚马逊SageMaker JumpStart
- 亚马逊网络服务
- an
- 分析
- 和
- 任何
- API
- 应用
- 应用领域
- 应用领域
- 应用
- 四月
- 架构
- 保健
- 地区
- 围绕
- AS
- 办公室文员:
- At
- 关注我们
- 八月
- 可用性
- 可使用
- 避免
- AWS
- AWS 云9
- AWS CloudFormation
- AWS Lambda
- 背部
- 摆动
- 基于
- 蝙蝠
- BE
- 美丽
- 美容
- before
- 作为
- 相信
- 之间
- 引导
- 广阔
- 浏览器
- 建立
- 建
- 商业
- 业务发展
- 企业
- 但是
- by
- 呼叫
- CAN
- 能力
- 容量
- 捕获
- 关心
- 案件
- 例
- CD
- 中心
- 更改
- 特点
- 收费
- 查
- 客户
- 客户
- 云端技术
- Cloud9
- 码
- 购买的订单均
- 相当常见
- 常用
- 完成
- 复杂
- 计算
- 一台
- 配置
- 安慰
- 建设
- 咨询
- 消费
- 包含
- 容器
- 包含
- 内容
- 上下文
- 贡献
- 控制
- 谈话
- 对话
- 正确
- 价格
- 创建信息图
- 创建
- 创建
- 创建
- 首席技术官
- 电流
- 习俗
- 顾客
- 客户体验
- 客户服务
- 合作伙伴
- 定制
- 前沿
- data
- 数据科学
- 天
- 几十年
- 默认
- 定义
- 证明
- 演示
- 依赖
- 依赖的
- 部署
- 部署
- 部署
- 部署
- 部署
- 描述
- 摧毁
- 开发
- 开发
- 研发支持
- 不同
- 扩散
- 屏 显:
- 破坏
- 码头工人
- 文件
- 完成
- 别
- 向下
- 每
- 容易
- 易
- 只
- 有效
- enable
- 使
- 结束
- 端点
- 工程师
- 输入
- 环境
- 环境中
- 估计
- 醚(ETH)
- 所有的
- 每天
- 大家的
- 例子
- 例子
- 令人兴奋的
- 存在
- 体验
- 延长
- 广泛
- 面部彩妆
- false
- 熟悉
- 家庭
- 特征
- 少数
- 部分
- 字段
- 文件
- 找到最适合您的地方
- 姓氏:
- 专注焦点
- 以下
- 如下
- 针对
- 力
- 基金会
- 分数
- 骨架
- 止
- ,
- 功能
- 实用
- 功能
- 网关
- 收集
- 搜集
- 一般用途
- 产生
- 代
- 生成的
- 生成式人工智能
- 得到
- 混帐
- 全球
- 在全球范围内
- 成长
- 有
- 有
- he
- 帮助
- 帮助
- 高品质
- 他的
- 主页
- 主持人
- 托管
- HOURS
- 创新中心
- How To
- HTML
- HTTP
- HTTPS
- 信息和通信技术
- 思路
- if
- 图片
- 图像生成
- 图片
- 想像力
- 实施
- 履行
- 进口
- in
- 包含
- 合并
- 行业
- 行业中的应用:
- 拐点
- 信息
- 基础设施
- 安装
- 安装
- 安装
- 例
- 代替
- 整合
- 集成
- 交互
- 接口
- 成
- 邀请
- 问题
- IT
- 加盟
- 联合
- JPG
- JSON
- 韩语
- 着陆
- 着陆页
- 语言
- 语言
- 大
- 后来
- 最新
- 发射
- 推出
- 发射
- 铅
- 领导者
- 领导团队
- 信息
- 学习用品
- 学习
- 离开
- 自学资料库
- 执照
- 许可证
- 喜欢
- 极限
- Line
- 清单
- 听力
- 书单
- 加载
- 本地
- 位于
- 机
- 机器学习
- 机
- 制成
- 主要
- 使
- 制作
- 管理
- 颠覆性技术
- 经理
- 许多
- 大规模
- 菜单
- 可能
- 迁移
- 移民
- 分钟
- 麻省理工学院简介
- ML
- 机器学习技术
- 模型
- 造型
- 模型
- 现代化
- 改性
- 更多
- 电影
- 多
- 音乐
- 必须
- 姓名
- 自然
- 自然语言
- 自然语言生成
- 自然语言理解
- 自然
- 旅游导航
- 需求
- 需要
- 网络
- 全新
- 下页
- NLG
- lu
- 节点
- 笔记本电脑
- 现在
- 数
- of
- 优惠精选
- on
- 一
- 正在进行
- 仅由
- 开放源码
- 开源软件
- 打开
- or
- 秩序
- 组织
- 原版的
- 其他名称
- 我们的
- 产量
- 超过
- 简介
- 己
- 包
- 页
- 面包
- 范例
- 参数
- 参数
- 合伙人
- 伙伴
- 通过
- 演出
- 相
- 电话
- 图片
- 计划
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 点
- 可能性
- 帖子
- 潜力
- 供电
- 强大
- 先决条件
- 打印
- 先
- 私立
- 市场问题
- 生产
- 代码编程
- 编程语言
- 项目
- 项目
- 提供
- 提供
- 国家
- 公共云
- 公然
- 蟒蛇
- 查询
- 很快
- 范围
- 快
- 急速
- 准备
- 最近
- 简称
- 关于
- 地区
- 有关
- 知识库
- 必须
- 岗位要求
- 资源
- 资源
- 那些
- 检讨
- 革命性
- 右
- 角色
- 根
- 运行
- 运行
- sagemaker
- 销售
- 同
- 鳞片
- 科幻
- 科学
- 划伤
- SDK
- 其次
- 秒
- 部分
- 保安
- 看到
- 种子
- 自
- 前辈
- 情绪
- 首尔
- 无服务器
- 服务器
- 服务
- 特色服务
- 集
- 格局
- Share
- 转移
- 应该
- 显示
- 显示
- 如图
- 作品
- 简易
- 自
- 新加坡
- 尺寸
- 小
- EMS
- So
- 软件
- 软件开发
- 方案,
- 解决方案
- 一些
- 来源
- 太空
- 专家
- 具体的
- 指定
- 稳定
- 堆
- 堆栈
- 标准
- 开始
- 启动
- 初创企业
- 步
- 步骤
- Stop 停止
- 存储
- 商店
- 存储
- 商店
- 故事
- 策略
- 结构体
- 子网
- SUPPORT
- 肯定
- 产品
- 需要
- 任务
- 任务
- 团队
- 文案
- 技术
- 技术
- 专业技术
- 告诉
- 模板
- test
- 测试
- 文字产生
- 这
- 其
- 他们
- 然后
- 博曼
- Free Introduction
- 通过
- 次
- 泰坦
- 至
- 工具箱
- 工具
- 传统
- 传统
- 培训
- 熟练
- 产品培训
- 改造
- 趋势
- true
- 真正
- 转
- 教程
- 二
- 类型
- 类型
- 普遍
- 一般
- 下
- 理解
- 亮相
- 更新
- 升级
- 使用
- 用例
- 用过的
- 用户
- 用户界面
- 运用
- 利用
- 各个
- 广阔
- 确认
- 版本
- 通过
- 视频
- 查看
- 在线会议
- 实质上
- 参观
- 想
- 是
- 观看
- 方法..
- we
- 卷筒纸
- Web应用程序
- Web服务
- 井
- 这
- 而
- 宽
- 大范围
- 广泛
- 维基百科上的数据
- 将
- 窗户
- 也完全不需要
- 工作
- 工作
- 工作流程
- 工作站
- 年
- 您
- 您一站式解决方案
- 和风网
- 区