Accelerate 如何借助 PyTorch 运行超大模型
Hugging Face 官方详解 Accelerate 如何在普通硬件上加载并运行超大模型,示例可在免费 Colab 上运行 OPT-6.7B。
推荐理由:官方详解 Accelerate 借助 PyTorch meta device、分片加载与 hooks 实现超大模型推理的完整原理,方法可直接复用。
Hugging Face 开源社区动态:热门模型与数据集、排行榜变化与开源生态的晴雨表。
Hugging Face 官方详解 Accelerate 如何在普通硬件上加载并运行超大模型,示例可在免费 Colab 上运行 OPT-6.7B。
推荐理由:官方详解 Accelerate 借助 PyTorch meta device、分片加载与 hooks 实现超大模型推理的完整原理,方法可直接复用。
Hugging Face 联合 Intel Labs 和 UKP Lab 发布 SetFit,一个无需提示词的少样本文本分类框架。每类仅需 8 个标注样本即可在 Customer Reviews 数据集上媲美用全量 3k 样本微调的 RoBERTa Large;在 RAFT 基准上 355M 参数的 SetFit 超过 PET 和 GPT-3。
推荐理由:官方详解 SetFit 的原理、训练成本和 RAFT 实测数据,并附可复现的训练代码,方便直接上手做少样本分类。
Hugging Face 发布 diffusers 0.3,为 Stable Diffusion 新增图像到图像生成、Textual Inversion(3-5 张样本即可训练并分享概念,社区已贡献超 200 个概念)和实验性 inpainting 管线。
推荐理由:官方梳理 diffusers 0.3 的图生图、Textual Inversion、低显存优化等新能力,读者可以据此判断扩散模型工具链的可用性变化。
Hugging Face 官方博客发布教程,展示如何用 🧨 Diffusers 库运行 Stable Diffusion v1-4 文生图模型,模型由 CompVis、Stability AI 和 LAION 基于 LAION-5B 子集的 512x512 图像训练。
推荐理由:官方教程从StableDiffusionPipeline基础用法讲到自定义推理管线,读者可以按步骤复现文生图并理解潜在扩散的三个组件。
Hugging Face 与 BigScience 将 LLM.int8() 8-bit 量化集成进 transformers 和 accelerate,使 BLOOM-176B 等 176B 参数大模型的推理显存占用减半且性能不下降。
推荐理由:原文由集成团队讲解 LLM.int8() 的量化原理、零性能下降验证和 transformers 集成细节,读者可据此在有限显存上运行大模型。
Hugging Face 宣布 🤗 transformers 的 TensorFlow 文本生成支持 XLA 编译,部分场景提速超过 100 倍,多数情况下甚至快过 PyTorch 最高 9 倍。
推荐理由:官方详解 TensorFlow 文本生成用 XLA 加速的用法与坑,给出 padding 控制形状和一行代码启用的可复用方法。
BigScience 项目发布开源多语言大模型 BLOOM,1760 亿参数,可生成 46 种自然语言和 13 种编程语言的文本。训练历时 117 天,在法国 Jean Zay 超算上完成,涉及 70 多国 250 多个机构的 1000 多名研究者。
推荐理由:大语言模型开源和透明训练的代表性案例,说明了开放协作如何让百亿级参数模型走向可研究、可复用。
Hugging Face 发布教程,基于 Ho et al. 2020 的 DDPM 论文和 Phil Wang 的实现,用 PyTorch 逐步实现扩散模型。
推荐理由:逐行实现 Ho et al. 2020 的 DDPM,覆盖前向加噪、损失推导、U-Net 结构与采样训练全流程,便于动手理解扩散模型原理。
Hugging Face 宣布在 Hub 上线 pull requests 和 discussions 功能,所有模型、数据集和 Spaces 仓库的 Community 标签页均可用。任何社区成员都能参与讨论和贡献,PR 不使用 fork,而是把自定义 ref 分支直接存放在源仓库,整体比 GitHub 的 PR 和 Issues 更简化,面向 ML 仓库场景优化。
推荐理由:官方介绍 Hub 新增 pull requests 和 discussions 的用法与底层机制,读者可了解其与 GitHub PR 的差异及协作方式。
Hugging Face 发布 Gradio 3.0,这是 Gradio 库的全面重设计。新版本基于 Svelte 重建前端,页面加载更快、载荷更小,改进了 Dataframe 等组件并新增 Gallery、TabbedInterface;同时推出底层 Blocks API,支持自定义布局、多步数据流和根据用户输入改变组件属性或可见性。
推荐理由:官方介绍了 Gradio 3.0 的前端重设计和新 Blocks API 能力,想用 Python 构建自定义 ML 演示界面的读者可以了解能做什么。
Hugging Face 宣布完成 1 亿美元 C 轮融资,由 Lux Capital 领投,Sequoia、Coatue 等参投。平台已托管 10 万个预训练模型和 1 万个数据集,超过 1 万家公司在使用,团队过去 12 个月从 30 人扩至 120 多人,新资金将投入研究、开源产品和负责任的 AI 普及。
推荐理由:官方公告给出了融资规模、领投方与平台最新规模数据,可了解开源机器学习生态的资本动向。
Hugging Face 博客讲解如何利用 Wav2Vec2 的 CTC 架构特性,对任意长的音频文件乃至实时流做高质量语音识别。
推荐理由:原文解释如何利用 CTC 架构加重叠分块让 Wav2Vec2 处理任意长音频和实时推理,方法可直接用 pipeline 复现。
Hugging Face 宣布收购机器学习初创公司 Gradio,由 Gradio 创始人宣布。Gradio 于 2019 年由斯坦福博士生团队创立,旨在让工程师无需让非技术用户懂 Python 即可演示机器学习模型,至今已有超过 300,000 个 demo 用 Gradio 构建。
推荐理由:Gradio 创始人亲述收购缘起与产品定位,读者可以了解开源演示工具如何融入 Hugging Face 生态。
Hugging Face 发布教程,展示如何从零训练名为 CodeParrot 的 GPT-2 代码生成模型。
推荐理由:原文从数据清洗到训练和评测完整走一遍预训练流程,方法步骤可迁移到读者自己的代码模型训练。
Hugging Face 发布教程,讲解如何用 Gradio 集成和 Spaces 托管 Hub 模型的演示应用。定义 Interface 并调用 .launch() 即可运行演示,底层通过 Inference API 支持 Transformers、spaCy、SpeechBrain 等框架以及 image-to-text、speech-to-text 等模型类型。
推荐理由:官方教程给出几行代码即可在 Spaces 托管 Hub 模型演示的方法,含自定义模型部署和串联多模型的示例。
Hugging Face 联合 Yandex Research 等机构提出 DeDLOC 分布式协作训练方法,可自适应参与者的网络与硬件条件。该方法由 40 名志愿者协同预训练了孟加拉语模型 sahajBERT(约 18M 参数,基于 ALBERT),在 NER 上 F1 达 95.45、NCC 准确率 91.97,结果与数百块 V100 训练的 XLM-R-large 相当。
推荐理由:原文给出 DeDLOC 协作训练方法细节和 40 名志愿者预训练 sahajBERT 的实测结果,含下游任务对比数据,方法可复用。
Hugging Face 宣布 Sentence Transformers v2 集成到 Hub,提供超过 90 个预训练模型、覆盖 100 多种语言,几行代码即可加载使用。
推荐理由:官方介绍 Sentence Transformers v2 与 Hub 的集成方式,读者可了解加载、分享和调用嵌入模型的直接入口。
Hugging Face 发布开源库 Accelerate,用户只需在标准 PyTorch 训练脚本中添加约五行代码,即可在多 GPU、TPU、混合精度等任意分布式环境下运行,且保留对训练循环的完全控制。
推荐理由:原文给出在标准 PyTorch 脚本上加约五行代码即可迁移多 GPU、TPU 和混合精度的具体做法,可与手写 DistributedDataParallel 对比参考。
transformers v4.2.0 起在 Trainer 中实验性支持 DeepSpeed 和 FairScale 的 ZeRO 特性,分别通过 --deepspeed 和 --sharded_ddp 参数启用。
推荐理由:作者用 t5-large 和 t5-3b 的实测对比表展示 ZeRO 如何提升显存效率与训练速度,方法可直接在 transformers Trainer 中复用。