阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上

这篇具有很好参考价值的文章主要介绍了阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导读

随着Stable Diffusion模型在AI圈的爆火,AI生成内容(AI Generated Content,AIGC)的应用呈现出井喷式的增长趋势。其中,文图生成(Text-to-image Generation)任务是最流行的AIGC任务之一,旨在生成与给定文本对应的图像。在先前的工作中,阿里云机器学习PAI团队开源了PAI-Diffusion系列模型(看这里),包括一系列通用场景和特定场景的文图生成模型,例如古诗配图、二次元动漫、魔幻现实等。这些模型的Pipeline除了包括标准的Latent Diffusion Model,还集成了PAI团队先前提出的中文CLIP跨模态对齐模型(看这里),及图像超分模型,使得模型可以生成符合中文文本描述的、各种场景下的高清大图。由于在特定场景下,用户往往有对这些中文Diffusion模型调优(Fine-tune)的需求,而且在线上部署方面,由于Diffusion模型推理速度比较慢,而且需要耗费较多的硬件资源。在本次的工作中,我们在EasyNLP算法框架中,对先前提出的PAI-Diffusion模型功能进行升级,全链路支持模型调优。在模型推理方面,结合由PAI自主研发的编译优化工具 PAI-Blade,支持对PAI-Diffusion模型的端到端的导出和推理加速,在A10机器下做到了1s内的中文大图生成。

本⽂首先介绍如何体验PAI-Diffusion模型以及其在线部署、加速推理能力。其次,我们简单回顾了PAI-Diffusion模型的架构,之后详细介绍了在EasyNLP算法框架中对上述模型进行调优的全链路支持。

轻松体验PAI-Diffusion模型

首先让我们轻松体验PAI-Diffusion模型。

在线体验

PAI-Diffusion模型可以用于各种风格的艺术画的生成。这个模型的参数量仅10亿,使用一张P100 GPU显卡,就可以生成1024*1024的高清大图,示例如下。

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

我们在AI模型开源社区ModelScope的创空间上线了我们的一个PAI-Diffusion模型(体验链接),欢迎广大用户体验。

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

PAI-Diffusion模型架构回顾

我们简单回顾一下PAI-Diffusion模型的技术架构。简单的说,PAI-Diffusion模型是面向中文的、基于隐式扩散模型(Latent Diffusion Model, LDM)的文图生成模型。因为中英文在文化和表达上具有很大的差异性,产出的模型通常无法建模中文特有的现象。PAI-Diffusion模型由阿里云机器学习(PAI)团队发布并开源,除了可以用于通用文图生成场景,还具有一系列特定场景的定制化中文Diffusion模型,包括古诗配图、二次元动漫、魔幻现实等。PAI-Diffusion的模型Pipeline架构,包括中文CLIP模型、Diffusion模型、图像超分模型等:

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

具体地说,中文CLIP模型把中文文本输入转化成 Embedding 向量,我们采用EasyNLP中文CLIP跨模态对齐模型(看这里)的Text Transformer作为Text Encoder。我们把中文CLIP模型的输出作为LDM的输入,训练模型生成文本对应的图片。可选地,PAI-Diffusion模型链路中还集成了ESRGAN作为图像超分模型,提升图片的分辨率。

PAI-Diffusion模型加速推理技术

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

PAI-Blade 采用多种模型编译优化技术,可以对基于Tensorflow/Pytorch 训练的模型进行推理优化加速。

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

针对基于PAI-EasyNLP的 PAI-Diffusion模型 和社区的Stable-Diffusion模型的推理进行测速分析,针对推理的主要部分,引入了编译优化和flashattention的推理加速技术,成功将整个推理链路平均提速75%以上,具体加速比视推理步数略有不同,详细可以参考下表(测试推理机器 Nvidia-A10,输出图片分辨率 512x512):

pai-diffusion原版 pai-blade 加速后 加速比 采样步数
1.61s 0.97s 66% 20
3.02s 1.62s 86% 50

