Hugging Face 提出辅助生成:低延迟文本生成的新方向
Hugging Face 发布辅助生成(assisted generation)解码方法,用一个至少小一个数量级的助手模型快速生成候选 token,再由主模型前向验证,在 Transformers 中通过 assistant_model 参数即可启用。
推荐理由:Hugging Face 官方详解辅助生成解码方法,给出可复现的延迟数据与 Transformers 调用方式。
把模型跑起来的工程实践:推理优化、显存与成本、Serving 架构与基础设施选型。
Hugging Face 发布辅助生成(assisted generation)解码方法,用一个至少小一个数量级的助手模型快速生成候选 token,再由主模型前向验证,在 Transformers 中通过 assistant_model 参数即可启用。
推荐理由:Hugging Face 官方详解辅助生成解码方法,给出可复现的延迟数据与 Transformers 调用方式。
Hugging Face 博客介绍如何在免费版 Google Colab(13GB CPU 内存、15GB T4 显存)上用 diffusers 运行 DeepFloyd 的 IF 文生图模型。
推荐理由:原文给出在免费 Colab 上分阶段加载 IF 各组件、8bit 量化 T5 并逐段释放显存的具体做法,可迁移到其他大模型推理。
Hugging Face Diffusers 自 0.5.1 版本起支持 Flax,可在 Colab、Kaggle 或 Google Cloud Platform 的 TPU 上实现快速推理。
推荐理由:Hugging Face 官方给出在 TPU 上用 JAX/Flax 跑 Stable Diffusion 的完整流程,含并行与编译耗时数据。
Hugging Face 团队复盘了为 BLOOM(176B 参数,bf16 下 352GB)构建推理服务器的优化过程,最终实现延迟降低 5 倍、吞吐提升 50 倍。
推荐理由:Hugging Face 团队复盘 BLOOM 推理优化全过程,从 PP 到 TP、自定义 kernel 的取舍细节对部署大模型有参考价值。
Hugging Face 介绍 Accelerate 如何借助 PyTorch 的 meta device、自动 device map 和分片 checkpoint,在显存和内存有限的设备上加载并推理超大模型。
推荐理由:原文拆解了 Accelerate 借助 PyTorch meta device 与分片加载在有限显存下跑大模型的完整流程,方法可直接迁移。
Hugging Face 发布教程,展示如何用 DeepSpeed 和 Accelerate 加速 176B 参数的 BLOOM 模型推理。
推荐理由:文章给出 BLOOM 176B 在多种并行与量化方案下的实测吞吐和显存占用,可作为大模型推理部署的选型参考。
Hugging Face 发布开源库 Optimum,目标是简化 Transformers 在特定硬件上的训练与推理性能优化,首个合作方为 Intel。
推荐理由:Hugging Face 官方发布 Optimum 开源库,读者可了解其与 Intel 合作在特定硬件上做模型量化的思路。
OpenAI 发布 Triton 1.0,这是一门开源的类 Python 编程语言,让没有 CUDA 经验的研究者也能编写高效的 GPU 代码,多数情况下能达到专家水平。
推荐理由:OpenAI 开源 Triton 1.0,让没有 CUDA 经验的研究者也能写出接近专家水平的 GPU 代码。
Gradio 2.0 发布,可用一行代码为 Hugging Face 模型加载 GUI,默认调用 Hugging Face 托管的 Inference API,也可本地运行 transformers。该版本支持把多个模型并联对比或串联组合,例如用 3 行代码搭建翻译并摘要芬兰语新闻的应用,安装方式为 pip install gradio。
推荐理由:原文给出 Gradio 2.0 一行代码加载 Hugging Face 模型并串联、并联组合的方式,读者可据此判断搭建模型演示的成本变化。
Hugging Face 发布 Accelerate 库,面向希望完全掌控训练循环、又不愿编写分布式训练和混合精度样板代码的 PyTorch 用户。只需在标准训练脚本中加入约五行代码,即可在单机多卡、多节点、TPU 等分布式环境以及有无混合精度的情况下运行,并自动处理设备放置。
推荐理由:官方给出五处代码改动即可切换分布式与混合精度的具体做法,便于评估对现有 PyTorch 训练脚本的改造成本。
Hugging Face 的 transformers v4.2.0 起通过 --sharded_ddp 和 --deepspeed 两个 Trainer 参数实验性支持 FairScale 与 DeepSpeed 的 ZeRO 功能。
推荐理由:作者用 t5-large 与 t5-3b 实测对比 FairScale 与 DeepSpeed 的显存与速度差异,并给出可直接复用的 Trainer 参数。
OpenAI 发布针对块稀疏权重神经网络的高度优化 GPU kernel,按所选稀疏度可比 cuBLAS 或 cuSPARSE 快数个数量级。OpenAI 表示已用这些 kernel 在文本情感分析和文本、图像生成建模上取得当时的最优结果。
推荐理由:OpenAI 公开面向块稀疏权重网络的 GPU kernel,并给出相对 cuBLAS 与 cuSPARSE 的加速幅度和落地任务。