您现在的位置是:首页 >其他 >Amazon SageMaker:探索AI绘画云端部署新方案网站首页其他

Amazon SageMaker:探索AI绘画云端部署新方案

Mr.Winter` 2024-09-18 00:01:02
简介Amazon SageMaker:探索AI绘画云端部署新方案

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=Noneif 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的智能对话应用

在这里插入图片描述
更多信息欢迎关注亚马逊云科技官网,欢迎感兴趣的同学报名峰会,报名地址详见评论区~

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。