综上可以看到, 引入PAI自主研发的模型推理加速工具Blade 能大幅度提升DiffusionModel的推理速度,降低服务延迟,节省计算资源。

PAI-Diffusion模型的微调和微调后模型部署

在本次更新中,我们在PAI-EasyNLP算法框架对PAI-Diffusion模型的调优做了全面支持。我们介绍如何在PAI-Diffusion模型的训练流程,以及如何在PAI的产品中部署上述微调后的模型用于在线服务。

安装EasyNLP

用户可以直接参考链接的说明安装EasyNLP算法框架。

数据准备

首先准备训练数据与验证数据,为tsv文件。这⼀⽂件包含以制表符\t分隔的三列(idx, text, imgbase64),第一列是文本编号,第二列是文本,第三列是对应图片的base64编码。样例如下:

64b4109e34a0c3e7310588c00fc9e157    韩国可爱日系袜子女中筒袜春秋薄款纯棉学院风街头卡通兔子长袜潮  iVBORw0KGgoAAAAN...MAAAAASUVORK5CYII=

为了方便开发者,我们也提供了转换图片到base64编码的示例代码:

import base64
from io import BytesIO
from PIL import Image

img = Image.open(fn)
img_buffer = BytesIO()
img.save(img_buffer, format=img.format)
byte_data = img_buffer.getvalue()
base64_str = base64.b64encode(byte_data) # bytes

下列文件已经完成预处理,可用于测试:

# train
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_train.tsv

# valid
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_val.tsv

# test
https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/painter_text2image/T2I_test.tsv

模型微调

我们采用以下命令对PAI-Diffusion模型进行fine-tune:

easynlp \
    --mode=train \
    --worker_gpu=1 \
    --tables=T2I_train.tsv,T2I_val.tsv \
    --input_schema=idx:str:1,text:str:1,imgbase64:str:1 \
    --first_sequence=text \
    --second_sequence=imgbase64 \
    --checkpoint_dir=./finetuned_model \
    --learning_rate=4e-5 \
    --epoch_num=3 \
    --random_seed=42 \
    --logging_steps=100 \
    --save_checkpoint_steps=1000 \
    --sequence_length=288 \
    --micro_batch_size=16 \
    --app_name=latent_diffusion \
    --user_defined_parameters='
        pretrain_model_name_or_path=alibaba-pai/pai-diffusion-general-large-zh
    reset_model_state_flag=True
      ' 

训练完成后模型被保存到./finetune_model/。

模型离线推理

模型训练完毕后,我们可以将其用于图片的生成,示例如下:

easynlp \
      --mode=predict \
      --worker_gpu=1 \
      --tables=T2I_test.tsv \
      --input_schema=idx:str:1,text:str:1 \
      --output_schema=text \
      --outputs=./output.tsv \
      --first_sequence=text \
      --checkpoint_dir=./finetuned_model \
      --random_seed=42 \
      --logging_steps=100 \
      --save_checkpoint_steps=500 \
      --sequence_length=32 \
      --micro_batch_size=16 \
      --app_name=latent_diffusion \
      --user_defined_parameters='
          n_samples=2
      write_image=True
      image_prefix=./output/
      '

直接在线部署

用户可以使用PAI-EAS自定义服务部署方式,使用如下config部署我们已经打包好的相关processor进行服务部署即可。我们提供了一个测试模型以供体验模型的推理速度,部署在A10/T4/V100 GPU的config参考如下,您需要将resource字段替换成自己的资源组:

