Hugging Face 的 TensorFlow 哲学
Hugging Face 阐述了其 transformers 库在 TensorFlow 上的设计理念:所有 TensorFlow 模型都是 Keras Model 对象,所有层都是 Keras Layer 对象,用户可直接调用 fit()、compile() 和 predict()。库通过 TFAutoModel 等类一行代码加载预训练模型,并配合 AutoTokenizer 完成匹配的预处理。
Hugging Face 阐述了其 transformers 库在 TensorFlow 上的设计理念:所有 TensorFlow 模型都是 Keras Model 对象,所有层都是 Keras Layer 对象,用户可直接调用 fit()、compile() 和 predict()。库通过 TFAutoModel 等类一行代码加载预训练模型,并配合 AutoTokenizer 完成匹配的预处理。
Hugging Face 发布教程,讲解如何用 Docker 和 Kubernetes 将上一篇文章中本地部署的 Vision Transformer(ViT)模型扩展为可服务多用户的线上部署。
Hugging Face 发布 Private Hub(PH),为机器学习全生命周期提供统一工具,支持以安全合规的方式加速从研究到生产的各环节。PH 基于拥有 60K+ 模型、6K 数据集和 6K 演示应用的 Hugging Face Hub,通过 Git 仓库、组织账户和权限管理实现团队内部模型、数据集与 Spaces 的共享协作。
Hugging Face 的 transformers 库在 TensorFlow 下现可用 XLA 编译文本生成,速度最高提升 100 倍,甚至快于 PyTorch。该功能需 transformers >= 4.21.0,示例基于 GPT-2 展示采样、贪心解码与 Beam Search 等生成方式。
Hugging Face 与外部贡献者为 Transformers 加入了 Vision Transformer、Masked Autoencoders、RegNet、ConvNeXt 等 TensorFlow 视觉模型,并演示如何用 TensorFlow Serving 在本地部署 ViT 图像分类模型,将其暴露为 REST 或 gRPC 端点。
Hugging Face 披露了 176B 参数多语言模型 BLOOM 的训练技术细节,该模型基于 Megatron-DeepSpeed 框架、采用 3D 并行技术,在 384 块 80GB A100 GPU 上训练了约 3.5 个月。训练数据为 59 种语言、350B token,模型架构类似 GPT3 并做了改进,词表规模 250,680。
Hugging Face 展示了用 Accelerate 库调用 DeepSpeed ZeRO 加速大模型训练的方法,无需改动代码即可启用 ZeRO Stage-2。
Hugging Face 博客介绍了三种将 Transformers 模型转为 ONNX 的方式:底层 torch.onnx、中层 transformers.onnx 和高级 Optimum。
Intel 正式加入 Hugging Face 硬件合作伙伴计划,双方将基于开源库 Optimum 合作构建面向 Transformer 的硬件加速方案,覆盖训练、微调和推理。
大型神经网络是近期许多 AI 进展的核心,但训练它们是一项艰巨的工程与研究挑战,需要协调一整个 GPU 集群来完成单次同步计算。
Cohere、OpenAI 和 AI21 Labs 共同制定了一套初步的大语言模型最佳实践,适用于任何开发或部署大语言模型的组织。
Graphcore 与 Hugging Face 在开源优化库 Optimum 中新增一批适配 IPU 的 Transformer 模型,可访问模型总数达到 10 个,覆盖 NLP、语音和计算机视觉,均附带 IPU 配置文件及预训练、微调权重。新增模型包括 ViT、GPT-2、RoBERTa、DeBERTa、BART、LXMERT、T5、HuBERT 和 Wav2Vec2,此前仅有 BERT。
Hugging Face 开源库 Optimum 发布 1.2 版本,新增对 Transformers pipelines 的推理支持,首批接入 ONNX Runtime,用户可将 AutoModelForXxx 直接替换为对应的 ORTModelForXxx 类。
fastai 现已接入 Hugging Face Hub,开发者用一行 Python 即可将 fastai Learner 上传至 Hub 分享。
Hugging Face 介绍如何通过 Accelerate 库无需改代码即可使用 PyTorch FullyShardedDataParallel(FSDP)训练大模型。
Hugging Face 发布教程,演示如何在 AWS EC2 DL1 实例(搭载 8 颗 Habana Gaudi 处理器)上微调 BERT 模型。使用 bert-large-uncased-whole-word-masking 在 GLUE 的 MRPC 任务上训练 3 个 epoch,耗时 2 分 12 秒,F1 达 0.8968。
Hugging Face 机器学习工程师 Lewis Tunstall 在播客中介绍了自己从 2018 年使用 pytorch-pretrained-bert 到合著《NLP with Transformers》的经历,并谈到在 transformers 库中推动 ONNX 格式导出,让模型只需一行代码即可转换,从而获得更低延迟和更高吞吐。
Hugging Face 的 Transformers 库有意不遵循 DRY 原则,转而采用"单模型文件策略",即模型前向传播所需的全部代码只放在一个 model 文件中,注意力机制代码因此被复制 50 多次。官方给出的理由包括:库由开源社区共建、建模代码本身就是产品、机器学习领域演进极快、模型发布后基本静态不变。
Hugging Face 发布端到端教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。
Hugging Face 公布 Infinity 在第三代 Intel Xeon 可扩展处理器(Ice Lake)上的端到端推理基准:优化后的 DistilBERT 序列分类容器相比 Cascade Lake 实例延迟与吞吐最高提升 34%,相比原生 Transformers 最高提升 800%。
Hugging Face 发布教程,介绍如何用 Amazon SageMaker 和 Hugging Face Inference Toolkit 部署 EleutherAI 的 GPT-J 6B 进行实时推理,可在 NVIDIA T4 GPU 实例(约 500 美元/月)上运行。
OpenAI 为 GPT-3 推出微调功能,开发者用一条命令即可针对自己的应用定制模型。该功能面向应用场景的个性化需求,降低了定制 GPT-3 的操作门槛。
Hugging Face 与 Graphcore 合作推出 Optimum Graphcore,让 Transformer 模型可在 Graphcore IPU 上加速,BERT 成为首个 IPU 优化模型。
在 Intel Xeon Scalable(Ice Lake)CPU 集群上分布式微调 BERT,可将训练时间与成本控制在合理范围。
Hugging Face 博客第二部分聚焦用 Intel 软件栈优化 CPU 上的类 BERT 模型推理,实测新一代 Ice Lake Xeon 在多种 NLP 任务上推理速度较上代 Cascade Lake 最高提升 75%。
微软和 NVIDIA 发布 Megatron-Turing NLG 530B,号称全球最大最强的生成式语言模型,但复现该实验的基础设施成本接近 1 亿美元。作者质疑这类超大模型趋势:单台 DGX A100 服务器售价 19.9 万美元、功耗最高 6.5 千瓦,而 2019 年马萨诸塞大学研究显示在 GPU 上训练 BERT 的碳排放约等于一次横跨美国的飞行。
Hugging Face 发文指出,Transformer 正从 NLP 扩展为通用 ML 架构,在语音、计算机视觉、点云乃至蛋白质结构预测上表现优异,Kaggle 调查显示其使用率逐年上升而 RNN、CNN 和梯度提升算法持续下滑。
Hugging Face 博客介绍如何用 Gradio 在 Spaces 中托管 ML 演示应用。Gradio 已集成 Hugging Face Hub,只需几行代码调用 gr.Interface.load() 即可通过 Inference API 演示 Hub 上的模型,支持 image-to-text、speech-to-text、text-to-speech 等类型。
Hugging Face 发布教程,介绍如何用 Streamlit 在 Hugging Face Spaces 上托管模型和数据集并搭建演示应用。
Hugging Face 发布开源库 Optimum,目标是简化 Transformer 模型在特定硬件上的训练与推理优化,首个合作方为 Intel。Optimum 与 Intel Neural Compressor 配合,可对 BERT 等模型做训练后量化、量化感知训练和动态量化,用于 Intel Xeon CPU 部署。
推荐理由:Hugging Face 官方发布 Optimum 开源库,读者可了解其与 Intel Neural Compressor 配合量化 Transformer 的路径。
Hugging Face 在 2021 AI Hardware Summit 上宣布启动 Hardware Partner Program,Graphcore 作为创始成员参与,双方将通过新开源库 Optimum 提供经 Hugging Face 认证的 IPU 优化模型,首批模型预计今年晚些时候上线。
OpenAI 发布 Triton 1.0,这是一门开源的类 Python 编程语言,让没有 CUDA 经验的研究者也能编写高效的 GPU 代码,多数情况下能达到专家水准。Triton 1.0 以开源形式发布。
推荐理由:OpenAI 官方发布 Triton 1.0,说明无 CUDA 经验的研究者也能写出接近专家水平的 GPU 代码。
Hugging Face Hub 现已集成 spaCy,用户可通过一条命令上传任意 spaCy pipeline 包,并自动生成模型卡和元数据。spaCy 官方组织已上线 60 多个来自 3.1 版本的最新模型,Inference API 开箱支持 NER,浏览器内即可交互试用。模型可直接通过 pip install 安装,并支持 HTTP 请求调用。
Hugging Face 发布面向 Amazon SageMaker 的 Inference DLC 与 SageMaker Hugging Face Inference Toolkit,只需在 HuggingFaceModel 后加一行 .deploy() 即可部署模型,也可直接从 Model Hub 选取 10,000+ 公开模型部署。
Hugging Face Hub 与 Sentence Transformers 达成集成,随 Sentence Transformers v2 发布,Hub 上已有超 90 个预训练模型、覆盖 100 多种语言。
Gradio 2.0 发布,可用一行代码为几乎任意 Hugging Face 模型生成 GUI,默认调用 Hugging Face 托管的 Inference API,也可本地运行 transformers 计算。该版本支持并行加载多个模型做对比、串联多个模型构建复杂应用,例如用 3 行代码搭建翻译并摘要芬兰语新闻的应用。安装方式为 pip install gradio。
推荐理由:Gradio 2.0 把 Hugging Face 模型加载与界面搭建压缩到一行代码,读者可据此判断模型演示与组合应用的门槛变化。
Hugging Face 发布系列博客第一部分,讲解如何通过硬件优化在 CPU 上扩展 BERT 类模型推理。
Hugging Face 发布开源库 Accelerate,让原始 PyTorch 训练脚本无需重写即可在任意设备上运行。只需在标准训练脚本中加入约五行代码,即可支持单机或多机多 GPU、TPU 以及混合精度训练,并自动处理设备放置。
推荐理由:官方给出五处代码改动即可跑分布式与混合精度的对比,便于判断迁移成本。
Hugging Face 与 Amazon SageMaker 合作推出优化版 🤗 Transformers 深度学习容器,并在 SageMaker Python SDK 中新增 HuggingFace estimator,一行代码即可启动训练。
Hugging Face 与 Amazon 宣布战略合作,Hugging Face 将 AWS 作为首选云服务商,并推出 Hugging Face Deep Learning Containers(DLCs),让用户可在 Amazon SageMaker 中训练 Transformer 模型。