在 Intel CPU 上加速 Stable Diffusion 推理
Hugging Face 展示了在 Intel Sapphire Rapids CPU 上加速 Stable Diffusion 推理的多种技术。
Hugging Face 展示了在 Intel Sapphire Rapids CPU 上加速 Stable Diffusion 推理的多种技术。
Hugging Face Hub 新增 Jupyter notebook 渲染支持,托管在 Hub 上的 ipynb 文件将以人类可读格式显示,不再直接呈现原始 JSON。Hub 目前已托管超 7,000 个 notebook,并支持一键在 Google Colab 中打开。
Hugging Face 官方发布 trl 与 peft 的集成,让大语言模型的 RLHF 微调成本大幅降低。方案先用 LLM.int8() 以 8 位精度加载模型,再用 peft 添加低秩适配器只训练少量参数,并借助 disable_adapters 复用同一模型获取参考模型与当前模型的 logits,从而省去第二份模型副本。
推荐理由:trl 与 peft 的集成给出了在 24GB 消费级 GPU 上做 RLHF 微调的具体路径,可迁移到自有训练流程。
2023 年 2 月 6 日土耳其东南部发生 7.7 和 7.6 级地震后,一群程序员在 Discord 上协作开发了名为 afetharita(灾害地图)的应用,用于从幸存者的推文和截图中提取地址与需求信息,供搜救队和志愿者使用。
推荐理由:作者以志愿者身份复盘土耳其地震救援中的模型选型与部署流程,可迁移到快速搭建应急类 ML 应用。
Hugging Face 专家加速计划帮助 Witty Works 将其包容性写作助手的非包容性词汇分类器从 vanilla transformers 转向 Sentence Transformers 架构,并结合 SetFit 库实现少样本微调,每个词仅需 15-20 条标注句子。
消费者奖励公司 Fetch 借助 AWS 合作伙伴 Hugging Face 的专家加速计划,将原本依赖第三方黑盒的票据处理方案改为自研 AI/ML 模型,开发时间缩短 30%。其平台基于 Amazon SageMaker 和 AWS Inferentia 构建,每天可处理超 1100 万张收据,处理延迟降低 50%,服务 1800 万月活用户。
Hugging Face 与 AWS 扩大长期战略合作,Hugging Face 将 AWS 作为首选云服务商,开发者可通过 Amazon SageMaker、AWS Trainium 和 AWS Inferentia 训练、微调并部署模型。
Hugging Face 推出托管服务 Inference Endpoints,可将 Hub 上的模型部署到 AWS 等云端的多种实例类型(含 GPU)。团队将原本跑在 AWS ECS + Fargate 上的 CPU 推理模型迁移过去,部署流程从六步简化为三步。测试显示 large 实例延迟约 80ms,比原方案快一倍以上,但成本高出 24% 至 50%。
Hugging Face 联合 Intel 测试了 PyTorch Transformers 在第四代 Xeon(Sapphire Rapids)上的推理性能,对比上一代 Ice Lake,在 distilbert-base-uncased、bert-base-uncased、roberta-base 三个模型上测量了 16 与 128 token 句子的单条及批量推理延迟。
Hugging Face 公布其计算机视觉生态进展:Hub 上已支持 8 项核心视觉任务、超过 3000 个模型和 100 多个数据集,涵盖图像分类、分割、目标检测、深度估计等,并兼容 ViT、Swin、DETR 及 ConvNeXt、ResNet 等架构。
Hugging Face 与 Microsoft ONNX Runtime 团队合作,在 Optimum 库中集成 ONNX Runtime 训练后端,为多种 Hugging Face 模型带来 35% 以上的训练提速。
OpenAI 展示了用 GPT-3 从客户反馈中快速提取细致洞察的能力。该方案面向客户反馈分析场景,目标是兼顾速度与洞察的细腻度。
Hugging Face 展示了如何在 AWS 的 Intel Sapphire Rapids(第四代 Xeon)CPU 集群上加速 PyTorch Transformer 训练,借助 Intel CCL 做分布式、IPEX 自动启用 AMX 指令,无需改动一行代码。
Habana Gaudi2 在 BERT 预训练和 Stable Diffusion 推理上约为 Nvidia A100 80GB 的两倍速度。BERT 预训练中 Gaudi2 吞吐达 1580.2 samples/s(BS=32),A100 为 981.6;Stable Diffusion 推理延迟 0.925s/img,A100 为 2.63s。
Elixir 社区推出 Bumblebee 库,用纯 Elixir 实现了 Hugging Face Transformers,将 GPT2 到 Stable Diffusion 等神经网络模型引入 Elixir。
Hugging Face 联合 Apple 工程师把 Stable Diffusion 权重转换为 Core ML 格式并上传到 Hub,可在 Apple Silicon 的 CPU、GPU 和神经引擎上运行。
推荐理由:原文给出在 Apple Silicon 上用 Core ML 跑 Stable Diffusion 的完整流程与性能参考,可迁移到本地部署实践。
Hugging Face 梳理了其推理方案:模型页内置免费 Inference Widget,底层由免费 Inference API 驱动,可通过 HTTP 请求调用任意 Hub 模型,但因限流不建议用于生产。
Hugging Face 发布教程,演示如何用 Concrete-ML 库在完全同态加密(FHE)环境下构建情感分析模型,无需任何密码学背景。流程包括用 BERT 提取文本隐藏表示、训练 XGBoost 分类器,再将预测转为加密数据上的预测,并通过客户端/服务器协议部署到云端,最后在 Hugging Face Spaces 提供完整演示。
Hugging Face 宣布下线 Inference API 的付费层,该服务仍对所有人免费开放,同时推出面向企业级高速推理的新产品 Inference Endpoints。Spaces 也获得硬件升级,可选择自定硬件运行 ML demo,这些服务无需订阅,只需在账单设置中绑定信用卡。所有付费服务按月计费并生成合并发票,账单页面可管理 PRO 订阅、更新支付方式并查看近三个月用量。
Hugging Face 将 Intel OpenVINO 集成进 Optimum Intel,用户可基于 OpenVINO 2022.2 在多种 Intel 处理器上对 Transformers 模型执行推理,并用 NNCF 在数分钟内完成量化以降低模型体积和预测延迟。
Hugging Face 发布教程,演示如何通过三个递进抽象层级实现多 GPU 分布式训练:原生 PyTorch DDP(torch.distributed)、🤗 Accelerate 轻量封装(无需改代码即可支持单 GPU 和 TPU)、以及 🤗 Transformer 的 Trainer API。
Hugging Face 推出 Inference Endpoints,支持从 Hub 直接部署模型到托管基础设施,几步点击即可完成。该服务提供 Public、Protected、Private 三种访问级别,Private 模式通过 AWS PrivateLink 的 VPC Endpoint 接入,仅限指定 AWS 账户访问。
Hugging Face Diffusers 自 0.5.1 版起支持 Flax,可在 Colab、Kaggle 或 Google Cloud 的 TPU 上快速推理 Stable Diffusion。
推荐理由:Hugging Face 官方给出在 TPU 上用 JAX/Flax 跑 Stable Diffusion 的完整步骤与并行原理,可迁移到多设备推理。
Hugging Face 分享了 BLOOM(176B 参数、bf16 下 352GB)推理服务的优化过程,数周内将延迟降低 5 倍、吞吐提升 50 倍。团队先用 Megatron-Deepspeed 训练,再由 Younes 耗时近一个月、200 次 commit 移植到 transformers,并借助 accelerate 的 device_map="auto" 做流水线并行分片。
Hugging Face 撰文解释 Accelerate 如何借助 PyTorch 在内存和显存不足的消费级硬件上加载并运行超大模型。它先用 meta device 创建空模型并计算 device map,再按分片逐步加载权重,把层分配到多张 GPU、CPU 内存乃至磁盘,最后通过 hooks 在每次前向传播前后搬运权重。
推荐理由:原文拆解了 Accelerate 借助 PyTorch meta device 与分片加载在有限显存下跑大模型的完整流程,可迁移到自己的推理部署。
Hugging Face 发布教程,展示如何用 DeepSpeed-Inference、Accelerate 和 DeepSpeed ZeRO 为 176B 参数的 BLOOM 做推理,并给出 8x80GB A100 上的吞吐基准。
Hugging Face 发布教程,讲解如何在 NVIDIA GPU 上用 Megatron-LM 训练 GPT2 语言模型并转换到 Transformers。
Hugging Face 发布教程,介绍如何用 3Dmol.js 和 Gradio 的 HTML block 在 Hugging Face Spaces 中可视化蛋白质结构,应用可接受 4 位 PDB 代码或上传 PDB 文件,从 RCSB 蛋白数据库获取并展示结构。
Hugging Face 发布教程,演示如何在 AWS DL1 实例上借助 Habana Gaudi 从零预训练 BERT-base,使用 Transformers、Optimum Habana 和 Datasets 库,以 masked-language modeling 为预训练任务。
Hugging Face 展示了如何将 🤗 Transformers 中的 ViT B/16 模型部署到 Google Cloud 的 Vertex AI 平台,用比 Kubernetes 方案更少的代码实现同等扩展能力。
Hugging Face 发布教程,演示如何用 Optimum Graphcore 库在 Graphcore IPU 上微调预训练 Vision Transformer(ViT)模型。
Hugging Face 将 LLM.int8() 8-bit 量化集成进 transformers 和 accelerate,使 BLOOM-176B 等大模型显存占用减半且推理性能几乎无损。
推荐理由:Hugging Face 官方详解 LLM.int8() 量化原理与 transformers 集成细节,可了解大模型显存减半的落地方式。
Hugging Face 阐述了其 transformers 库对 TensorFlow 的设计理念:所有 TensorFlow 模型都是 Keras Model 对象,所有层都是 Keras Layer 对象,用户可直接调用 fit()、compile() 和 predict()。
Hugging Face 发布新库 Skops,支持将 scikit-learn 模型托管到 Hugging Face Hub,并生成模型卡进行文档化与协作。Skops 后端使用 joblib 加载模型,可自动从配置文件提取任务名、库名等元数据填入模型卡,并支持通过 add_metrics、add_plot 添加评估指标与图表。
Hugging Face 发布教程,讲解如何用 Docker 和 Kubernetes 将本地部署的 Vision Transformer(ViT)模型扩展为可服务多用户的线上服务。流程包括用 TensorFlow Serving 基础镜像容器化 SavedModel,再部署到 Google Kubernetes Engine(GKE)集群,代码已开源。
Hugging Face 发布 Private Hub(PH),为机器学习全生命周期提供统一工具,支持以安全合规的方式协作开发与部署。PH 基于拥有 60K+ 模型、6K 数据集和 6K 演示应用的 Hugging Face Hub,模型、数据集和 Space 均为 Git 仓库,支持版本控制、pull request 和讨论。
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 与外部贡献者为 Transformers 加入了 Vision Transformer、Masked Autoencoders、RegNet、ConvNeXt 等 TensorFlow 视觉模型,本文演示如何用 TensorFlow Serving 在本地部署 ViT 图像分类模型,以 REST 或 gRPC 端点暴露服务。
Hugging Face 博客介绍动态对抗数据收集(DADC):让用户用千奇百怪的手写数字骗过 SOTA 模型,再把骗成功的样本存下来继续训练,多轮重复。文中以 MNIST 手写数字识别为例,用 🤗 Spaces 搭建交互 demo,模型训练 20 个 epoch 后在测试集上达到 89% 准确率,并通过 flag 机制收集对抗样本。