为了推动 AIGC 职业的降本增效,同时也回应用户的热情要求,OneFlow 正在将业内备受欢迎的相关 Diffusion 模型的加快“一网打尽”。
此前,OneFlow 首度将 Stable Diffusion 模型加快至“一秒出图”年代,极大提高了文生图的速度,在 AIGC 领域引发巨大反响,并得到了 Stability.ai 官方的支撑。
不过,由于目前大部分团队首要是根据翻译 API + 英文 Stable Diffusion 模型进行开发,所以在运用中文独特的叙事和表达时,英文版模型就很难给出正确匹配的图片内容,这对部分国内用户来说不太方便。
为此,国内的 IDEA 研究院出品了中文版太乙Stable Diffusion,春节前,OneFlow 对此进行了支撑,使其推理速度翻倍。
另外,智源研究院出品了首个支撑 9 种言语的 AltDiffusion。近期,OneFlow 团队为其适配了 OneFlow 后端,大大提高了推理功用,也能够做到一秒出图。
欢迎Star、运转 OneFlow 版 AltDiffusion:
github.com/Oneflow-Inc…
通过建立多言语文图表征模型 AltCLIP,智源研究院的研究者先推出了中英双语图画生成模型 AltDiffusion,支撑精细长中文 Prompts 高档创造,为中文世界带来专业级 AI 文图创造的微弱动力。
在此基础上,研究者很快又推出了多言语升级版AltDiffusion-m9,其成为首个支撑 9 种言语(英文、中文、日语、法语、韩语、西班牙语、俄语、意大利语、阿拉伯语)的文图生成模型。该研究的首要奉献是建立了一个多言语文图生成模型的柱石,使得更多运用不同言语的创造者能够通过 AltDiffusion 模型进行创造。
AltDiffusion 在多言语对齐方面表现十分超卓,是目前市面上开源的最强多言语版别,保留了原版 Stable Diffusion的大部分能力,并且在某些比方上的表现比原版模型更超卓。
比方当用户给定不同言语的提示语(prompt),模型即可展现言语背后所反映的不同文化图画相貌,如直接生成不同人种的人物形象或不同的地域景物特征。
后文将展现 OneFlow 版 AltDiffusion 的功用表现以及生成图片,不少开发者好奇 OneFlow 运用了哪些优化“秘笈”,也将进行简要解读。
1
对比 PyTorch,OneFlow 将“AltDiffusion”推理速度提高 1 倍以上
下面的图表别离展现了在 A100 (PCIe 40GB / SXM 80GB),V100 ( SXM2 32GB ), RTX 3090,RTX 3080 Ti,RTX 2080和 T4 不同类型的 GPU 硬件上别离运用 PyTorch, 和 OneFlow 对 AltDiffusion 进行推理的功用表现。
能够看到,对于 A100 显卡,无论是 PCIe 40GB 的装备仍是 SXM 80GB 的装备,OneFlow 的功用相比 PyTorch 能提高 1 倍以上,推理速度达到了 51it/s 以上,生成一张图片所需要的时间在 1 秒以内。
其他硬件功用数据:
综上,在各种硬件的对比中,对比 PyTorch, OneFlow 均匀能将 AltDiffusion 的推理功用提高 1 倍左右。
2
生成图片展现
滔滔江水, 连绵不绝, 唯美, 插画
长城, 清晨, 朦胧, 唯美, 插画
梦回江南,我国古代小镇,唯美,插画
我国的未来城市, 科幻,插画
古代建筑, 白雪纷飞
巴黎铁塔下情侣
黑暗精灵公主,十分具体,梦想,十分具体,数字绘画,概念艺术,敏锐的焦点,插图
金发天使戴着兔耳朵发圈,十分具体,梦想,十分具体,数字绘画,概念艺术,敏锐的焦点,插图
用照相机摄影的可爱女孩,十分具体,梦想,十分具体,数字绘画,概念艺术,敏锐的焦点,插图
注:上述图片均根据 OneFlow 版AltDiffusion 生成
3
无缝兼容 PyTorch 生态
想体会 OneFlow 版的 AltDiffusion?只需要修正两行代码:
之所以能这么轻松搬迁模型,是因为 OneFlow Stable Diffusion 有两个超卓的特性:
1.OneFlowAltDiffusionPipeline.from_pretrained能够直接运用 PyTorch 权重;
2.OneFlow 自身的 API 和 PyTorch 对齐,因此import oneflow as torch之后,torch.autocast、torch.float16等表达式完全不需要修正。
上述特性使得OneFlow 兼容了 PyTorch 的生态,这不只在 OneFlow 对 AltDiffusion 的搬迁中发挥了作用,也大大加快了 OneFlow 用户搬迁其它许多模型,比方在和 torchvision 对标的 flowvision 中,许多模型只需通过在 torchvision 模型文件中参加import oneflow as torch即可得到。
此外,OneFlow 还供给大局 “mock torch” 功用,在命令行运转eval $(oneflow-mock-torch)就能够让接下来运转的一切 Python 脚本里的import torch都主动指向 oneflow。
4
动静一体的编程体会
深度学习算法原型开发阶段需要快速修正和调试,动态图履行(Eager mode, define by run)最优。但在部署阶段,模型已经固定下来,核算效率变得更重要,静态图履行(Lazy mode,define and run)能够借助编译器做静态优化来取得更好的功用。因此,推理阶段首要运用静态图形式。
最近,PyTorch 升级到2.0引入了compile()这个API,能够把一个模型或一个Module从动态图履行变成静态图履行。OneFlow里也有一个类似的机制,不过接口名是nn.Graph(),它能够把传入Module转成静态图履行形式。
不只如此,OneFlow的nn.Graph形式根据MLIR完成了一系列核算图的图层优化,譬如内存布局、算子交融等。
这不只使得核算图表示的深度学习模型能够在各种硬件上达到最高功用,更重要的是,使得深度学习结构导入的核算图更方便地在不同硬件之间完成搬迁,有助于战胜国产硬件软件生态薄弱的问题。
未来,我们将发布更多内容来提醒OneFlow深度学习编译器的规划和完成。
欢迎Star、运转 OneFlow 版 AltDiffusion:
github.com/Oneflow-Inc…
OneFlow 地址:
github.com/Oneflow-Inc…
欢迎 Star、试用 OneFlow 最新版别:
github.com/Oneflow-Inc…