BLOOM 训练背后的技术:176B 参数模型如何用 384 张 A100 训成
Hugging Face 详解 176B 参数多语言模型 BLOOM 的训练技术:基于 Megatron-DeepSpeed 的 3D 并行方案,使用 384 张 80GB A100 GPU、350B token 的 46 种语言数据,训练耗时约 3.5 个月。模型架构接近 GPT3 并做了若干改进,词表规模 250,680,训练在法国 Jean Zay 超算上完成。
Hugging Face 详解 176B 参数多语言模型 BLOOM 的训练技术:基于 Megatron-DeepSpeed 的 3D 并行方案,使用 384 张 80GB A100 GPU、350B token 的 46 种语言数据,训练耗时约 3.5 个月。模型架构接近 GPT3 并做了若干改进,词表规模 250,680,训练在法国 Jean Zay 超算上完成。
作者用 Sentence Transformers 的语义搜索功能搭建了一个歌单生成器:将提示词编码为嵌入向量,在预生成的歌词嵌入中检索,再通过 Gradio Blocks 构建多步交互应用并托管在 Hugging Face Spaces。
Hugging Face 展示了如何用 Accelerate 库无需改代码即可启用 DeepSpeed ZeRO,在 2×24GB NVIDIA Titan RTX 上微调 900M 参数的 microsoft/deberta-v2-xlarge-mnli。
Hugging Face 推出 Evaluation on the Hub,由 AutoTrain 驱动,用户无需写代码即可在 Hub 上用任意数据集和指标评测模型。评测结果会以 PR 形式写入模型卡的元数据,并可在数据集页查看排行榜;官方已用该工具评测数百个模型并提交了对应 PR。工具支持为任务寻找最佳模型、在新数据集上跑基线、以及用多个相关数据集评测自己的模型三种场景。
推荐理由:Hugging Face 把模型评测做成 Hub 上的一键流程,读者可了解免代码评测与结果写入模型卡的做法。
Hugging Face 博客介绍了三种将 Transformers 模型转为 ONNX 的方式,从底层 torch.onnx、中层 transformers.onnx 到高层 Optimum,均以 distilbert-base-uncased-finetuned-sst-2-english 文本分类模型为例。
Intel 正式加入 Hugging Face 硬件合作伙伴计划,双方将基于开源库 Optimum 合作构建面向 Transformer 的硬件加速方案,覆盖训练、微调和推理。
大型神经网络是近期许多 AI 进展的核心,但其训练是一项困难的工程与研究挑战,需要编排一组 GPU 集群完成单次同步计算。
Cohere、OpenAI 和 AI21 Labs 共同制定了一套初步的大语言模型最佳实践,适用于任何开发或部署大语言模型的组织。
Graphcore 与 Hugging Face 在开源库 Optimum 中新增一批针对 Graphcore IPU 优化的 Transformer 模型,可用的模型从 BERT 扩展到 10 个,覆盖 NLP、语音和计算机视觉。
OpenAI Codex 现已通过 OpenAI API 为 70 款不同应用提供支持,覆盖多种使用场景。
Sempre Health 借助 Hugging Face 的 Expert Acceleration Program 搭建了自动分类并回复患者短信的 NLP 流水线,上线数周后近 20% 的入站消息由系统自动处理。
Gradio 发布 3.0 版本,对库进行彻底重设计,前端改用 Svelte 等现代技术,页面加载更快、体积更小,并新增 Gallery 组件和 TabbedInterface 类。
推荐理由:Gradio 3.0 重写前端并推出 Blocks 低层 API,读者可了解它如何让 Python 直接搭建复杂自定义 Web 应用。
Hugging Face 发布 Optimum 1.2,新增对 Transformers pipelines 的推理支持,首批接入 ONNX Runtime。用户可将 AutoModelForXxx 替换为对应的 ORTModelForXxx,并配合 ORTQuantizer、ORTOptimizer 完成量化与优化。
fastai 现已集成 Hugging Face Hub,用户只需一行 Python 代码即可上传和共享模型。使用 `push_to_hub_fastai` 上传 Learner,再用 `from_pretrained_fastai` 加载,需安装 fastai>=2.4、fastcore>=1.3.27 和 toml。上传后自动生成模型卡,并支持基于 git 的版本控制。
Hugging Face 介绍如何用 Accelerate 库无需改代码即可调用 PyTorch FullyShardedDataParallel(FSDP)训练大模型。
Hugging Face 发布博客,演示如何用其生态工具搭建客户服务情感分类系统,自动筛选最不满意的客户消息。
Hugging Face Hub 新增 emissions_threshold 参数,可按训练碳排放量筛选模型,例如筛选出 191 个排放不超过 100 克的模型。transformers 集成 codecarbon,训练时自动记录排放数据并生成 emissions.csv,方便写入模型卡。
Hugging Face 机器学习工程师 Lewis Tunstall 在播客中介绍了与 Leandro von Werra、Thom Wolf 合著的《NLP with Transformers》,并讲述自己在 transformers 库中推动 ONNX 导出功能,让用户只需一行代码即可将 PyTorch 模型转换格式,从而获得更低延迟和更高吞吐。
Habana Labs 与 Hugging Face 宣布合作,将 Habana 的 SynapseAI 软件套件与 Hugging Face 的 Optimum 开源库集成,开发者只需几行代码即可在 Habana Gaudi 处理器上加速 Transformer 训练。
Hugging Face 的 Transformers 库有意不遵循 DRY 原则,转而采用"单一模型文件策略",即模型前向传播所需的全部代码只放在一个 model 文件中,如 BERT 的 modeling_bert.py。原因是该库由开源社区共建、建模代码本身就是产品、机器学习领域演进极快且模型发布后基本静态不变,集中抽象反而会带来维护与命名难题。
Hugging Face 发布教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。
Hugging Face 博客介绍了如何利用 Wav2Vec2 的 CTC 架构特性,在 🤗 Transformers 中对任意长音频文件乃至实时语音进行高质量自动语音识别。
Hugging Face 将 PyTorch 深度强化学习库 Stable-Baselines3 集成到 Hugging Face Hub,用户可通过 huggingface_sb3 上传和加载已保存的智能体模型。
Hugging Face 公布 Infinity 在 Amazon EC2 C6i(Intel Ice Lake)实例上的端到端推理基准:优化后的 DistilBERT 序列分类容器相比 Ice Lake 上原生 Transformers 延迟与吞吐最高提升 800%,相比 Cascade Lake 实例最高提升 34%。
Hugging Face 发布教程,介绍如何用 Amazon SageMaker 和 Hugging Face Inference Toolkit 部署 EleutherAI 的 GPT-J 6B 模型,在 NVIDIA T4 GPU 实例(约 500 美元/月)上实现可扩展的实时推理。
OpenAI 为 GPT-3 推出微调功能,用户只需一条命令即可针对自己的应用定制模型。
Hugging Face 发布首个自定义深度强化学习环境 Snowball Fight 1vs1,基于 Unity ML-Agents 构建,玩家可与深度强化学习智能体对战投掷雪球,游戏托管在 Hugging Face Spaces 并可在线游玩。训练环境已开源发布在 Hugging Face Hub,后续将推出使用 MA-POCA 算法的 2vs2 协作版本及更多自定义环境。
Hugging Face 与 Graphcore 合作推出开源库 Optimum,让 Transformer 模型更易在多种硬件上降低预测延迟,首个 IPU 优化模型为 BERT。
在 Intel Xeon Scalable CPU(Ice Lake 架构)集群上,借助 Intel extension for PyTorch 和 oneCCL 通信库,可将 PyTorch 分布式微调任务加速。
Hugging Face 博客第二部分聚焦用 Intel 软件栈优化 CPU 上的 BERT 类模型推理,并给出 Ice Lake 代 Xeon 的性能实测。Ice Lake Xeon 在多种 NLP 任务上推理最高比上代 Cascade Lake 快 75%,依托 AVX512、VNNI 等指令及 oneAPI 下的 oneMKL、oneDNN、oneCCL 等库。
微软和 NVIDIA 发布 Megatron-Turing NLG 530B,号称全球最大最强的生成式语言模型,但训练需数百台 DGX A100 服务器、成本近 1 亿美元。作者质疑这类超大模型趋势:基准提升有限,却带来高昂成本、复杂度和碳足迹,并建议改用预训练模型、更小模型(如 DistilBERT 保留 97% 语言理解、体积小 40%、速度快 60%)和微调。
Hugging Face 发布博客,介绍如何用 Streamlit 在 Hugging Face Spaces 上托管模型与数据集并搭建演示应用。
Hugging Face 博客介绍如何用 Gradio 在 Spaces 中托管 ML 演示应用:通过 gr.Interface.load 调用 Hub 模型并借助 Inference API 推理,只需定义模型仓库 ID、描述和示例输入,调用 .launch() 即可运行。
Hugging Face 发布开源库 Optimum,目标是成为 Transformer 生产性能的优化工具包,让模型在特定硬件上训练和推理达到更高效率。Optimum 与硬件伙伴合作构建,首个案例是与 Intel 的 Neural Compressor 配合,演示如何为 Intel Xeon CPU 量化模型。
推荐理由:Hugging Face 官方开源 Optimum,读者可了解它如何把模型加速与硬件适配的复杂度封装起来。
Hugging Face 在 2021 AI Hardware Summit 上宣布启动硬件合作伙伴计划,Graphcore 作为创始成员参与,双方将合作为 Intelligence Processing Unit(IPU)优化 Transformer 模型。
OpenAI 发布 Triton 1.0,这是一门开源的类 Python 编程语言,让没有 CUDA 经验的研究者也能编写高效的 GPU 代码,多数情况下能达到专家水准。
推荐理由:OpenAI 开源 Triton 1.0,让没有 CUDA 经验的研究者也能写出接近专家水平的 GPU 代码。
Hugging Face Hub 现已支持托管和分享 spaCy 的 NLP 流水线,用户可通过单条命令上传任意 pipeline 包,并自动生成模型卡和元数据。
Hugging Face 发布面向 Amazon SageMaker 的 Inference DLC 与 Inference Toolkit,只需一行代码即可部署训练好的 Transformer 模型,或从 Model Hub 的 10,000+ 公开模型中任选一个部署。
Hugging Face Hub 与 Sentence Transformers 完成集成,随 Sentence Transformers v2 发布,Hub 上已有超过 90 个预训练模型、覆盖 100 多种语言。
Gradio 2.0 发布,只需 1 行代码即可为几乎任意 Hugging Face 模型加载 GUI,默认调用 Hugging Face 托管的 Inference API,也可本地运行 transformers。该版本支持并行加载多个模型进行对比,或将模型串联组合,例如用 3 行代码搭建翻译并摘要芬兰语新闻的应用。