基于 Amazon SageMaker 的 AIGC 模型训练与 Web 应用部署实践
背景与目标
Amazon SageMaker 汇集了广泛采用的亚马逊云科技机器学习和分析功能,提供了一体式的体验。它支持从数据访问、模型开发到生成式人工智能的全流程,内置治理功能满足企业安全需求。
本文旨在通过实际案例,演示如何利用 Amazon SageMaker Notebook 实例完成 AIGC 模型的测试与验证,将模型部署至 Inference Endpoint 实现服务化,最后利用 Amazon Cloud9 调试 Web 应用,调用已部署的 Endpoint 实现 AIGC 模型的实际集成应用。
环境准备与模型部署
1. 账户与资源初始化
首先需要在亚马逊云科技控制台创建必要的资源。登录控制台后搜索并进入 SageMaker 服务。
在创建 Notebook 实例时,建议配置以下关键信息:
- 实例名称:自定义便于识别的名称。
- 存储大小:根据模型文件体积合理分配。
- IAM 角色:创建一个新角色,赋予 SageMaker 和 S3 等服务的调用权限,用于后续上传模型或部署服务。
创建成功后,等待实例就绪并进入 Jupyter Lab 控制台。在 Terminal 中构建 Stable-Diffusion 环境,下载 Notebook 代码文件,并将内核切换为 conda_pytorch_p39。
2. 模型服务化部署
在 Notebook 中完成模型测试与验证后,下一步是将模型部署为 Inference Endpoint。这一步实现了模型的 API 化,使其能够被外部应用调用。SageMaker 会自动处理底层的硬件资源配置和管理,开发者无需关心服务器运维,只需专注于模型逻辑。
Web 应用集成
为了展示模型能力,我们需要构建一个前后端分离的 Web 应用。
1. 后端开发 (Cloud9)
使用 Amazon Cloud9 环境进行后端开发。进入 Cloud9 服务并创建环境,保持默认配置即可。
在 Cloud9 控制台中执行以下操作:
- 下载并解压包含 Web 应用程序代码的压缩文件。
- 解压后的
SampleWebApp文件夹结构如下:app.py:后端核心代码,负责接收前端请求并调用 SageMaker Endpoint。image.html/index.html:前端页面文件。
- 安装依赖库:Flask 和 boto3。
- 运行
app.py启动服务。
2. 前端交互
打开 Cloud9 提供的 Web 预览页面。用户可以在输入框中填写 Prompt(提示词),例如描述性词汇如 "cartoon style"、"van gogh style" 或 "realistic",并设置图片尺寸(如 512x512)。
当点击生成按钮时,前端发送请求至 Flask 后端,后端通过 boto3 SDK 调用 SageMaker Inference Endpoint。AI 绘制出的图片会贴合预期风格返回给前端展示。


