一、前言
最近参与了亚马逊云科技【云上探索实验】活动,通过Amazon SageMaker基于Stable Diffusion模型,非常简单快速搭建的第一个AIGC,一开始以为非常复杂,不懂动手操作,但实际上操作非常简单,没有想象中的恐怖,整体体验非常愉快,我先对Amazon SageMaker简单介绍,然后对基于Stable Diffusion模型,搭建AIGC应用简单总结下。
二、Amazon SageMaker简单介绍
Amazon SageMaker 是 Amazon Web Services(AWS)的一款全面的机器学习(ML)平台,旨在让数据科学家,开发人员和企业更轻松地构建、训练和部署机器学习模型。Amazon SageMaker 提供了一整套工具和框架,包括数据标注、模型训练、模型部署、自动化建模等功能,同时还支持多种常见数据科学框架,例如 TensorFlow、PyTorch 和 Apache MXNet。Amazon SageMaker 建立在 Amazon 二十年来开发现实世界机器学习应用程序的经验之上,这些应用程序包括产品推荐、个性化、智能购物、机器人技术和语音辅助设备。
官网地址地址
三、基于Stable Diffusion模型,搭建AIGC应用简单
1、我们需要先检查限额
我们会使用ml.g4dn.xlarge,首先需要确保 ml.g4dn.xlarge有额度,点击这里:请点击检查限额 ,搜索框中输入ml.g4dn.xlarge for endpoint usage 若您的限额如图所示,在ml.g4dn.xlarge for endpoint usage行第二列若为0,请继续以下步骤
选中其中的ml.g4dn.xlarge for endpoint usage,然后点击右上角橙色按钮“请求增加配额”一步一步的往下走。
2、我们需要创建Amazon SageMaker Notebook实例
1)、登录控制台
2)、在查找服务处搜索SageMaker,然后配置笔记本实例。
3)、配置一个IAM角色
3、我们需要在AWS Cloud9 创建前后端 Web 应用
1)、创建环境
这里我们需要进行创建AWS Cloud9和安装boto3这些环境等,具体操作可以看这里
2)、运行app.py和preview前端页面
3)、简单测试prompt
输入:a siamese cat wearing glasses, working hard at the computer
4、总结
基于Stable Diffusion模型,搭建AIGC应用操作非常简单,就算我们不是很懂,也能操作成功,功能也非常强大,体验非常舒服,真心建议大家去使用。
四、Stable Diffusion 模型介绍和核心竞争力
1、模型结构图
2、模型原理
3、模型训练
训练目标:一步步对随机的高斯噪声降噪(denoise)
优势:Latent diffusion 之所以是 “latent”,是因为模型是在低维的潜空间(latent space)上进行扩散过程,而不是在实际的像素空间,从而降低了内存消耗和计算复杂度(比如输入shape是(3,512,512),下采样因子是8,潜空间中变成了(3,64,64),节省了8×8=64倍的内存)。训练完之后的模型就能把一张图表示成一个低维的潜特征。
4、模型推理
如图(假设batch size是1),用户输入的 prompt 被 CLIP Text encoder 编码为 77×768 的潜特征,随机噪声被表示成 64×64 的潜特征;然后 U-Net 以 prompt 的特征为条件,逐步迭代计算。U-Net 输出的噪声残差,会通过调度算法(scheduler algorithm),根据先前的噪声表示和预测的噪声残差,计算最终去噪的图像潜表示。Stable Diffusion 建议的调度算法有三种:
- PNDM scheduler(Pseudo Numerical Methods for Diffusion Models on Manifolds,默认)
- DDIM scheduler
- K-LMS scheduler
得到图像潜表示后,就可以送到 VAE 的 decoder 解码成图像了。
5、Stable Diffusion 算法模型的核心竞争力
- Stable Diffsuion能压缩率更高,清晰度超越JPEG等算法。
- 与纯粹基于transformer的方法相比,本文方法更适合高维数据;还可以高效地应用于百万像素图像的高分辨率合成。
- 显著降低计算成本,在多个任务(无条件图像合成、inpainting、超分辨率)和数据集上实现了具有竞争力的性能。与基于像素的扩散方法相比,显著降低了推理成本。
- 与之前的工作(同时学习编码器/解码器架构和score-based的先验)相比,方法不需要对重构和生成能力进行精确的权衡。这确保了仅需非常少的潜空间正则化下,即可有较合理的重建效果。
- 对于超分辨率、图像修复和语义合成等条件密集输入型的任务,模型能以卷积的方式应用,并输出高达1024分辨率的图像。
- 基于交叉注意力的通用条件机制,实现了多模态训练。用它来训练类条件模型、文本到图像模型和布局到图像模型。
- Stable Diffsuion制作图片速度非常快。
总之只需训练一次通用的自动编码阶段,就可以用于多次DM训练或探索可能完全不同的任务。
五、Amazon SageMaker产品强大的功能特性
1、模型训练功能
Amazon SageMaker 提供了完整的模型训练流程,支持多种常见的深度学习和机器学习算法,包括线性回归、逻辑回归、k-means聚类、随机森林等。用户可以在 SageMaker 中选择合适的算法,并通过简单易用的界面或 API 进行模型训练。此外,用户可以使用预训练模型或自己的模型文件进行训练。
当然,我们还可有使用亚马逊训练模特 SageMaker,下图说明了 Amazon 如何训练和部署模型 SageMaker:。
2、模型部署功能
Amazon SageMaker 提供了多种模型部署选项,包括实时端点、批量推理和容器化部署等。用户可以根据自己的需求选择合适的部署方式,并通过简单易用的界面或 API 进行部署。此外,用户还可以根据自己的需求进行部署优化,例如通过使用 GPU 实例加速推理速度,下图就是工作原理。
我们可以在点击这里部署用于推理的模型具体深入了解。
3、数据标注功能
Amazon SageMaker 提供了一整套数据标注工具,包括文本分类、图像分类、目标检测等。用户可以选择合适的数据标注任务,并通过简单易用的界面或 API 进行标注。此外,用户还可以使用 Amazon Mechanical Turk 等服务来获取更多的标注数据。
4、自动化建模功能
Amazon SageMaker 提供了自动化建模功能,可以根据用户提供的数据自动生成模型。用户只需要上传数据集,SageMaker 就会自动生成最佳的模型架构和参数,并进行训练和优化。此功能可以大大简化模型构建的过程,提高模型的精度和效率。
5、建模能力、速度与易用性
Amazon SageMaker 提供了一整套优秀的建模能力,可以帮助用户快速构建高质量的模型。同时,SageMaker 的训练速度也非常快,可以大大缩短模型训练的时间。此外,SageMaker 的易用性也非常好,用户可以通过简单易用的界面或 API 进行操作,无需专业知识。
6、框架支持能力功能
Amazon SageMaker 支持多种常见的数据科学框架,包括 TensorFlow、PyTorch 和 Apache MXNet 等。用户可以选择合适的框架进行模型训练和部署,并享受到 SageMaker 提供的各种优秀功能。
7、其它特性
除了以上所述的功能特性,Amazon SageMaker 还提供了多种其他有用的功能,例如模型调优、模型监控、模型解释等。这些功能可以帮助用户更好地理解和管理自己的机器学习模型。
六、Amazon SageMaker技术原理
1、机器学习原理性能
Amazon SageMaker 基于 TensorFlow、PyTorch、MXNet 等常见的机器学习框架,使用高效的分布式计算、自动化调参、自动化特征工程等技术,提高了机器学习模型的训练速度和效率。同时,SageMaker 还提供了多种优秀的算法库,可以帮助用户更好地构建和优化自己的机器学习模型。
1)、监督学习
Amazon SageMaker 提供了多种内置的通用算法,可用于分类或回归问题。
- AutoGluon-表格
- CatBoost
- 因子分解机算法
- K 最近邻 (k-NN) 算法
- LightGBM
- 线性学习器算法
- TabTransformer
- XGBoost 算法
- Object2Vec 算法
- DeepAR 预测算法
2)、无监督学习
Amazon SageMaker 提供了多种内置算法,可用于各种无监督学习任务,例如聚类、降维、模式识别和异常检测。
- 主成分分析 (PCA) 算法
- K-Means 算法
- IP 见解
- 随机森林砍伐 (RCF) 算法
3 )、文本分析
SageMaker 提供专为分析自然语言处理、文档分类或摘要、主题建模或分类以及语言转录或翻译中使用的文本文档而量身定制的算法。
- BlazingText 算法
- 序列到序列算法
- 潜在狄利克雷分配 (LDA) 算法
- 神经主题模型 (NTM) 算法
- 文本分类- TensorFlow
4)、图像处理
SageMaker 还提供用于图像分类、物体检测和计算机视觉的图像处理算法。
- 图像分类-MXNet
- 图像分类- TensorFlow
- 语义分割算法
- 物体检测-MXNet
- 物体检测- TensorFlow
2、主要功能算法总结
Amazon SageMaker 提供了多种常见的机器学习和深度学习算法,包括线性回归、逻辑回归、k-means聚类、随机森林等。同时,SageMaker 还支持自定义算法,用户可以根据自己的需求进行扩展和优化。
七、Amazon SageMaker产品适用场景和体验
1、适用场景
Amazon SageMaker 适用于各种类型和规模的机器学习项目,包括计算机视觉、自然语言处理、推荐系统等。它可以帮助用户更轻松地构建、训练和部署机器学习模型,提高模型的精度和效率。
2、体验优势
1)、接入便捷
Amazon SageMaker 可以与其他 AWS 服务无缝集成,例如 Amazon S3、Amazon Redshift、AWS Lambda 等。这使得用户可以轻松地将自己的数据和应用程序与 SageMaker 集成,无需担心数据迁移和管理问题,点击这里入门。
2)、功能丰富
Amazon SageMaker 提供了一整套机器学习工具和框架,包括模型训练、模型部署、数据标注、自动化建模等功能。用户可以根据自己的需求选择合适的功能,并通过简单易用的界面或 API 进行操作。
3)、帮助文档丰富
Amazon SageMaker 提供了详尽的帮助文档和示例,可以帮助用户更好地理解和使用 SageMaker。此外,AWS 还提供了丰富的支持服务,用户可以随时联系 AWS 支持团队获取帮助。
常见问题都能得到解决
3、客户业务案例
Amazon SageMaker 已经被广泛应用于各种机器学习项目中,例如:
垃圾邮件过滤:使用 SageMaker 训练模型来识别垃圾邮件,提高邮件过滤的效率和准确率。
图像分类:使用 SageMaker 训练模型来识别不同类别的图像,例如车辆、人物、动物等。
语音识别:使用 SageMaker 训练模型来识别语音,例如语音搜索、语音识别等。
推荐系统:使用 SageMaker 训练模型来预测用户的购买行为,提高推荐系统的准确率和效率。
部分客户如下图
八、Amazon SageMaker产品总结
1、技术总结
Amazon SageMaker 基于 TensorFlow、PyTorch、MXNet 等常见的机器学习框架,使用高效的分布式计算、自动化调参、自动化特征工程等技术,提高了机器学习模型的训练速度和效率。同时,SageMaker 还提供了多种优秀的算法库和工具,可以帮助用户更好地构建和优化自己的机器学习模型。
2、性能总结
Amazon SageMaker 提供了高效的数据标注、模型训练和模型部署功能,可以帮助用户更轻松地构建、训练和部署机器学习模型。同时,SageMaker 还提供了多种优秀的算法库和工具,可以提高模型的精度和效率。
3、核心竞争力总结
Amazon SageMaker 提供了一整套优秀的机器学习工具和框架,包括模型训练、模型部署、数据标注、自动化建模等功能。用户可以根据自己的需求选择合适的功能,并通过简单易用的界面或 API 进行操作。此外,SageMaker 还提供了高效的分布式计算、自动化调参、自动化特征工程等技术,可以大大提高机器学习模型的训练速度和效率。
4、是否满足大众需求总结
Amazon SageMaker 已经被广泛应用于各种机器学习项目中,并得到了广泛的认可和好评。它提供了一整套优秀的机器学习工具和框架,可以帮助用户更轻松地构建、训练和部署机器学习模型,提高模型的精度和效率。
九、温馨提示
目前云上探索实验室正在进行中,欢迎大家参与。
活动介绍与活动链接,https://dev.amazoncloud.cn/experience
活动定位:通过云上探索实验室,开发者可以学习实践云上技术,同时将自己的技术心得分享给其他开发者小伙伴。一同创造分享,互助启发,玩转云上技术。云上探索实验室不仅是体验的空间,更是分享的平台”