Amazon SageMaker:探索AI绘画云端部署新方案
亚马逊云科技将于6月27日及28日在上海世博中心举办一年一度的亚马逊云科技中国峰会,本次峰会旨在展示云计算领域最新成果与未来规划。欢迎感兴趣的同学报名参加
1 从艺术实验到AI绘画
在过去,人们只希望基于已有的给定数据做一些预测和拟合,因此判别式模型得到发展并且很好地解决了大部分任务;而未来,人们将目标转向用生成式模型生成全新数据,进行迁移学习等,也就是常说的人工智能生成内容(AI Generated Content, AIGC)
AI绘画就是AIGC技术中的一种,它结合了计算机视觉、机器学习和生成模型等技术,使计算机能够模仿、理解和创造艺术。
AI绘画最早可以追溯到上世纪50年代和60年代的计算机艺术实验。当时,艺术家和科学家开始尝试使用计算机生成艺术作品,包括图形、图像和音乐等。然而,由于计算机技术的限制和计算能力的不足,这些早期的尝试相对简单,并且很难产生真正艺术性的作品。
随着计算机技术的发展和深度学习算法的兴起,AI绘画逐渐取得了突破性的进展。通过使用大量的艺术作品数据集进行训练,深度学习模型可以学习艺术风格、色彩和纹理等特征,并生成逼真的艺术作品。其中,生成对抗网络(GAN)是一种常用的模型架构,它由生成器和判别器组成,可以生成具有艺术性的图像。
2022年10月,NovelAI
流出stable-diffusion-webui
模型,开启二次元AI绘画的时代,这也标志着一系列AIGC模型开始从学术界走入公众视角,甚至达到落地商业级别。
这里简单介绍一下扩散模型diffusion model。这是一种生成式人工智能模型,用于生成高质量、高保真度的图像。它基于一种名为扩散过程的物理现象,利用偏微分方程描述像素值在时间和空间上的扩散和演化。
所谓扩散算法diffusion
是指先将一幅画面逐步加入噪点,一直到整个画面都变成白噪声。记录这个过程,然后逆转过来给AI学习。AI看到的是什么?一个全是噪点的画面如何一点点变清晰直到变成一幅画,AI通过学习这个逐步去噪点的过程来学会作画。
diffusion
和之前大火的GAN
模型相比,有什么优势呢?用OpenAI的一篇论文内容来讲,用diffusion
生成的图像质量明显优于GAN
模型;而且与GAN
不同,diffusion
不用在鞍点问题上纠结——涉及稳定性问题,只需要去最小化一个标准的凸交叉熵损失即可,这样就大大简化了模型训练过程中,数据处理的难度。
总结来说,目前的训练技术让diffusion
直接跨越了GAN
领域调模型的阶段,而是直接可以用来做下游任务,是一个新的数学范式在图像领域应用的实例。所以在应用方面,diffusion
已被广泛应用于图像生成、图像修复、图像超分辨率等领域。通过使用文本输入作为条件信息,它可以根据文本的描述生成高质量的图像,例如基于文本描述生成动漫场景、自然风景等。
AI绘画在艺术创作、设计、娱乐和文化领域具有广泛的应用。它不仅可以用于自动绘画和创作艺术作品,还可以用于艺术风格转换、图像修复和增强,以及虚拟现实和增强现实等技术的开发。AI绘画也为艺术家提供了新的创作工具和表达方式,激发了艺术创作的创新和多样性。
对于非人工智能领域的应用行业而言,构造一个AI绘画应用往往需要寻求专业团队或合作伙伴的支持,可以想象,这个过程耗费人力、物力、精力。因此,如何提供一个方便快捷的完整企业级AI会话解决方案,便于下游行业快速处理柔性商业业务成为一大需求。
幸运的是,亚马逊提供了这样一个平台——Amazon SageMaker,可以降低应用领域构建AI模型的门槛,提高生产效率
2 什么是Amazon SageMaker?
Amazon SageMaker是一个托管的机器学习服务,由亚马逊网站(AWS)提供。它使数据科学家和开发人员能够快速构建、培训和部署机器学习模型。
Amazon SageMaker提供了一系列工具和功能,使用户能够在一个集成的环境中完成整个机器学习过程,包括数据准备、模型训练、模型调优和部署。除此之外,Amazon SageMaker还提供了多种预构建的算法和框架,包括XGBoost、TensorFlow和PyTorch等。
Amazon SageMaker是一个全面的机器学习平台,有非常广泛的应用场景
-
企业级机器学习应用
Amazon SageMaker提供了自动模型调整、模型解释和模型部署等多种功能,使用户可以轻松构建和部署机器学习模型。例如
一个金融机构可以使用Amazon SageMaker来构建和部署一个欺诈检测模型,以识别信用卡欺诈行为。
-
云原生机器学习
Amazon SageMaker可以轻松地与其他AWS云服务集成。例如,用户可以使用AWS Lambda和Amazon API Gateway来创建一个API,使其他应用程序可以访问Amazon SageMaker模型的预测结果。
-
高性能机器学习
Amazon SageMaker提供了高性能的计算实例和GPU实例,可以处理大规模的机器学习数据集和复杂的深度学习模型。例如
一个医疗图像诊断应用可以使用Amazon SageMaker中的GPU实例来训练和部署一个深度学习模型,以识别患者的病情。
-
机器学习模型解释
Amazon SageMaker提供了模型解释功能,可以帮助用户理解机器学习模型的决策过程。例如
一个电商公司可以使用Amazon SageMaker来解释一个推荐系统模型的预测结果,以便更好地理解为什么该产品被推荐给了某个用户。
接下来用一个案例讲解基于Amazon SageMaker的AI绘画应用云端部署方案。
3 云端部署AI绘画应用
3.1 模型构建与部署
首先,在Amazon SageMaker里进行简单配置一个Notebook,我这里的配置如下
接着创建一个IAM角色,用于调用调用包括 Amazon SageMaker和 S3 在内的其他服务。例如上传模型,部署模型等,设置保持缺省即可。
构建和训练模型后,Amazon SageMaker允许我们将模型部署至终端节点,以中获取预测推理结果。
使用Amazon SageMaker托管服务部署模型有多种选择,例如
- Python 开发工具包 (Boto3)
- Amazon SageMakerPython 开发工具包
- AWS CLI
- Amazon SageMaker控制台交互部署
- …
这里我们以Python 开发工具包 (Boto3)为例构建这个AI绘画应用,主要包含以下步骤:
- 安装并检查依赖
- 在Notebook中配置模型
import torch import datetime from diffusers import StableDiffusionPipeline # Load stable diffusion pipe = StableDiffusionPipeline.from_pretrained(SD_MODEL, torch_dtype=torch.float16)
- 编写初始化的Amazon SageMaker代码用于部署推理终端节点
import sagemaker import boto3 sagemaker_session_bucket=None if sagemaker_session_bucket is None and sess is not None: sagemaker_session_bucket = sess.default_bucket() ... sess = sagemaker.Session(default_bucket=sagemaker_session_bucket)
- 构建推理脚本
import base64 import torch from io import BytesIO from diffusers import StableDiffusionPipeline def model_fn(model_dir): # Load stable diffusion and move it to the GPU pipe = StableDiffusionPipeline.from_pretrained(model_dir, torch_dtype=torch.float16) pipe = pipe.to("cuda") return pipe def predict_fn(data, pipe): ...
- 打包上传模型
from sagemaker.s3 import S3Uploader sd_model_uri=S3Uploader.upload(local_path=f"{SD_MODEL}.tar.gz", desired_s3_uri=f"s3://{sess.default_bucket()}/stable-diffusion")
- 使用HuggingFace将模型部署至Amazon SageMaker
predictor[SD_MODEL] = huggingface_model[SD_MODEL].deploy( initial_instance_count=1, instance_type="ml.g4dn.xlarge", endpoint_name=f"{SD_MODEL}-endpoint" )
至此就完成了模型的构建与部署,接下来我们就可以基于推理终端节点生成自定义图片
3.2 AI绘画测试(文生图)
输入以下测试代码
response = predictor[SD_MODEL].predict(data={
"prompt": [
"Eiffel tower landing on the Mars",
],
"height" : 512,
"width" : 512,
"num_images_per_prompt":1
}
)
#decode images
decoded_images = [decode_base64_image(image) for image in response["generated_images"]]
#visualize generation
for image in decoded_images:
display(image)
比如我们现在想生成一张《艾菲尔铁塔登陆火星》的图片,就可以获得
下面是《宇航员骑马》的生成绘图
下面是《卡通猴子玩电脑》的生成绘图
然而,AI的应用远不止于此。在如今的数字化时代,云计算和大数据已经成为推动科技创新和商业发展的重要驱动力。亚马逊云科技峰会作为全球范围内的重要科技盛会,聚集了众多行业领袖、创新者和技术专家,共同探讨并展示最新的云计算解决方案和科技创新成果。
4 亚马逊云科技中国峰会
亚马逊云科技将于6月27日及28日在上海世博中心举办一年一度的亚马逊云科技中国峰会,本次峰会旨在展示云计算领域最新成果与未来规划。亚马逊云科技将围绕可靠的技术与服务,携手众多业内领先技术践行者,特别呈现创新技术应用、明星讲师团实力助考、开发者社群交流等多样化内容,为来自全球不同行业、拥有不同技术水平的用户,提供共话交流、共谋合作、共同探索的机遇,以帮助中国客户深耕本地业务、海外全球客户植根中国市场、中国客户出海走向世界,实现业务快速落地。
本次大会提供了各种各样的前沿主题:
- AIGC真实应用案例技术分享一图像生成与智能问答
- 透过Stable Diffusion揭秘AIGC图像生成进化史
- Amazon Rekognition助力安全可控的AIGC图像生成
- 携手亚马逊云科技与HuggingFace高效构建AIGC应用
- 大语言模型大语言模型行业洞察与产品解决方案介绍
- 动手实验:构建Amazon SageMaker构建基于ChatGLM的智能对话应用
- …
更多信息欢迎关注亚马逊云科技官网,欢迎感兴趣的同学报名峰会,报名地址详见评论区~
更多推荐
所有评论(0)