从 PyTorch DDP 到 Accelerate 再到 Trainer:轻松掌握分布式训练
Hugging Face 发布教程,演示如何通过三个递进抽象层级实现多 GPU 分布式训练:原生 PyTorch DDP(torch.distributed)、🤗 Accelerate 轻量封装,以及 🤗 Transformer 的 Trainer API。Accelerate 无需修改代码即可在单 GPU 和 TPU 上运行,Trainer 则抽象掉所有样板代码并支持多种设备和分布式场景。
Hugging Face 发布教程,演示如何通过三个递进抽象层级实现多 GPU 分布式训练:原生 PyTorch DDP(torch.distributed)、🤗 Accelerate 轻量封装,以及 🤗 Transformer 的 Trainer API。Accelerate 无需修改代码即可在单 GPU 和 TPU 上运行,Trainer 则抽象掉所有样板代码并支持多种设备和分布式场景。
Hugging Face 推出 Inference Endpoints,可将 Hub 上的模型一键部署到云端托管基础设施。该服务支持 Public、Protected、Private 三种访问级别,Private 模式通过 AWS PrivateLink 的 VPC Endpoint 接入,仅限指定 AWS 账户访问。
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 发布教程,讲解如何在 NVIDIA GPU 上用 Megatron-LM 训练 GPT2 语言模型,并转换到 Transformers 使用。
Hugging Face Spaces 可通过 3Dmol.js 与 Gradio 的 HTML 组件在浏览器中可视化蛋白质结构,用户输入 4 位 PDB 代码或上传 PDB 文件即可查看。
Hugging Face 展示了如何将 🤗 Transformers 中的 ViT B/16 模型部署到 Google Cloud 的 Vertex AI 平台,用比 Kubernetes 方案更少的代码实现同等扩展能力。
Hugging Face 发布教程,演示如何用 Optimum Graphcore 库在 Graphcore IPU 上微调预训练的 ViT 模型,并以 ChestX-ray14 数据集为例提供完整 notebook。
Hugging Face 阐述了其 transformers 库在 TensorFlow 上的设计哲学:所有 TensorFlow 模型都是 Keras Model 对象,所有层都是 Keras Layer 对象,用户可直接调用 fit()、compile() 和 predict()。库通过 TFAutoModel 等类一行代码加载预训练模型,并强调应保留 Keras 高层 API 而非绕开它。
Hugging Face 发布新库 Skops,支持将 scikit-learn 模型托管到 Hugging Face Hub,并可为模型创建 model card 进行文档化与协作。Skops 通过 hub_utils.init 生成含模型与环境配置的本地仓库,后端使用 joblib 加载模型,Card 类可自动填充超参数、模型结构图及推理组件所需元数据。
Hugging Face 发布教程,讲解如何用 Docker 和 Kubernetes 将上一篇文章中的 Vision Transformer(ViT)本地部署扩展为可服务多用户的集群部署。方案以 TensorFlow Serving 基础镜像容器化 SavedModel,并通过 Google Kubernetes Engine(GKE)管理集群,代码已在配套仓库开源。
Hugging Face 发布 Private Hub(PH),为机器学习全生命周期提供统一工具集,支持以安全合规的方式加速从研究到生产的各环节。PH 以 Hugging Face Hub 为核心,后者已托管超 60K 模型、6K 数据集和 6K ML 演示应用,模型覆盖 180 种语言、支持最多 25 个 ML 库。
Nyströmformer 通过 Nyström 方法近似标准自注意力,将时间和内存复杂度从 O(n²) 降至 O(n)。它不直接对 softmax 矩阵采样,而是从 query 和 key 中选取 landmark,用分段均值构造 Q̃、K̃,并据此构建三个矩阵完成近似。实验显示仅选 32 或 64 个 landmark 即可在 n=4096 或 8192 的长序列上取得有竞争力的性能。
Hugging Face 的 transformers 库在 TensorFlow 下现可通过 XLA 编译文本生成,速度最高提升 100 倍,甚至快于 PyTorch。该功能需 transformers >= 4.21.0,支持采样、贪心解码、Beam Search 及 temperature、max_new_tokens 等参数控制。
Hugging Face 与外部贡献者已在 Transformers 中加入多种 TensorFlow 视觉模型,包括 Vision Transformer、Masked Autoencoders、RegNet、ConvNeXt。
Hugging Face 披露了 176B 参数多语言模型 BLOOM 的训练技术细节,该模型基于 GPT3 架构,使用 Megatron-DeepSpeed 框架在 384 张 80GB A100 GPU 上训练,耗时约 3.5 个月。训练数据为 59 种语言、350B token,模型词表大小 250,680,采用 3D 并行(数据、张量、流水线并行)方案。
作者用 Sentence Transformers 和 Gradio Blocks 搭建了一个歌单生成器,将歌词按段落切分后生成嵌入向量,再对文本提示词做语义搜索来匹配歌曲。
Hugging Face 展示了用 Accelerate 库调用 DeepSpeed ZeRO 加速大模型训练的方法,无需改动代码即可启用 ZeRO Stage-2。
Hugging Face 介绍了将 Transformers 模型转为 ONNX 的三种方式:底层 torch.onnx、中层 transformers.onnx 和 Optimum 高层 API。
Intel 正式加入 Hugging Face 硬件合作伙伴计划,双方将基于开源库 Optimum 合作构建面向 Transformer 的硬件加速方案,覆盖训练、微调与推理。
Hugging Face 发布“机器学习负责人洞察”系列金融版,邀请来自 U.S. Bank、Royal Bank of Canada、Moody's Analytics 及前 Bloomberg AI 研究科学家的专家分享金融业 ML 落地经验。
大型神经网络是近期许多 AI 进展的核心,但训练它们是一项困难的工程与研究挑战,需要编排一组 GPU 集群来完成单次同步计算。
Cohere、OpenAI 和 AI21 Labs 共同制定了一套初步的大语言模型最佳实践,适用于任何开发或部署大语言模型的组织。
Graphcore 与 Hugging Face 扩展了开源库 Optimum 中的模型阵容,新增覆盖 NLP、语音和计算机视觉的 10 个 IPU 优化 Transformer 模型,均附带 IPU 配置文件和预训练、微调权重。
Sempre Health 借助 Hugging Face 专家加速计划部署了新的 NLP 流水线,用于自动分类并回复患者短信,上线数周后近 20% 的入站消息被自动处理。此前其基于规则的系统只能覆盖约 80% 的短信,Hugging Face 团队在标注、模型选型和方法上提供了指导,缩短了研发时间。
Hugging Face 开源库 Optimum 发布 1.2 版本,新增对 Transformers pipelines 的推理支持,首批接入 ONNX Runtime,用户可将 AutoModelForXxx 替换为对应的 ORTModelForXxx 类。
fastai 现已接入 Hugging Face Hub,开发者用一行 Python 的 push_to_hub_fastai 就能把 Learner 上传到 Hub,并通过 from_pretrained_fastai 加载他人模型。
Hugging Face 介绍如何用 Accelerate 库无需改动代码即可启用 PyTorch FullyShardedDataParallel(FSDP)训练大模型。
Hugging Face 与 Habana Labs 合作,在 Amazon EC2 DL1 实例的 Habana Gaudi 加速器上微调 BERT 模型,Gaudi 相比最新 GPU 版 EC2 实例训练性价比最高提升 40%。
Hugging Face 机器学习工程师 Lewis Tunstall 在访谈中介绍了他为 transformers 库开发的功能:将 PyTorch 模型导出为 ONNX 格式,只需一行代码即可完成转换,从而获得更低的延迟和更高的吞吐量。他还与 Leandro von Werra 合著了《NLP with Transformers》一书,并谈到大规模模型评估等话题。
Hugging Face 的 Transformers 库有意不遵循 DRY 原则,转而采用"单一模型文件策略":模型前向传播所需的全部代码只放在一个模型文件中,注意力机制代码在不同模型文件里被复制超过 50 次。官方给出的理由包括该库由开源社区共建、建模代码本身就是产品、机器学习领域演进极快,以及模型发布后基本静态不变。
Hugging Face 发布端到端教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。
Hugging Face 将 PyTorch 深度强化学习库 Stable-Baselines3 集成到 Hugging Face Hub,用户可通过 huggingface_sb3 库上传和加载已保存的智能体模型。
Hugging Face 公布 Infinity 在第三代 Intel Xeon 可扩展处理器(Ice Lake)上的端到端推理基准:优化后的 DistilBERT 序列分类容器相比 Ice Lake 上原生 Transformers 延迟与吞吐最高提升 800%,相比 Cascade Lake 实例提升最高 34%。
Hugging Face 发布教程,介绍如何用 Transformers 和 Amazon SageMaker 将 EleutherAI 的 GPT-J 6B 部署为实时推理端点。
OpenAI 为 GPT-3 推出微调功能,开发者只需一条命令即可针对自己的应用定制模型。该功能面向需要将 GPT-3 适配特定任务的开发者,具体可用方式与价格尚未在文中披露。
Hugging Face 与 Graphcore 合作推出 Optimum Graphcore,首个 IPU 优化模型为 BERT,开发者可借助 Hugging Face Transformers 在 IPU 上训练、微调和加速模型。
在 Intel Xeon Scalable CPU(Ice Lake 架构)集群上分布式微调 BERT 模型,可将 PyTorch 训练任务加速。演示在 MRPC 数据集(GLUE 基准任务之一,含 5,800 对句子)上微调 BERT,从单节点扩展到 2 节点、4 节点并测量加速比。