训练大型神经网络的技术
大型神经网络是近期许多 AI 进展的核心,但其训练是一项困难的工程与研究挑战,需要协调一整个 GPU 集群来完成单次同步计算。
大型神经网络是近期许多 AI 进展的核心,但其训练是一项困难的工程与研究挑战,需要协调一整个 GPU 集群来完成单次同步计算。
Hugging Face 博客发布《The Annotated Diffusion Model》,基于 Ho 等人 2020 年的 DDPM 论文,用 PyTorch 逐步实现去噪扩散概率模型。
推荐理由:以 PyTorch 逐步实现 DDPM 并附完整代码,适合想从原理到代码理解扩散模型的读者。
Hugging Face 深度强化学习课程第三单元讲解 Deep Q-Learning,用神经网络替代 Q-table 来近似 Q 值,解决 Space Invaders 等 Atari 环境状态空间过大的问题。输入为 4 帧堆叠、缩放至 84x84 的灰度画面,经三层卷积和全连接层输出各动作 Q 值,并借助 RL-Zoo 与 Stable-Baselines 训练智能体。
Hugging Face 深度强化学习课程第二单元第二部分讲解 Q-Learning,并从头实现首个 RL 智能体。Q-Learning 是一种 off-policy、基于价值的方法,用 TD 方式训练动作价值函数,其内部维护一张 Q-table 记录每个状态-动作对的价值。
Hugging Face 深度强化学习课程更新第二单元第一部分,讲解基于价值的方法,对比蒙特卡洛与时序差分学习,并区分状态价值函数与动作价值函数。该部分为后续学习 Q-Learning 及深度 Q-Learning(unit 3)打基础,第二部分将实现首个 Q-Learning 智能体,在 Frozen-Lake-v1 和自动驾驶出租车环境中训练。
Hugging Face 推出免费深度强化学习课程,第一单元讲解深度强化学习基础,涵盖强化学习框架、马尔可夫性质、动作空间、奖励折扣与探索/利用权衡等概念。课程使用 Stable Baselines3、RL Baselines3 Zoo 和 RLlib 等库,并让学员训练首个登月着陆器智能体并上传至 Hugging Face Hub。
Hugging Face 展示了如何用 Accelerate 库无需改代码即可调用 PyTorch 的 FullyShardedDataParallel(FSDP)训练大模型。
HuggingFace AutoTrain 与数据标注平台 Kili 可组合成一套主动学习流水线,用于文本分类。
Hugging Face 与 Habana Labs 合作,将 Gaudi 加速器的性价比优势带入 Transformers,其训练机器学习模型的性价比相比最新 GPU 版 Amazon EC2 实例最高提升 40%。
Hugging Face 发布博客,演示如何用其生态工具搭建客户服务场景的文本分类系统,将客户消息按满意度分为 very unsatisfied 到 very satisfied 五类,以优先回复最不满意的客户。文章以 Amazon reviews multi 数据集为例,说明如何按任务类型筛选数据集并评估质量与规模,并建议用内部数据训练模型。
Hugging Face Hub 新增 emissions_threshold 参数,可按训练碳排放量筛选模型,例如上限 100 克可筛出 191 个模型,下限 500 克则筛出 10 个。transformers 集成 codecarbon,训练时自动记录排放数据并生成 emissions.csv,方便写入模型卡。
Hugging Face 的 Transformers 库有意不遵循 DRY 原则,转而采用"单一模型文件策略",即模型前向传播所需的全部代码只放在一个模型文件中,注意力机制代码因此在不同模型文件里被复制了 50 多次。官方给出的理由包括:该库由开源社区共建、建模代码本身就是产品、机器学习领域演进极快,以及模型发布后很少被改动。
Hugging Face 发布教程,演示如何用自定义数据集微调 SegFormer 语义分割模型,并以披萨配送机器人识别 sidewalk 为例。
Hugging Face 发布端到端教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。
Hugging Face 的 🤗 datasets 库新增图像特征类型,可结合 faiss 索引实现图像相似度搜索。文章以英国图书馆数字化书籍插图数据集为例,演示用 ImageFolder 加载器直接读取图像数据集,并配合 sentence_transformers 与 faiss 搭建图像搜索应用。
Hugging Face 为 🤗 Transformers 的 model.generate() 新增约束束搜索(constrained beam search)功能,通过 force_words_ids 参数强制生成结果包含指定词。
BERT 是 Google AI Language 研究人员于 2018 年开发的 NLP 模型,全称 Bidirectional Encoder Representations from Transformers,可解决 11 种以上常见语言任务。
Hugging Face 发布教程,演示如何用 🤗 datasets 加载 beans 图像分类数据集,并借助 🤗 transformers 微调预训练 ViT 模型。教程使用 google/vit-base-patch16-224-in21k 及其配套 ViTImageProcessor,将图像切分为 patch 并嵌入为 token 序列后送入模型训练。
Hugging Face Hub 上已有超过 215 个情感分析模型,配合 transformers 的 pipeline 类,5 行 Python 代码即可完成情感分析。Hub 共收录超 27000 个模型,覆盖约 28 种语言,并提供 Colab notebook 供用户用自己的数据测试。
Hugging Face 博客介绍如何利用 Wav2Vec2 的 CTC 结构,在 🤗 Transformers 中对任意长音频做语音识别。
推荐理由:原文给出带 stride 的分块推理方法,读者可据此在长音频和实时场景中复用 Wav2Vec2。
🤗 Transformers 现已集成 Kensho Technologies 的 pyctcdecode 库,可将 n-gram 语言模型与微调后的 Wav2Vec2 检查点结合用于语音识别解码。
Hugging Face 发布教程,介绍如何用 Amazon SageMaker 和 Hugging Face Inference Toolkit 部署 EleutherAI 的 GPT-J 6B 模型做实时推理。
Hugging Face 的 AutoNLP 与 Explosion 的标注工具 Prodigy 可组合成主动学习流水线:用 Prodigy 对 BBC News 数据集做 NER 标注,仅约 20 条样本即可用 AutoNLP 训练模型。
Hugging Face 发布教程,介绍如何从零训练 GPT-2 large(1.5B 参数)代码生成模型 CodeParrot,可自动补全 Python 代码。
Hugging Face 与 Graphcore 合作推出开源库 Optimum,用于降低 Transformer 模型在多种硬件上的预测延迟,首个 IPU 优化模型为 BERT。
Hugging Face 博客展示了如何在 Intel Xeon Scalable(Ice Lake)CPU 集群上加速 PyTorch 分布式微调:借助 Intel extension for PyTorch 和 oneCCL 通信库,在 MRPC 数据集上微调 BERT 模型,从单机扩展到 2 台、4 台服务器并测量加速比。
Hugging Face 发布教程,演示如何用 🤗 Transformers 将预训练检查点 Wav2Vec2-XLS-R-300M 微调用于低资源语音识别,示例数据集为 Common Voice 土耳其语,仅约 4 小时验证训练数据。
Hugging Face 发布博客第二部分,介绍如何借助 Intel oneAPI 软件栈在现代 Xeon CPU 上优化类 BERT 模型推理。Intel Ice Lake 代 Xeon 在多种 NLP 任务上推理速度最高比上代 Cascade Lake 快 75%,依托 AVX512、VNNI 指令及 oneMKL、oneDNN、OpenMP、oneTBB 等库。
Hugging Face 课程第二部分将于 11 月 15 日发布,聚焦 token 分类、语言建模、翻译、摘要和问答等 NLP 任务,并深入讲解 Datasets 与 Tokenizers。配套社区活动包含两天讲座和团队项目,AWS 通过 Amazon SageMaker 提供免费算力,完成项目者可获结业证书。
Hugging Face 在社区周期间用 10 亿句对训练出 SOTA 句嵌入模型,硬件为 7 块 TPU v3-8,并获得 Google Flax、JAX 与 Cloud 团队指导。训练采用批内负样本的对比学习目标(InfoNCE/NTXentLoss),通过增大 batch size、引入 hard negatives 和跨数据集组批提升效果。模型与数据集已在模型卡中公开。
一个跨 12 个时区的团队用 RSICD、UCM 和 Sydney 三个遥感数据集微调了 OpenAI 的 CLIP,使其能按文本描述检索卫星图像。训练采用对比学习,并用 Torchvision 图像增强与 Marian MT 回译文本增强抑制过拟合。模型、项目页与 demo 均已公开,可用于以文本查询大规模卫星图像库。
Gradio 与 Hugging Face Hub 集成,只需定义 Interface 并调用 .launch() 即可演示模型,底层调用 Inference API,支持 Transformers、spaCy、SpeechBrain、Asteroid 及 image-to-text、speech-to-text、text-to-speech 等模型类型。
Hugging Face 发布博客,介绍如何用 Streamlit 在 Hugging Face Spaces 上托管模型和数据集并部署 Streamlit 应用。
Hugging Face 发文介绍如何用 EleutherAI 的 GPT-Neo 配合 🤗 Accelerated Inference API 实现少样本学习预测。
Hugging Face 发布博客第一部分,介绍在 CPU 上扩展 BERT 推理的硬件优化方法,测试基于 AWS c5.metal 的 Intel Xeon Platinum 8275(48 核/96 线程),使用 transformers 4.5.0、PyTorch 1.8.1 与 TensorFlow 2.4.0。
Hugging Face 与 Amazon SageMaker 合作推出优化版 Deep Learning Containers,配合 SageMaker Python SDK 中的 HuggingFace estimator,一行代码即可启动训练。
Hugging Face 发文详解 BigBird 的块稀疏注意力机制,该模型已集成进 🤗Transformers。BigBird 用块稀疏注意力近似 BERT 的全局注意力,可处理长达 4096 的序列,计算成本远低于 BERT,并在长文档摘要、长上下文问答等任务上取得 SOTA。其注意力由滑动注意力、全局 token 和随机 token 三部分组成。
社区成员 Maxence Dominici 分享了在 Google Cloud 上部署 transformers 情感分析 pipeline 的过程,最终方案采用 Cloud Run 加 Docker 镜像,模型为 DistilBERT base uncased finetuned SST-2,用 PyTorch 加载。
Hugging Face 发布教程,讲解如何用 🤗 Transformers 将 Wav2Vec2 预训练检查点微调到任意英语 ASR 数据集。Wav2Vec2 于 2020 年 9 月发布,基于 50,000 小时以上无标注语音预训练,仅用 10 分钟标注数据即可在 LibriSpeech 干净测试集上取得低于 5% 的 WER。
Hugging Face 工程师分享构建和调试神经网络的思考流程:先放下机器学习、专注分析数据,再从逻辑回归、word2vec、fastText 等简单基线起步,并敢于拆开那些"5 行代码"模板看内部实现。作者建议实现完成后先尝试过拟合 16 个样本的小批量数据,若无法达到 0 loss,很可能实现有误,而非模型表达能力不足。