{
    "baseimage": "registry.cn-shanghai.aliyuncs.com/eas/eas-worker-amd64:0.6.8",
    "data_image": "registry.cn-shanghai.aliyuncs.com/pai-ai-test/eas-service:ch_ldm_v100",
    "metadata": {
        "cpu": 15,
        "gpu": 1,
        "instance": 1,
        "memory": 50000,
        "name": "ch_ldm_easynlp",
        "resource": "请替换成自己的资源组",
        "rpc": {
            "keepalive": 50000,
            "worker_threads": 5
        }
    },
    "model_path": "http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_model_20230206_noblade.tar.gz",
    "processor_entry": "./app.py",
    "processor_path": "http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_processor_20230206.tar.gz",
    "processor_type": "python",
    "name": "ch_ldm_easynlp"
} 

如果您需要体验Blade优化后的推理速度,可以在A10 GPU中进行部署,用户需要将上述model_path的值替换为http://pai-vision-exp.oss-cn-zhangjiakou.aliyuncs.com/wzh-zhoulou/dl_eas_processor/ch_ldm/ch_ldm_blade_220206/eas_model_20230206.tar.gz。

当服务部署成功后,可以使用如下格式的request body进行测试:

{
    "text": "测试文本",
    "num_inference_steps": 20,
    "num_images": 1
}

在线服务返回示例如下:

{
    "text": "测试文本",
    "images_base64": ["...", "...", ...]
}

images_base64字段返回生成图像的base64编码,生成图像数量由request body中的参数指定。

微调后部署

用户也可以使用EasyNLP进行微调训练后部署,需要将如下训练后的ckpt 打包替换上面json中的model_path字段:

sd stable diffusio阿里云云部署,云栖号技术分享,人工智能,计算机视觉,云计算,阿里云

打包命令示例如下:

cd finetuned_model/
tar czf finetuned_model.tar.gz config.json pytorch_model.bin RRDB_ESRGAN_x4.pth vocab.txt

然后,采用前述config 将模型部署到PAI-EAS,建议使用的GPU型号为A10/T4/V100。

如果用户需要使用Blade 加速,支持使用A10/A100 GPU机器资源进行部署,请联系我们获取Blade相关教程。

未来展望

