用 SageMaker 跑通 AIGC 部署到前端的流程
背景
Amazon SageMaker 是亚马逊云科技的全托管机器学习服务,覆盖数据处理、模型训练、超参数优化和推理部署。对 AIGC 场景来说,它比较省心的一点是:Notebook 可以用来快速试模型,训练阶段能接分布式资源,模型跑通后也能直接挂成 Inference Endpoint。和 S3、CloudWatch 这些服务也能接上,做完整链路时不需要自己把基础设施一层层搭起来。
环境准备与模型测试
步骤一:创建亚马逊云科技账户
- 注册亚马逊云科技官网账户。
- 进入注册页面,输入电子邮件地址进行注册。
- 设置根用户密码,选择个人或企业类型。
- 添加有效的付款方式信息。
- 完成用户信息验证(接收验证码)。
- 客户验证与激活账户。
- 注册成功。
步骤二:创建 Amazon SageMaker Notebook 实例
- 登录亚马逊云科技控制台,搜索并进入 SageMaker 服务。
- 在左侧菜单栏点击笔记本实例,进入控制面板。
- 创建笔记本实例,配置基本信息(名称、实例类型、存储大小)。
- 配置权限,创建 IAM 角色用于调用 SageMaker 和 S3 等服务。
- 确认配置信息无误后创建实例。
- 等待实例创建成功,进入 Jupyter Notebook。
- 构建 Stable-Diffusion 环境:
- 在 Jupyter Lab 控制台选择 Terminal。
- 下载 Notebook 代码文件。
- 打开 Notebook 文件,内核选择
conda_pytorch_p39。
这一步主要是把模型验证环境先搭起来。Notebook 的好处是调试快,坏处也明显,资源配多了成本上去得很快,所以我一般会先把最小可用环境跑通,再看要不要加大实例规格。
Web 应用构建与集成
步骤三:Amazon Cloud9 构建前后端 Web 应用
- 在亚马逊云科技控制台进入 Cloud9 服务。
- 创建 Cloud9 环境,配置名字,其他部分保持默认。
- 进入 Amazon Cloud9 环境。
- 在控制台中输入指令下载保存 Web 应用程序代码压缩文件,并解压。
- 解压后
SampleWebApp文件夹包含以下内容:- 后端代码
app.py:接收前端请求并调用 SageMaker Endpoint 将文字生成图片。 - 两个前端 html 文件
image.html和index.html。
- 后端代码
- 解压后
- 在 Amazon Cloud9 上安装 Flask 和 boto3:
pip install flask boto3
- 运行
app.py,点击 Amazon Cloud9 上方的 Run 按钮运行代码。 - 预览 web 前端页面,在 Amazon Cloud9 环境打开 web 页面。
- 输入信息生成图片:自定义图片长度和宽度,Prompt 输入框处输入语句或描绘性词汇生成图片。
- 建议详细描述需求信息,以便 AI 绘制出的图片更贴合预期。
- 例如通过描述性词语如
cartoon style、van gogh style、realistic表明图片的整体风格。 - 示例:将长度和宽度都设置成 512,输入描绘性语句生成一张卡通风格的宇航员猴子图片。
- 查看成功页面展示。
这里的实现思路不复杂:Cloud9 负责 Web 应用的开发和预览,后端 只做一件事,就是把前端请求转给 SageMaker Endpoint。前端收集 Prompt 和尺寸参数,后端拿 boto3 调接口,最后把生成结果返回给页面。链路短,排障也直接,适合先把服务打通。


