利用高效的图像生成功能构建和扩展生成式人工智能应用程序
本指引将展示如何将 Stability AI 提供的 Stable Diffusion 与 Amazon SageMaker 集成,以构建和扩展生成式人工智能(AI)应用程序。它使您能够将相互依存的整体式生成式人工智能应用程序解耦(修改这些应用程序时通常受到限制并且耗时),还可以为图像推理和模型训练等任务实现自动缩放和扩展。借助增强的平台管理功能,例如资源访问控制和对后端集成的 API 支持,您可以使用本指引调整生成式人工智能,以满足贵组织的具体需求。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
用户向 Amazon API Gateway 提交训练或推理 API 查询。API Gateway 中的资源授权方帮助限制 IP 访问的资源。
第 2 步
API Gateway 将训练查询或推理查询传递给单独的组件。这两个组件都包含 AWS Lambda 和 Amazon SageMaker。Lambda 从查询中获取参数,然后使用这些参数启动 SageMaker 训练或推理作业。使用这些参数训练 Stable Diffusion 模型,或者用于 Stable Diffusion 模型以生成图像。
第 3 步
SageMaker 使用存储在 Amazon Elastic Container Registry(Amazon ECR)中的自定义 Stable Diffusion Docker 映像。或者,它可以从 Amazon Simple Storage Service(Amazon S3)下载预训练的 Stable Diffusion 模型,以训练 Stable Diffusion 模型或生成图像。SageMaker 会根据请求量自动扩展。
第 4 步
训练作业的输出是模型或图像。推理作业的输出是图像。您可以自定义训练作业和推理作业的输出,并将输出保存到 Amazon S3 存储桶中。随后,API Gateway 将生成的图像链接返回给用户。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
AWS CloudFormation 是一项服务,可以帮助您利用持续集成和持续交付(CI/CD)自动化,对基础设施即代码模板进行自动化、测试和部署。您可以在 Amazon CloudWatch 中使用 CloudWatch Logs,它使您能够监控、存储和访问来自 Lambda 和 SageMaker 的日志文件,从而帮助您记录请求并将底层服务的状态可视化。通过 CloudWatch Logs 监控和存储日志文件,可以帮助您快速分析请求和解决请求问题。
当您开发函数时,可以在 Lambda 中使用版本控制来保存函数的代码和配置。您还可以将版本控制与别名结合使用,以执行蓝/绿部署和滚动部署。此外,通过使用 CloudFormation,您可以获得包含模板的生产环境、沙盒开发功能和测试环境,以提高运营控制水平。
-
安全性
API Gateway 使用资源策略控制指定的主体(通常是 AWS Identity and Access Management(IAM)角色或群组)是否可以调用 API。所有 IAM 策略的范围都缩小到 Lambda 和 SageMaker 正常运行时所需的最低权限以内。通过将 API Gateway 资源和 IAM 策略的范围限定在所需的最低权限以内,您可以禁止对应用程序和资源进行未经授权的访问。
-
可靠性
Lambda 在多个可用区中运行函数,以确保它在单个可用区中的服务中断时可以处理事件。此外,Lambda 还会在出错时自动重试,但在两次重试之间会有延迟。
Amazon S3 在给定的年份中提供了 99.999999999%(11 个 9)的持久性和 99.99% 的对象可用性,这可以帮助您以非常高的可靠性存储模型和数据资源。
API Gateway 为您账户中的所有 API 的稳定状态速率和激增的请求提交次数设置了限制。您可以为 API 配置自定义节流。通过限制每秒或每分钟的请求次数,可以防止后端系统不堪重负,并保持 API 的可靠性。
最后,SageMaker 与 Amazon S3 相结合,可以帮助满足您的数据弹性和备份需求。SageMaker 负责训练和部署机器学习(ML)模型时所需的底层基础设施,而 AWS 负责管理计算实例、存储和联网组件,因此可确保实现非常高的可用性和弹性。
-
性能效率
Lambda 经过精心设计,可自动提供托管式扩展。如果您的函数在处理一个先前的请求时收到另一个请求,Lambda 会启动您的函数的另一个实例,以处理增加的负载。随着流量的增大,Lambda 会增加您的函数的并发执行次数。
-
成本优化
Lambda 使用按使用量付费的计费模式,这种模式只按函数的运行时间计费。
SageMaker 根据工作负载要求自动预置和扩展计算资源,以管理您的机器学习基础设施。
-
可持续性
Lambda 是一项无服务器计算服务,这意味着您无需预置或管理服务器。它会根据传入的事件自动扩展您的代码,而且您只需为所使用的计算时间付费。与基于服务器的传统架构相比,这种无服务器架构消除了对空闲服务器的需求,因此降低了能耗。
借助 Lambda,您可以优化计算资源的利用率,从而将应用程序分解成多个可以独立扩展的单独功能。这样的精细扩展可以实现高效的资源分配,因为您只在特定的函数积极处理请求时才为这些函数分配资源。这样就无需过度预置资源,因此提高了资源利用率并减少了浪费。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。