在这一期的工作中,我们对PAI-Diffusion模型的功能进行重大升级,在EasyNLP框架中(https://github.com/alibaba/EasyNLP)支持全链路模型的调优和在线部署,使得用户能一键实现模型的调优,并且在阿里云PAI平台上便捷部署在线服务。此外,阿里云机器学习PAI团队也在持续推进中文多模态模型的自研工作,欢迎用户持续关注我们,也欢迎加入我们的开源社区,共建中文NLP和多模态算法库!

Github地址:https://github.com/alibaba/EasyNLP

Reference

  1. Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022
  2. Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Björn Ommer. High-Resolution Image Synthesis with Latent Diffusion Models. CVPR 2022
  3. Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. Learning Transferable Visual Models From Natural Language Supervision. ICML 2021
  4. Dao T, Fu D Y, Ermon S, et al. Flashattention: Fast and memory-efficient exact attention with io-awareness. arXiv preprint arXiv:2205.14135, 2022

原文链接

本文为阿里云原创内容,未经允许不得转载。文章来源地址https://www.toymoban.com/news/detail-796531.html

到了这里,关于阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 PAI-Blade 优化 Stable Diffusion 推理流程

    AIGC是人工智能计算领域里发展迅速的重要业务。Stable Diffusion 是其中最热门的开源模型,受到广泛关注。然而,随着应用场景不断扩大,Stable Diffusion所面临的推理时延和计算成本问题也越来越突出。 PAI-Blade 是 PAI 推出的通用推理优化工具,可以通过模型系统联合优化,使模

    2024年02月09日
    浏览(33)
  • 使用 PAI-Blade 优化 Stable Diffusion 推理流程(二)

    上一篇中,我们使用了 PAI-Blade 优化了 diffusers 中 Stable Diffusion 模型。本篇,我们继续介绍使用 PAI-Blade 优化 LoRA 和 Controlnet 的推理流程。相关优化已经同样在  registry.cn-beijing.aliyuncs.com/blade_demo/blade_diffusion 镜像中可以直接使用。同时,我们将介绍 Stable-Diffusion-webui 中集成 PA

    2024年02月09日
    浏览(29)
  • 基于 PAI-EAS 一键部署 Stable Diffusion AIGC 绘画

    人工智能平台PAI完成云上Stable Diffusion以文生图应用搭建, 支持两种方式: 使用交互式建模 PAI-DSW 使用模型在线服务 PAI-EAS 两种部署适用人群: 1.使用交互式建模 PAI-DSW 部署Stable Diffusion 亮点: Notebook经典界面,对习惯代码操作的开发者更加友好; 支持微调训练等操作,灵

    2024年01月20日
    浏览(35)
  • 参与赢大奖!阿里云机器学习平台PAI助力开发者激发AIGC潜能

    近年来,随着海量多模态数据在互联网的爆炸性增长和训练深度学习大模型的算力大幅提升,助力开发者一站式快速搭建文生图、对话等热门场景应用,阿里云机器学习平台PAI特推出AIGC加油包,为广大开发者加油助力激发AIGC潜能,同时有机会赢取坚果投仪、AirPods等多款好礼

    2024年02月09日
    浏览(44)
  • Mixtral 8X7B MoE模型基于阿里云人工智能平台PAI实践合集

    作者:熊兮、贺弘、临在 Mixtral 8x7B大模型是Mixtral AI推出的基于decoder-only架构的稀疏专家混合网络(Mixture-Of-Experts,MOE)开源大语言模型。这一模型具有46.7B的总参数量,对于每个token,路由器网络选择八组专家网络中的两组进行处理,并且将其输出累加组合,在增加模型参数

    2024年01月17日
    浏览(32)
  • 云服务器免费领用,体验PAI-EAS 5分钟部署Stable Diffusion webUI

    最近发现大家都在体验AIGC的Stable Diffusion 文生图模型,很多博主也分享了详细的本地部署保姆级教程。 为什么选择本地部署Stable Diffusion 因为没有生成数量的限制,不用花钱,不用被NSFW约束,生成时间快,不用排队,自由度高,插件丰富,功能众多,可以调试和个性化的地方

    2024年02月16日
    浏览(38)
  • 阿里云机器学习PAI全新推出特征平台 (Feature Store),助力AI建模场景特征数据高效利用

    推荐算法与系统在全球范围内已得到广泛应用,为用户提供了更个性化和智能化的产品推荐体验。在推荐系统领域,AI建模中特征数据的复用、一致性等问题严重影响了建模效率。 阿里云机器学习平台 PAI 推出特征平台(PAI-FeatureStore) 。在所有需要特征的AI建模场景,用户可

    2024年02月11日
    浏览(33)
  • 当前服务器版本不支持该功能,请联系经销商升级服务器 - - 达梦数据库报错

    某项目使用标准版数据库中,使用insert into 正常操作表,插入数据时报错,表为普通表。 -539:当前服务器版本不支持该功能,请联系经销商升级服务器

    2024年02月13日
    浏览(38)
  • 基于 PAI-DSW 使用 SD WebUI 实现AI扩图功能

    在本教程中,您将学习如何在阿里云交互式建模(PAI-DSW)中,使用Stable-Diffusion-WebUI实现AI扩图功能。 随着AIGC技术的落地发展,越来越多的创新玩法闯进了我们视野,AI扩图便是其中之一。只需给AI一张图片,AI就会根据图像的上下文语义信息,预测和补充图像边界,生成一张

    2024年01月20日
    浏览(43)
  • 阿里云全链路流量配置

    一、创建istio gateway 创建ssl证书的secret 创建*.dev.domain.cn域名的gateway,yaml文件如下 3、创建*.internal.domain.com域名的gateway,yaml文件如下 创建完成后,当前集群仅应有如下两个gateway CRD资源 二、创建istio gateway的路由 1、为微服务vs-osi-nb-std-comp创建路由 此微服务的service名为osi-nb

    2024年02月07日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包