用 🤗 Transformers 微调 ViT 进行图像分类
Hugging Face 发布教程,演示如何用 🤗 datasets 加载 beans 图像分类数据集,并借助 🤗 transformers 微调预训练 ViT 模型。教程使用 google/vit-base-patch16-224-in21k 及其配套 ViTImageProcessor,将图像切分为 patch 并嵌入为 token 序列后送入模型训练。
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,很可能实现有误,而非模型表达能力不足。
Hugging Face Transformers 的 RAG 模型集成 Ray 实现分布式文档检索,每次检索调用相比 torch.distributed 提速 2 倍,并改善了 RAG 分布式微调的可扩展性。
Hugging Face 与 PyTorch/XLA 团队合作,让 Trainer 模块可直接在 Cloud TPU 上训练模型,用户保持原有 Hugging Face trainers 接口不变。
Hugging Face 在 Transformers v4.2.0 中优化了 TensorFlow 版 BERT、RoBERTa、ELECTRA 和 MPNet 的计算性能,在 GPU V100、序列长度 128 下,BERT 推理速度比 Google 官方实现快约 10%,比 4.1.1 版本快一倍。
OpenAI 已将 Kubernetes 集群扩展至 7,500 节点,为 GPT-3、CLIP 和 DALL·E 等大模型提供可扩展基础设施,同时支持 Scaling Laws for Neural Language Models 这类快速小规模迭代研究。
Hugging Face 的 transformers v4.2.0 起为 Trainer 加入 DeepSpeed 和 FairScale 的 ZeRO 实验性支持,新增 --deepspeed 和 --sharded_ddp 命令行参数。
推荐理由:作者用 t5-large 与 t5-3b 的实测数据对比 FairScale 和 DeepSpeed 的显存与速度差异,可据此选择训练方案。
Hugging Face 发布教程,介绍如何用 BERT、GPT2 等预训练检查点热启动编码器-解码器模型,跳过昂贵的预训练阶段。基于 Rothe 等人 2020 年的论文,该方法在多个序列到序列任务上以极低训练成本达到与 T5、Pegasus 等大型预训练模型相当的效果,并附有 🤗Transformers 的完整代码示例。
Hugging Face 发布博客,记录作者 Stas Bekman 在 Sam Shleifer 建议下,将 fairseq 的 WMT19 新闻翻译系统移植到 transformers 的全过程。
Hugging Face Transformers 在 3.1 版本中与 Ray Tune 集成,用户只需添加几行代码即可调用 HyperBand、Bayesian Optimization、Population-Based Training 等调参算法。
Hugging Face 发布博客,详解基于 Transformer 的编码器-解码器架构如何建模序列到序列问题,重点拆解编码器与解码器两部分及其推理用法。文章指出该架构由 Vaswani 等人提出,如今已是 NLP 领域事实上的标准,T5、Bart、Pegasus、ProphetNet、Marge 等预训练目标各异但架构基本未变。
Hugging Face 发布 PyTorch 扩展 pytorch_block_sparse,其 BlockSparseLinear 可直接替换 torch.nn.Linear,让语言模型更小更快。
Hugging Face 博客详解 Reformer 如何用不到 8GB 内存训练长度达 50 万 token 的序列,而 bert-base-uncased 的输入长度上限只有 512 token。
Hugging Face 发布博客,介绍用 transformers 库进行自回归语言生成的多种解码方法,包括贪心搜索、beam search 和采样。
推荐理由:系统梳理贪心、beam search 与采样等解码策略的差异,并给出 transformers 中可直接运行的参数配置。
Hugging Face 发布教程,演示如何用 transformers 和 tokenizers 库从零训练一个语言模型,并以世界语为例训练了 84M 参数(6 层、768 隐藏维度、12 注意力头)的 EsperBERTo。
推荐理由:以世界语为例完整演示从语料、分词器到预训练与下游微调的全流程,可迁移到其他低资源语言。
OpenAI 于 2 月 2 日举办了首届 Spinning Up 研讨会,这是其新教育计划的一部分。
OpenAI 发布 Spinning Up in Deep RL,一套面向任何人学习深度强化学习、成为熟练实践者的教育资源。该资源包含清晰的 RL 代码示例、教学练习、文档和教程。
OpenAI 发文探讨强化学习算法中一种出人意料的失效模式:奖励函数设定错误。当奖励函数被错误指定时,算法会以反直觉的方式崩溃。
OpenAI 指出深度学习是一门经验科学,团队基础设施的质量是进展的倍增器。如今的开源生态让任何人都能搭建出色的深度学习基础设施。