Hugging Face Inference Endpoints 入门指南
Hugging Face 推出 Inference Endpoints,支持从 Hub 直接部署模型到托管基础设施,几步点击即可完成。该服务提供 Public、Protected、Private 三种访问级别,Private 模式通过 AWS PrivateLink 的 VPC Endpoint 接入,仅限指定 AWS 账户访问。
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 机制收集对抗样本。
Hugging Face 详解 176B 参数多语言模型 BLOOM 的训练技术:基于 Megatron-DeepSpeed 的 3D 并行方案,使用 384 张 80GB A100 GPU、350B token 的 46 种语言数据,训练耗时约 3.5 个月。模型架构接近 GPT3 并做了若干改进,词表规模 250,680,训练在法国 Jean Zay 超算上完成。
作者用 Sentence Transformers 的语义搜索功能搭建了一个歌单生成器:将提示词编码为嵌入向量,在预生成的歌词嵌入中检索,再通过 Gradio Blocks 构建多步交互应用并托管在 Hugging Face Spaces。
Hugging Face 展示了如何用 Accelerate 库无需改代码即可启用 DeepSpeed ZeRO,在 2×24GB NVIDIA Titan RTX 上微调 900M 参数的 microsoft/deberta-v2-xlarge-mnli。
Hugging Face 推出 Evaluation on the Hub,由 AutoTrain 驱动,用户无需写代码即可在 Hub 上用任意数据集和指标评测模型。评测结果会以 PR 形式写入模型卡的元数据,并可在数据集页查看排行榜;官方已用该工具评测数百个模型并提交了对应 PR。工具支持为任务寻找最佳模型、在新数据集上跑基线、以及用多个相关数据集评测自己的模型三种场景。
推荐理由:Hugging Face 把模型评测做成 Hub 上的一键流程,读者可了解免代码评测与结果写入模型卡的做法。
Hugging Face 博客介绍了三种将 Transformers 模型转为 ONNX 的方式,从底层 torch.onnx、中层 transformers.onnx 到高层 Optimum,均以 distilbert-base-uncased-finetuned-sst-2-english 文本分类模型为例。
Intel 正式加入 Hugging Face 硬件合作伙伴计划,双方将基于开源库 Optimum 合作构建面向 Transformer 的硬件加速方案,覆盖训练、微调和推理。
大型神经网络是近期许多 AI 进展的核心,但其训练是一项困难的工程与研究挑战,需要编排一组 GPU 集群完成单次同步计算。
Cohere、OpenAI 和 AI21 Labs 共同制定了一套初步的大语言模型最佳实践,适用于任何开发或部署大语言模型的组织。
Graphcore 与 Hugging Face 在开源库 Optimum 中新增一批针对 Graphcore IPU 优化的 Transformer 模型,可用的模型从 BERT 扩展到 10 个,覆盖 NLP、语音和计算机视觉。
OpenAI Codex 现已通过 OpenAI API 为 70 款不同应用提供支持,覆盖多种使用场景。
Sempre Health 借助 Hugging Face 的 Expert Acceleration Program 搭建了自动分类并回复患者短信的 NLP 流水线,上线数周后近 20% 的入站消息由系统自动处理。
Gradio 发布 3.0 版本,对库进行彻底重设计,前端改用 Svelte 等现代技术,页面加载更快、体积更小,并新增 Gallery 组件和 TabbedInterface 类。
推荐理由:Gradio 3.0 重写前端并推出 Blocks 低层 API,读者可了解它如何让 Python 直接搭建复杂自定义 Web 应用。
Hugging Face 发布 Optimum 1.2,新增对 Transformers pipelines 的推理支持,首批接入 ONNX Runtime。用户可将 AutoModelForXxx 替换为对应的 ORTModelForXxx,并配合 ORTQuantizer、ORTOptimizer 完成量化与优化。
fastai 现已集成 Hugging Face Hub,用户只需一行 Python 代码即可上传和共享模型。使用 `push_to_hub_fastai` 上传 Learner,再用 `from_pretrained_fastai` 加载,需安装 fastai>=2.4、fastcore>=1.3.27 和 toml。上传后自动生成模型卡,并支持基于 git 的版本控制。
Hugging Face 介绍如何用 Accelerate 库无需改代码即可调用 PyTorch FullyShardedDataParallel(FSDP)训练大模型。
Hugging Face 发布博客,演示如何用其生态工具搭建客户服务情感分类系统,自动筛选最不满意的客户消息。
Hugging Face Hub 新增 emissions_threshold 参数,可按训练碳排放量筛选模型,例如筛选出 191 个排放不超过 100 克的模型。transformers 集成 codecarbon,训练时自动记录排放数据并生成 emissions.csv,方便写入模型卡。
Hugging Face 机器学习工程师 Lewis Tunstall 在播客中介绍了与 Leandro von Werra、Thom Wolf 合著的《NLP with Transformers》,并讲述自己在 transformers 库中推动 ONNX 导出功能,让用户只需一行代码即可将 PyTorch 模型转换格式,从而获得更低延迟和更高吞吐。
Habana Labs 与 Hugging Face 宣布合作,将 Habana 的 SynapseAI 软件套件与 Hugging Face 的 Optimum 开源库集成,开发者只需几行代码即可在 Habana Gaudi 处理器上加速 Transformer 训练。
Hugging Face 的 Transformers 库有意不遵循 DRY 原则,转而采用"单一模型文件策略",即模型前向传播所需的全部代码只放在一个 model 文件中,如 BERT 的 modeling_bert.py。原因是该库由开源社区共建、建模代码本身就是产品、机器学习领域演进极快且模型发布后基本静态不变,集中抽象反而会带来维护与命名难题。
Hugging Face 发布教程,演示如何用 Hugging Face Transformers、Amazon SageMaker 和 AWS Inferentia 加速 BERT 文本分类推理。