Hugging Face 将 RWKV 架构集成进 transformers 库
Hugging Face 博客介绍 RWKV 架构已集成进 transformers 库,该架构结合 RNN 与 Transformer 的优势,由 Bo Peng 主导、Stability AI 捐赠训练 GPU。
推荐理由:RWKV 把 RNN 的推理效率与 Transformer 的并行训练结合,并已接入 transformers 库,读者可据此判断长上下文场景的选型空间。
把模型跑起来的工程实践:推理优化、显存与成本、Serving 架构与基础设施选型。
Hugging Face 博客介绍 RWKV 架构已集成进 transformers 库,该架构结合 RNN 与 Transformer 的优势,由 Bo Peng 主导、Stability AI 捐赠训练 GPU。
推荐理由:RWKV 把 RNN 的推理效率与 Transformer 的并行训练结合,并已接入 transformers 库,读者可据此判断长上下文场景的选型空间。
Hugging Face 发布辅助生成(assisted generation)方法,用一个比主模型小一个数量级、且共享同一 tokenizer 的助手模型先草拟候选 token,再由主模型一次前向验证,从而减少前向次数。
推荐理由:Hugging Face 官方给出辅助生成方法的原理与实测数据,读者可据此判断它是否适合自己现有的推理部署。
Hugging Face 博客介绍如何在免费版 Google Colab(13GB CPU 内存、15GB T4 显存)上用 diffusers 运行 DeepFloyd 的 IF 文生图模型。
推荐理由:原文给出在免费 Colab 上分阶段加载 IF 各组件并做 8bit 量化的完整步骤,可迁移到其他大模型的低显存部署。
Hugging Face Diffusers 自 0.5.1 版本起支持 Flax,可在 Colab、Kaggle 或 Google Cloud 的 TPU 上运行 Stable Diffusion 推理。
推荐理由:Hugging Face 官方给出在 TPU 上用 JAX/Flax 并行跑 Stable Diffusion 的完整步骤与实测耗时,可迁移到多设备推理。
Hugging Face 团队复盘了为 BLOOM 构建推理服务器的优化过程,在数周内实现延迟降低 5 倍、吞吐提升 50 倍。
推荐理由:Hugging Face 团队复盘 BLOOM 推理优化全过程,从 PP 到 TP、自定义 kernel 的取舍细节可供工程实践参考。
Hugging Face 介绍 Accelerate 如何借助 PyTorch 的 meta device、自动 device map 和分片 checkpoint,在显存与内存不足的消费级硬件上加载并运行超大语言模型。
推荐理由:原文拆解了 Accelerate 借助 PyTorch meta device 与分片加载运行超大模型的完整流程,可迁移到本地部署实践。
Hugging Face 发布教程,展示如何用 DeepSpeed-Inference、Accelerate 和 DeepSpeed ZeRO 为 176B 参数的 BLOOM 模型做推理,并给出在 8x80GB A100 上的实测数据。
推荐理由:文章给出 BLOOM 176B 在多种并行与量化方案下的实测吞吐和显存占用,可作为大模型推理部署的选型参考。
Hugging Face 将 LLM.int8() 8-bit 量化集成进 transformers 与 accelerate,可在不损失性能的前提下把大模型显存占用降到约四分之一。
推荐理由:Hugging Face 官方详解 LLM.int8() 量化原理与 transformers 集成细节,并给出实测数据与代码示例。
Hugging Face 官方博客介绍,在 transformers 中用 TensorFlow 做文本生成现在可以通过 jit_compile=True 启用 XLA 编译,速度最高提升 100 倍,部分场景比 PyTorch 快 9 倍。
推荐理由:Hugging Face 官方给出 TensorFlow 文本生成接入 XLA 的一行改法与 padding 技巧,可迁移到实际推理加速。
Hugging Face 发布开源库 Optimum,目标是成为 Transformer 生产性能的优化工具集,让模型在特定硬件上训练和推理达到最高效率。Optimum 与硬件伙伴合作,把稀疏化、量化等加速技术与目标硬件适配的复杂度抽象出来,首个合作案例是 Intel Neural Compressor,用于在 Intel Xeon CPU 上量化模型。
推荐理由:Hugging Face 官方发布 Optimum 开源库,读者可了解其如何把硬件加速与量化流程抽象成统一工具。
OpenAI 发布 Triton 1.0,这是一门开源的类 Python 编程语言,让没有 CUDA 经验的研究者也能编写高效的 GPU 代码,多数情况下能达到专家水平。
推荐理由:OpenAI 开源 Triton 1.0,让没有 CUDA 经验的研究者也能写出接近专家水平的 GPU 代码。
Hugging Face 发布开源库 Accelerate,让 PyTorch 用户在不改写训练循环的前提下使用分布式训练和混合精度。只需在标准训练脚本中加入约五行代码,Accelerate 就会自动完成设备放置、模型与优化器包装、数据加载器分片以及反向传播处理,并配套 accelerate config 与 accelerate launch 命令行工具。
推荐理由:原文给出五处代码改动即可让原生 PyTorch 脚本支持分布式与混合精度,可据此评估迁移成本。
Hugging Face 的 transformers v4.2.0 起为 Trainer 加入 DeepSpeed 和 FairScale 的 ZeRO 实验性支持,新增 --deepspeed 和 --sharded_ddp 命令行参数。
推荐理由:作者用 t5-large 与 t5-3b 的实测数据对比 FairScale 和 DeepSpeed 的显存与速度差异,可据此选择训练方案。