机器学习正成为软件工程:Hugging Face 谈 MLOps 与 Transformer 的普及
Hugging Face 认为机器学习应像普通 IT 负载一样被工程化管理,企业更应招聘懂 ML 的软件与 DevOps 工程师而非更多数据科学家。Kaggle 调查显示 75% 受访者使用云服务、超过 45% 使用企业级 ML 平台,Amazon SageMaker、Databricks 和 Azure ML Studio 排名前三。
Hugging Face 认为机器学习应像普通 IT 负载一样被工程化管理,企业更应招聘懂 ML 的软件与 DevOps 工程师而非更多数据科学家。Kaggle 调查显示 75% 受访者使用云服务、超过 45% 使用企业级 ML 平台,Amazon SageMaker、Databricks 和 Azure ML Studio 排名前三。
一个跨 12 个时区的团队在 Hugging Face Flax/JAX Community Week 期间,用 RSICD、UCM 和 Sydney 三个遥感数据集微调了 OpenAI 的 CLIP 模型,使其能用文本查询检索卫星图像。
Hugging Face 介绍了如何用 Streamlit 在 Hugging Face Spaces 上托管模型和数据集并部署应用,以复现 "Write with Transformer" 为例,用 text_area、sidebar slider、number_input 等组件接收 GPT-2、XLNet 推理所需的超参数。
Gradio 与 Hugging Face Hub 完成集成,只需定义 Interface(模型仓库 ID、描述、示例输入)并调用 .launch(),即可通过 Inference API 用几行代码跑通模型演示。
Hugging Face 回顾了 6 至 8 月的进展:Hub 公开模型仓库从 10,000 个增至超过 16,000 个,并推出 Spaces Beta,支持用 Gradio 和 Streamlit 免费部署 ML demo 应用。
Hugging Face 推出开源库 Optimum,旨在为 Transformers 提供生产性能优化工具包,与硬件合作伙伴(如 Intel)协作,让工程师在特定硬件上高效训练和运行模型。
Hugging Face 在 2021 AI Hardware Summit 上宣布启动 Hardware Partner Program,Graphcore 作为创始成员加入,双方将通过开源工具库 Optimum 提供针对 Graphcore IPU 优化的模型,首批 IPU 优化模型将于当年晚些时候上线。
Hugging Face 介绍新方法 DeDLOC,让志愿者通过互联网协作预训练语言模型,并用 40 名志愿者训练出孟加拉语模型 sahajBERT。
Hugging Face Hub 现已支持 spaCy,用户可通过一条命令上传 spaCy pipeline 并自动生成 model card,spaCy org 中已收录 60 多个来自 3.1 release 的官方模型。
Hugging Face 推出新的 Inference DLCs 与 SageMaker Hugging Face Inference Toolkit,只需一行代码即可将 Hugging Face Transformers 模型部署到 Amazon SageMaker,或从 Model Hub 的 10,000+ 公开模型中直接选择部署。
Hugging Face Hub 集成 Sentence Transformers 框架,随 Sentence Transformers v2 发布新增 feature-extraction 和 sentence similarity 两个 widget,并提供 Inference API 端点供程序化调用。
Hugging Face 介绍如何用 GPT-Neo 和 🤗 Accelerated Inference API 实现 Few-Shot Learning 预测,该 API 可托管运行 Model Hub 上 10,000+ 模型,相比 Transformers 默认部署最高提速 100x。
Gradio 2.0 让用户用 1 行代码即可加载并使用 Hugging Face Model Hub 上的几乎任何模型,生成带 GUI 的演示界面。默认调用 Hugging Face 托管的 Inference API,也可本地运行 transformers 计算。Gradio 还支持将多个模型并行对比或串联组合,用 3 行代码即可构建芬兰语新闻翻译加摘要的应用。
Hugging Face 发布系列博文第一部分,讲解如何在 CPU 上扩展 BERT 推理,重点覆盖硬件层面的优化。
Hugging Face 发布开源库 Accelerate,让 PyTorch 用户在保留自定义训练循环的前提下,只需向标准脚本加入五行代码即可在多 GPU、多节点、TPU 等分布式环境以及混合精度下运行。
Hugging Face 与 Amazon SageMaker 合作推出优化的 Deep Learning Containers,通过 SageMaker Python SDK 中的 HuggingFace estimator 可用一行代码启动训练。
Hugging Face 博客深入讲解了 BigBird 的 block sparse attention 实现原理,说明其如何用滑动窗口、全局 token 和随机 token 三种注意力模式近似 BERT 的全注意力,将序列长度扩展到 4096 且计算成本远低于 BERT。
Hugging Face 宣布与 Amazon 达成战略合作,选择 AWS 作为其首选云提供商,并推出新的 Hugging Face Deep Learning Containers(DLCs),让用户在 Amazon SageMaker 中更轻松地训练 Transformers 模型。
Hugging Face 教程详解如何用 🤗 Transformers 微调 Wav2Vec2 预训练模型完成英文 ASR,演示在仅含 5h 训练数据的 Timit 数据集上微调 "base" 尺寸 checkpoint,不使用语言模型、以 CTC 训练并用 WER 评估。
Hugging Face 读书会 2021 年 2 月主题聚焦长程注意力,总结了 Longformer、Compressive Transformer、Linformer、Performer 四篇论文的思路。Longformer 用窗口化/全局注意力把内存开销从 n² 降到 wn+gn,可直接替换标准 self-attention 并复用预训练 checkpoint 微调。
Hugging Face 博客给出构建与调试神经网络的实用建议:先放下机器学习、专注数据本身,再从最简单的 baseline(如基于 word2vec 或 fastText 的逻辑回归)起步建立参照。实现完成后应先用小批量样本(如 16 条)过拟合到 0-loss 来验证代码正确性,避免把 bug 误判为模型能力不足。这些经验源自 NLP 研究,也适用于其他机器学习领域。
Hugging Face Transformers 的 RAG 模型引入 Ray 实现分布式文档检索,单次检索调用较 torch.distributed 提速 2x。
Hugging Face 与 PyTorch / XLA 集成,让 PyTorch 用户在保持原有 Hugging Face Trainer 接口不变的情况下,在 Cloud TPU 上运行并扩展模型训练。
Hugging Face Transformers v4.2.0 将 BERT、RoBERTa、ELECTRA 和 MPNet 的 TensorFlow 模型计算速度提升至比 Google 官方实现快约 10%,且比 4.1.1 版本快一倍。
Hugging Face 博客介绍如何在 transformers v4.2.0 中通过新增的 --sharded_ddp 和 --deepspeed 参数使用 FairScale 与 DeepSpeed 的 ZeRO 功能。
Hugging Face 通过两阶段优化将 🤗 Accelerated Inference API 上的 Transformer 推理整体提速 100 倍。
Hugging Face 介绍如何用 BERT、GPT2 等预训练 checkpoint 热启动 encoder-decoder 模型,以跳过昂贵的预训练过程。
Stas Bekman 撰写客座博文,详细记录了如何把 Facebook FAIR 的 fairseq WMT19 翻译系统移植到 transformers,最终产出 FSMT 模型并合入 PR。
Hugging Face Transformers 3.1 版本与 Ray Tune 集成,通过 `trainer.hyperparameter_search` 几行代码即可调用 HyperBand、Bayesian Optimization、Population-Based Training 等算法做超参数搜索。
Hugging Face 博客详细讲解了 Transformer-based encoder-decoder 架构如何建模 sequence-to-sequence 问题,聚焦其数学模型与推理用法,并拆解 encoder 和 decoder 两部分,配合大量插图建立理论与 🤗Transformers 实际推理的联系。
Hugging Face 发布 pytorch_block_sparse 扩展库,基于 NVIDIA CUTLASS 实现块稀疏矩阵乘法,可作为 torch.nn.Linear 的直接替代,让神经网络更小更快。75% 稀疏度下速度约为稠密矩阵的 2 倍,内存占用降至 1/4;当前稀疏实现比 cuBLAS 优化的稠密版本慢约 2 倍,但已比 PyTorch 原生稀疏实现快一个数量级。
Hugging Face 深入解析了 Reformer 模型,它能用不到 8GB 内存一次处理多达 50 万 token,而 bert-base-uncased 只能处理 512 token。
Hugging Face 官方博客演示如何用 transformers 和 tokenizers 库从零训练一个 84M 参数(6 层、768 hidden size。