“零”代码改动,静态编译让太乙Stable Diffusion推理速度翻倍
作者|梁德澎
AI 作图领域的工具一直不尽如人意,直到去年 8 月 Stable Diffusion 开源,成为AI 图像生成领域无可争辩的划时代模型。
为了提升其推理效率,OneFlow 首度将 Stable Diffusion 模型加速至“一秒出图”时代,极大提升了文生图的速度,在AIGC领域引发巨大反响,并得到了 Stability.ai 官方的支持。至今,OneFlow 还在不断刷新 SOTA 纪录。
不过,由于目前大部分团队主要是基于翻译 API + 英文 Stable Diffusion 模型进行开发,所以在使用中文独特的叙事和表达时,英文版模型就很难给出正确匹配的图片内容,这对部分国内用户来说不太方便。
为了解决这一问题,国内的IDEA 研究院认知计算与自然语言研究中心(IDEA CCNL)也开源了第一个中文版本的“太乙 Stable Diffusion”,基于0.2亿筛选过的中文图文对训练。上个月,太乙 Stable Diffusion 在 HuggingFace 上有近 15 万下载量,是下载量最大的中文 Stable Diffusion。
近期,OneFlow 团队为太乙 Stable Diffusion 适配了 OneFlow 后端,大大提升了推理性能,也可以做到一秒出图。不少开发者好奇OneFlow使用了哪些优化“秘笈”,后文将进行简要解读。
欢迎Star、运行 OneFlow 版太乙 Stable Diffusion:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker
1
对比 PyTorch,OneFlow 将“太乙 Stable Diffusion”推理速度提升1倍以上
下面的图表分别展示了在 A100 (PCIe 40GB / SXM 80GB),V100 ( SXM2 32GB ), RTX 2080,RTX 3080 Ti,RTX 3090, 和 T4 不同类型的 GPU 硬件上分别使用 PyTorch, 和 OneFlow对 太乙 Stable Diffusion 进行推理的性能表现。
可以看到,对于 A100 显卡,无论是 PCIe 40GB 的配置还是 SXM 80GB 的配置,OneFlow 的性能相比 PyTorch 能提升 1 倍以上,推理速度达到了 50it/s 以上,生成一张图片所需要的时间在 1 秒以内。
其他硬件数据:
注:3090上的AIT数据由 IDEA 研究院提供
2
生成图片展示
滔滔江水, 连绵不绝, 唯美, 插画
长城, 清晨, 朦胧, 唯美, 插画
梦回江南,中国古代小镇,唯美,插画
中国的未来城市, 科幻插画
古代建筑, 白雪纷飞
螺蛳粉
3
无缝兼容 PyTorch 生态
OneFlowStableDiffusionPipeline.from_pretrained 能够直接使用 PyTorch 权重。
OneFlow 本身的 API 和 PyTorch 对齐,因此 import oneflow as torch 之后,torch.autocast、torch.float16 等表达式完全不需要修改。
4
动静一体的编程体验
欢迎Star、运行 OneFlow 版太乙 Stable Diffusion:
https://github.com/Oneflow-Inc/diffusers/wiki/How-to-Run-OneFlow-Stable-Diffusion#without-docker
OneFlow 地址:https://github.com/Oneflow-Inc/oneflow/
35张图,直观理解Stable Diffusion ChatGPT的一小步,NLP范式转变的一大步 2023年AI十大展望:GPT-4领衔大模型变革 李白:你的模型权重很不错,可惜被我没收了 OpenAI掌门Sam Altman:AI下一个发展阶段 比快更快,开源Stable Diffusion刷新作图速度 OneEmbedding:单卡训练TB级推荐模型不是梦