如何在 JAX / Flax 上运行 Stable Diffusion
Hugging Face Diffusers 自 0.5.1 版起支持 Flax,可在 Colab、Kaggle 或 Google Cloud 的 TPU 上快速推理 Stable Diffusion。
推荐理由:Hugging Face 官方给出在 TPU 上用 JAX/Flax 跑 Stable Diffusion 的完整步骤与并行原理,可迁移到多设备推理。
内容形态
拿来就能用的实操内容:提示词技巧、工作流搭建、工具用法与踩坑经验。
148 条精选近 30 天 26 条共收录 835 条
Hugging Face Diffusers 自 0.5.1 版起支持 Flax,可在 Colab、Kaggle 或 Google Cloud 的 TPU 上快速推理 Stable Diffusion。
推荐理由:Hugging Face 官方给出在 TPU 上用 JAX/Flax 跑 Stable Diffusion 的完整步骤与并行原理,可迁移到多设备推理。
Hugging Face 撰文解释 Accelerate 如何借助 PyTorch 在内存和显存不足的消费级硬件上加载并运行超大模型。它先用 meta device 创建空模型并计算 device map,再按分片逐步加载权重,把层分配到多张 GPU、CPU 内存乃至磁盘,最后通过 hooks 在每次前向传播前后搬运权重。
推荐理由:原文拆解了 Accelerate 借助 PyTorch meta device 与分片加载在有限显存下跑大模型的完整流程,可迁移到自己的推理部署。
Hugging Face 发布教程,介绍如何用 diffusers 库运行 Stable Diffusion,并解释其潜空间扩散模型的工作原理。
推荐理由:Hugging Face 官方给出 Stable Diffusion 在 diffusers 中的完整用法与原理拆解,可据此理解潜空间扩散的组件分工。
Hugging Face 将 LLM.int8() 8-bit 量化集成进 transformers 和 accelerate,使 BLOOM-176B 等大模型显存占用减半且推理性能几乎无损。
推荐理由:Hugging Face 官方详解 LLM.int8() 量化原理与 transformers 集成细节,可了解大模型显存减半的落地方式。
Hugging Face 博客发布《The Annotated Diffusion Model》,基于 Ho 等人 2020 年的 DDPM 论文和 Phil Wang 的实现,用 PyTorch 逐步实现去噪扩散概率模型。
推荐理由:以 PyTorch 逐步实现 DDPM 的完整教程,适合想从代码层面理解扩散模型原理的读者。
Hugging Face 发布教程,介绍如何从零训练名为 CodeParrot 的 GPT-2 代码生成模型,用于自动补全 Python 代码。作者从 Google BigQuery 的 GitHub dump 中筛选出 180GB、2000 万个 Python 文件,去重并按 Codex 论文的清洗规则处理后得到 50GB 数据集 codeparrot-clean。
推荐理由:完整拆解了从数据清洗、tokenizer 训练到多卡训练循环的每一步,可迁移到自建代码生成模型的流程。
Hugging Face 的 transformers v4.2.0 为 Trainer 加入 DeepSpeed 和 FairScale 的 ZeRO 实验性支持,新增 --sharded_ddp 和 --deepspeed 命令行参数。
推荐理由:作者用 t5-large 与 t5-3b 实测对比 FairScale 和 DeepSpeed 的显存与耗时,可据此判断两种方案的取舍。
Hugging Face 发布教程,介绍用 transformers 库进行自回归语言生成的多种解码方法,包括贪心搜索、beam search 和采样。
推荐理由:Hugging Face 官方梳理贪心、beam search 与采样等解码策略,并给出 transformers 可直接运行的代码示例。