用 Intel Sapphire Rapids 加速 PyTorch Transformers:推理篇
Hugging Face 联合 Intel 测试了 PyTorch Transformers 在第四代 Xeon(Sapphire Rapids)上的推理性能,对比上一代 Ice Lake,在 distilbert-base-uncased、bert-base-uncased、roberta-base 三个模型上测量了 16 与 128 token 句子的单条及批量推理延迟。
Hugging Face 联合 Intel 测试了 PyTorch Transformers 在第四代 Xeon(Sapphire Rapids)上的推理性能,对比上一代 Ice Lake,在 distilbert-base-uncased、bert-base-uncased、roberta-base 三个模型上测量了 16 与 128 token 句子的单条及批量推理延迟。
Hugging Face 博客梳理了让对话智能体变得有用的关键技术,包括指令微调(IFT)、监督微调(SFT)、思维链(CoT)和基于人类反馈的强化学习(RLHF)。
推荐理由:梳理 IFT、SFT、CoT 与 RLHF 在对话智能体中的作用,并对比多家早期聊天机器人的训练与评测差异。
Hugging Face 发布图解 RLHF 的教程文章,把训练流程拆成预训练语言模型、收集偏好数据训练奖励模型、用 PPO 微调语言模型三个核心步骤。文章指出奖励模型输出标量奖励,训练时用 KL 散度惩罚约束策略偏离初始模型,并介绍了 TRL、TRLX、RL4LMs 等开源 RLHF 工具。文中还提到人类标注成本高、标注者意见不一致等局限,以及离线 RL、ILQL 等尚未充分探索的方向。
推荐理由:把 RLHF 拆成预训练、奖励模型、PPO 微调三步,并梳理了开源实现与已知局限,适合作为入门框架参考。
Hugging Face 发布教程,演示如何用 Concrete-ML 库在完全同态加密(FHE)环境下构建情感分析模型,无需任何密码学背景。流程包括用 BERT 提取文本隐藏表示、训练 XGBoost 分类器,再将预测转为加密数据上的预测,并通过客户端/服务器协议部署到云端,最后在 Hugging Face Spaces 提供完整演示。
Hugging Face 在 transformers 4.24.0 中加入对比搜索(Contrastive Search)解码方法,PyTorch 和 TensorFlow 均可用。
Hugging Face 分享了 BLOOM(176B 参数、bf16 下 352GB)推理服务的优化过程,数周内将延迟降低 5 倍、吞吐提升 50 倍。团队先用 Megatron-Deepspeed 训练,再由 Younes 耗时近一个月、200 次 commit 移植到 transformers,并借助 accelerate 的 device_map="auto" 做流水线并行分片。
Hugging Face 发布教程,展示如何用 DeepSpeed-Inference、Accelerate 和 DeepSpeed ZeRO 为 176B 参数的 BLOOM 做推理,并给出 8x80GB A100 上的吞吐基准。
Nyströmformer 通过 Nyström 方法近似标准自注意力,将时间和内存复杂度从 O(n²) 降至 O(n)。它从 query 和 key 中用分段均值构造 landmark,仅需 32 或 64 个 landmark 即可在 n=4096 或 8192 的长序列上取得与标准自注意力及其他高效注意力机制相当的性能。该模型的原始实现与 HuggingFace 实现均已公开。
Hugging Face 的 transformers 库现在可用 XLA 编译 TensorFlow 文本生成,速度最高提升 100 倍,甚至快于 PyTorch。该功能需 transformers >= 4.21.0,支持 GPT-2 等模型的采样、贪心解码与 Beam Search,并可通过 temperature、max_new_tokens、num_beams 等参数控制输出。
Hugging Face 深度强化学习课程第 7 单元讲解 Advantage Actor Critic (A2C),一种结合基于策略与基于价值方法的混合架构,通过 Actor 控制智能体行为、Critic 评估动作好坏来降低 Reinforce 中蒙特卡洛采样带来的高方差。课程使用 Stable-Baselines3 在 PyBullet 机器人环境中训练双足步行者和蜘蛛两个智能体行走。
Hugging Face 发布 Twitter 情感分析入门指南,面向开发者和非开发者分别给出实现路径。开发者可用 Tweepy 抓取推文、通过 Inference API 几行代码完成情感分类,并用 Matplotlib 和 WordCloud 可视化结果;非开发者则可借助 Zapier 无代码工具收集推文、调用 Inference API 分析并输出到 Google Sheets。
Hugging Face 深度强化学习课程第 5 单元讲解策略梯度方法,并用 PyTorch 从零实现首个基于策略的算法 Reinforce,随后在 CartPole-v1、PixelCopter 和 Pong 上测试其鲁棒性。
Hugging Face 深度强化学习课程第二单元第二部分讲解 Q-Learning 算法,并从头实现首个 RL 智能体。该算法属于 off-policy 的基于价值方法,采用 TD 方式训练动作价值函数,内部维护一张 Q-table 存储每个状态-动作对的价值。智能体将在 Frozen Lake v1 和自动驾驶出租车两个环境中训练,为第三单元的 Deep Q-Learning 打基础。
Hugging Face 深度强化学习课程更新第二单元第一部分,讲解基于价值的方法,并区分蒙特卡洛与时序差分学习。内容涵盖状态价值函数、动作价值函数与贝尔曼方程,为下一部分实现首个 Q-Learning 智能体、在 Frozen-Lake-v1 和自动驾驶出租车环境中训练做准备。
Hugging Face 发布教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。
Hugging Face 在 🤗 Transformers 中推出约束束搜索(constrained beam search),通过 model.generate() 的 force_words_ids 参数让用户指定生成结果中必须包含的词。该功能支持强制单个词、多个短语以及析取约束(在候选词列表中至少包含一个),可在生成阶段直接控制输出,无需事后再筛选。
OpenAI 构建了一个面向 Lean 的神经定理证明器,能够解出多道高难度高中数学奥赛题,包括来自 AMC12 和 AIME 竞赛的题目,以及两道改编自 IMO 的问题。
Hugging Face 博客第二部分聚焦用 Intel 软件栈优化 CPU 上的 BERT 类模型推理,并给出 Ice Lake 代 Xeon 的性能实测。Ice Lake Xeon 在多种 NLP 任务上推理最高比上代 Cascade Lake 快 75%,依托 AVX512、VNNI 等指令及 oneAPI 下的 oneMKL、oneDNN、oneCCL 等库。
OpenAI 训练了一个求解小学数学应用题的模型,准确率接近微调 GPT-3 模型的两倍。在自建数据集的同一批题目上,该系统的正确率为 55%,而 9-12 岁儿童小样本的正确率为 60%,即解题量约为这些孩子的 90%。
推荐理由:OpenAI 用自建小学数学数据集对比微调 GPT-3,给出模型与 9-12 岁儿童在同一批题目上的准确率差距。
Hugging Face 发文介绍如何用 EleutherAI 的 GPT-Neo 配合 🤗 Accelerated Inference API 实现 Few-Shot Learning 预测。
Hugging Face 发布博客,介绍在 CPU 上扩展 BERT 推理的硬件优化方法,基于 AWS c5.metal 实例(Intel Xeon Platinum 8275,48 核/96 线程)测试 PyTorch 1.8.1 与 TensorFlow 2.4.0 的推理表现,开箱即用下 PyTorch 在所有测试配置中均优于 TensorFlow。
Hugging Face 发文详解 BigBird 的块稀疏注意力机制,该模型通过滑动注意力、全局 token 和随机 token 三种方式近似 BERT 的完整注意力,可处理长达 4096 的序列,计算成本远低于 BERT,并已在长文档摘要、长上下文问答等任务上取得 SOTA。BigBird 的 RoBERTa 类模型现已集成到 Transformers 中。
Hugging Face 月度阅读小组 2021 年 2 月聚焦长程注意力,围绕 Longformer、Compressive Transformer、Linformer、Performer 四篇论文梳理降低 Transformer 序列长度二次开销的四条路线:自定义注意力模式、循环、低秩近似与核近似。
Hugging Face 通过优化模型管线、Rust 版 Tokenizers 缓存以及针对硬件的编译优化,为 Accelerated Inference API 客户实现了 100 倍推理提速。前 10 倍来自 Hugging Face 库内置的高效方法,后 10 倍则依赖静态图优化、层融合与量化等 CPU/GPU 特定技术。
Hugging Face 发布博客,详解基于 Transformer 的编码器-解码器架构如何建模序列到序列问题,聚焦其数学定义与推理用法。文章将架构拆解为编码器和解码器两部分,并关联 🤗Transformers 中的 T5、Bart、MarianMT、Pegasus 等模型的实际推理。该文不涉及模型训练,仅提供背景与图示说明。
Hugging Face 博客详解 Reformer 模型,它能在不到 8GB 内存下处理长达 50 万 token 的序列,而 bert-base-uncased 仅支持 512 token。Reformer 通过局部自注意力、LSH 自注意力、分块前馈层、可逆残差层和轴向位置编码四项改造降低内存占用,并已集成进 Transformers 库。
Hugging Face 发布教程,介绍用 transformers 库进行自回归语言生成的多种解码方法,包括贪心搜索、beam search 和采样。
推荐理由:Hugging Face 官方梳理贪心、beam search 与采样等解码策略,并给出 transformers 可直接运行的代码示例。
OpenAI 开发了 Random Network Distillation(RND),一种基于预测的奖励方法,通过好奇心鼓励强化学习智能体探索环境,首次在《蒙特祖玛的复仇》上超越人类平均表现。
OpenAI 训练出一个智能体,仅凭单次人类演示就在《蒙特祖玛的复仇》中取得 74500 分的高分,超过此前所有已公布结果。其算法从演示中挑选特定状态作为起点,让智能体依次游玩并优化游戏得分,所用强化学习算法 PPO 也是 OpenAI Five 的基础。
推荐理由:OpenAI 用单次人类演示加 PPO 在《蒙特祖玛的复仇》上取得 74500 分,可了解演示驱动强化学习的早期思路。
OpenAI 发文探讨强化学习算法的一种失效模式:奖励函数设定不当。文章指出,强化学习算法可能以出人意料、反直觉的方式崩溃,而奖励函数设定错误正是其中一种失败情形。