• 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)
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 编写初始化的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)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    • 构建推理脚本
      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):
      	...
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
    • 打包上传模型
      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")
      
      • 1
      • 2
    • 使用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"
      )
      
      • 1
      • 2
      • 3
      • 4
      • 5

    至此就完成了模型的构建与部署,接下来我们就可以基于推理终端节点生成自定义图片

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    比如我们现在想生成一张《艾菲尔铁塔登陆火星》的图片,就可以获得

    在这里插入图片描述
    下面是《宇航员骑马》的生成绘图

    在这里插入图片描述
    下面是《卡通猴子玩电脑》的生成绘图

    在这里插入图片描述

    然而,AI的应用远不止于此。在如今的数字化时代,云计算和大数据已经成为推动科技创新和商业发展的重要驱动力。亚马逊云科技峰会作为全球范围内的重要科技盛会,聚集了众多行业领袖、创新者和技术专家,共同探讨并展示最新的云计算解决方案和科技创新成果。

    4 亚马逊云科技中国峰会

    亚马逊云科技将于6月27日及28日在上海世博中心举办一年一度的亚马逊云科技中国峰会,本次峰会旨在展示云计算领域最新成果与未来规划。亚马逊云科技将围绕可靠的技术与服务,携手众多业内领先技术践行者,特别呈现创新技术应用、明星讲师团实力助考、开发者社群交流等多样化内容,为来自全球不同行业、拥有不同技术水平的用户,提供共话交流、共谋合作、共同探索的机遇,以帮助中国客户深耕本地业务、海外全球客户植根中国市场、中国客户出海走向世界,实现业务快速落地。

    在这里插入图片描述
    本次大会提供了各种各样的前沿主题:

    • AIGC真实应用案例技术分享一图像生成与智能问答
    • 透过Stable Diffusion揭秘AIGC图像生成进化史
    • Amazon Rekognition助力安全可控的AIGC图像生成
    • 携手亚马逊云科技与HuggingFace高效构建AIGC应用
    • 大语言模型大语言模型行业洞察与产品解决方案介绍
    • 动手实验:构建Amazon SageMaker构建基于ChatGLM的智能对话应用

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

  • 相关阅读:
    安装虚拟机VM和操作系统CentOS
    hive针对带有特殊字符非法json数据解析
    Candence PCB Si 仿真设计篇2:从PCB文件提取仿真拓扑
    HyperBDR新版本上线,自动化容灾兼容再升级!
    phpstrom 快速注释:
    【Python & turtle】绘制一个有趣的的Emoticons
    Guava类库——BiMap和Multimap详解
    GO语言篇之WebAssembly
    kong 和konga网关部署及使用
    利用Python批量对文件名中部分替换的代码
  • 原文地址:https://blog.csdn.net/FRIGIDWINTER/article/details/131114448