Hugging Face 博客:深入解析视觉语言模型及其训练策略
Hugging Face 博客梳理了视觉语言模型(VLM)的训练方法,涵盖对比学习、PrefixLM、交叉注意力多模态融合、MLM/ITM 以及免训练五类策略。文章以 OpenAI 的 CLIP 为例说明对比学习如何将图文映射到同一特征空间,并介绍了 CLOOB、ALIGN、DeCLIP、LiT 等模型,同时说明如何用 Transformers 库上手这些模型。
Hugging Face 博客梳理了视觉语言模型(VLM)的训练方法,涵盖对比学习、PrefixLM、交叉注意力多模态融合、MLM/ITM 以及免训练五类策略。文章以 OpenAI 的 CLIP 为例说明对比学习如何将图文映射到同一特征空间,并介绍了 CLOOB、ALIGN、DeCLIP、LiT 等模型,同时说明如何用 Transformers 库上手这些模型。
在 AI for Game Development 系列第 4 天,Hugging Face 展示如何把 Stable Diffusion 的 Image2Image 作为工具嵌入传统 2D 美术流程,用来生成农场游戏图标。
Hugging Face 在 diffusers 中正式加入 LoRA 微调支持,可在 11 GB 显存的 2080 Ti 上训练 Stable Diffusion,微调权重文件仅约 3 MB,比 UNet 原模型小约一千倍。
推荐理由:以 11 GB 显存训 Stable Diffusion 的完整命令与推理代码为例,展示 LoRA 把微调权重压到 3 MB 的可行路径。
Hugging Face 梳理了让对话式 AI 智能体真正有用的关键技术,包括 RLHF、IFT、SFT、CoT 与红队测试,并对比了 LaMDA、BlenderBot 3、Sparrow、ChatGPT/InstructGPT 与 Anthropic Assistant 的架构、训练数据与评估标准。
Hugging Face 的 Optimum 库通过与 ONNX Runtime 集成进行训练,可将众多热门 Hugging Face 模型的训练时间提升 35% 以上。
在“AI for Game Development”系列第 3 天,作者指出 text-to-3D 目前还无法真正用于游戏开发:DreamFusion、Point-E、CLIP-NeRF 等方案多基于视角合成,产出的 mesh 不能直接用于游戏,需要大量人工后处理。作者因此在本作中直接用不同颜色的方块代表农作物,并认为未来突破点在于 NeRF-to-mesh 与 mesh 生成的改进。
Mask2Former 和 OneFormer 两个 SOTA 图像分割神经网络现已加入开源库 🤗 transformers。OneFormer 只需在 panoptic 版本数据集上训练一次,即可在实例、语义和全景分割三项任务上取得 SOTA,并已支持 Swin Transformer 或 DiNAT 作为 backbone,但额外的文本编码器带来更高延迟。
基于 🤗 Transformers 和 Datasets 可搭建图像相似度检索系统,用 ViT 模型(nateraw/vit-base-beans)提取图像嵌入向量,再以余弦相似度找出与查询图最接近的候选图。
Hugging Face 的系列教程第二部分展示如何用 ChatGPT 辅助农场游戏的游戏设计,作者让 ChatGPT 以专业游戏设计师身份给出作物多样性、进阶系统、动态环境、社交与剧情等核心玩法建议,并只对前两项做了灰盒实现。文中还介绍了语言模型与 Transformer 原理、RLHF 的作用,以及 ChatGPT 常用于头脑风暴与加速开发、而非取代开发流程的定位。
Hugging Face 发布图机器学习入门博客,介绍图的基本概念、表示方法以及从神经网络之前的方法到 Graph Neural Networks 的学习路径,并简要展望面向图的 Transformer。文章还梳理了图级别、节点级别、边级别和子图级别的任务,例如图生成、Alphafold 用节点属性预测预测原子 3D 坐标,以及推荐系统中的缺失边预测。
Hugging Face 博客推出「AI for Game Development」系列,演示 5 天内用 AI 工具做出完整农场游戏,第一部分讲美术风格。
Hugging Face 与 Intel 演示如何在 AWS 的第四代 Xeon(Sapphire Rapids)裸金属实例集群上分布式训练 PyTorch Transformer。借助已集成进 transformers 的 Intel oneCCL 和 IPEX,无需改一行代码即可启用 AMX 指令加速矩阵乘法,支持 BF16 和 INT8,Linux 内核需 v5.16 以上。
Hugging Face 发布指南,介绍如何通过 transformers 使用 CLIPSeg 零样本图像分割模型。CLIPSeg 在冻结的 CLIP 之上训练 Transformer 解码器,能生成粗略分割掩码,可用于机器人感知与图像修复;其输入为 352 x 352 像素,输出分辨率较低,需要更精细结果时可在 Segments.ai 上微调优化。
Hugging Face 发布音频数据集使用指南,介绍如何用 🤗 Datasets 的 load_dataset 一行代码下载并准备音频数据。加载 GigaSpeech 时只需指定 speechcolab/gigaspeech 与 xs 配置,即可得到已划分好的 train(9389 行)、validation(6750 行)和 test(25619 行)三个 split。
Hugging Face 用 Optimum Habana 在 BERT 预训练、Stable Diffusion 推理和 T5-3B 微调上对比了 Habana Gaudi2 与 Nvidia A100 80GB,Gaudi2 训练和推理均约为 A100 的两倍。
Hugging Face 博客图解 RLHF 如何用人类反馈优化语言模型,把训练流程拆为预训练、训练奖励模型、用强化学习微调三个核心步骤,并说明奖励模型以排序而非直接打分来生成标量奖励,最后用 PPO 结合 KL 散度惩罚更新策略。
推荐理由:文章系统拆解 RLHF 的预训练、奖励模型与 PPO 微调三阶段,并梳理可直接上手的开源工具与数据集。
Hugging Face 发布蛋白质深度学习长文,面向生物学家与机器学习研究者,介绍蛋白质模型如何借鉴 BERT、GPT 等大语言模型。文章回顾 2018 年 ULMFiT 和 BERT 带来的迁移学习突破,指出其性能常相当于训练数据增加 100 倍以上,并给出微调蛋白质语言模型和用 ESMFold 做蛋白质折叠的示例 notebook。
Hugging Face 发布教程,介绍如何使用 🤗 Transformers 中的 Time Series Transformer 对月度旅游数据集做概率时间序列预测,包含数据加载、特征变换、模型配置、训练与 generate 推理的完整代码。
借助苹果工程师提供的转换脚本和基于 Diffusers 的推理代码,Stable Diffusion 现在可以在 Apple Silicon 上用 Core ML 运行,Hugging Face 已代为转换权重并上传到 Hub,提供 v1.4、v1.5、v2 base、v2.1 base 四个 checkpoint。
推荐理由:借助苹果工程师的转换脚本,读者可以了解在 Apple Silicon 上用 Core ML 运行 Stable Diffusion 的权重下载与推理命令。
Hugging Face 与 Jonathan Whitaker 合作的扩散模型课程将于 11 月 28 日免费发布,讲解扩散模型的理论与应用。
Hugging Face 发文梳理文档 AI 的六大用例及对应开源模型,涵盖 OCR、文档图像分类、版面分析和文档解析,并给出许可、数据准备与建模的实践指引。
Hugging Face 发布教程,演示如何借助 Concrete-ML 库在全同态加密(FHE)设置下对加密数据做情感分析。方案用基于 Stanford Sentiment Treebank 微调的 BERT 提取文本隐藏表示(768 维),再交给 XGBoost 分类,并给出基于客户端/服务器协议的云端部署及 HF Mirror Spaces demo。
Hugging Face 博客介绍 Contrastive Search 解码方法已集成进 transformers,PyTorch 和 TensorFlow 均可使用,安装 transformers==4.24.0 即可复现文中示例。
推荐理由:该方法给出可直接复用的参数与代码路径,读者能借此判断它相对已有解码策略的实际取舍。
Hugging Face 的 Diffusers 提供了 Dreambooth 训练脚本,用于给 Stable Diffusion 注入新概念。实验发现人脸训练需要更多步数,batch size 为 2、LR 为 1e-6 时 800-1200 步效果较好,且 prior preservation 能有效避免人脸过拟合。
Hugging Face 发布教程,讲解如何用 🤗 Transformers 微调 OpenAI 的 Whisper 做多语言 ASR。
Hugging Face 为 Evaluate 库新增偏见指标与测量方法,可评估 GPT-2、BLOOM 等因果语言模型的偏见。流程分两步:用 🤗 Datasets 上的预定义提示词提示模型,再用 Evaluate 的指标评估生成文本,示例覆盖毒性、语言极性和伤害性三类任务,其中毒性指标调用 R4 Target 模型作仇恨言论分类器。
Hugging Face 发布教程,梳理如何用三级递增抽象在多个 GPU 上做分布式数据并行(DDP)训练:原生 PyTorch DDP、Accelerate 轻量封装,以及 Transformer 的高层 Trainer API。Accelerate 的封装无需改代码即可在单 GPU 和 TPU 上运行,只需对原代码做最小改动;Trainer 则抽象掉全部样板代码并支持多种设备和分布式场景。
Hugging Face 分享了 BLOOM(176B 参数,bf16 下 352GB)推理服务的优化过程,数周内把延迟降低 5 倍、吞吐提升 50 倍。团队用 Megatron-Deepspeed 训练的模型花约一个月、200 次提交移植到 transformers,并借助 accelerate 的 device_map="auto" 做流水线并行分片,同时保留了张量并行带来的数值差异开关。
Hugging Face 介绍 Accelerate 如何借助 PyTorch 在 RAM 或单卡 GPU 都放不下模型的情况下加载并推理超大语言模型。
推荐理由:拆解了 Accelerate 借助 meta device、sharded checkpoint 和设备映射在有限显存下跑大模型的完整机制。
Hugging Face 发布 transformers-bloom-inference 仓库,用三个脚本演示 176B 参数 BLOOM 在 8x80GB A100 上的推理方案。
Hugging Face 发布教程,教你在 transformers 库中从零训练一个离线 Decision Transformer,在 Gym HalfCheetah 环境让半猎豹学会奔跑。
Hugging Face 发布教程,讲解如何在 NVIDIA GPU 上用 Megatron-LM 训练 GPT2 语言模型,并转换到 Transformers 使用。Megatron-LM 的优势在于高效 DataLoader 与 Fused CUDA Kernels,还采用了 Apex 的 Fused AdamW,比 PyTorch 实现更快。教程涵盖环境配置、数据预处理、训练和模型转换四步。
Hugging Face 发布教程,介绍如何用 3Dmol.js 和 Gradio 的 HTML block 在 HF Mirror Spaces 中可视化蛋白质,用户可输入 4 位 PDB 代码或上传 PDB 文件。文章建议改用 Molecule3D Gradio 自定义组件,通过 pip install gradio_molecule3d 安装,支持动态修改蛋白质可视化并更简单地设置默认视图。
本教程介绍如何在 AWS 的 Habana Gaudi DL1 实例上,借助 HF Mirror Transformers、Optimum Habana 和 Datasets 库,用掩码语言建模任务从零预训练 BERT-base。教程涵盖数据集准备、训练词表和预处理数据集的完整流程,并可将产物推送至 HF Mirror Hub。
Hugging Face 官方博客介绍如何用 Diffusers 库运行 Stable Diffusion,该模型由 CompVis、Stability AI 和 LAION 基于 LAION-5B 子集训练,文章默认使用 v1-4 版本。
推荐理由:原文来自 Diffusers 官方团队,给出 Stable Diffusion 的推理代码、关键参数含义与自定义 pipeline 的完整写法,可对照复用。
Hugging Face 展示如何将 TensorFlow 版 ViT B/16 模型部署到 Google Cloud 的 Vertex AI 平台,借助 google-cloud-aiplatform Python SDK 四步完成上传模型、创建 endpoint、部署和预测请求。
Hugging Face 发布博客,演示如何用 Hugging Face Optimum 库在 Graphcore IPU 上微调预训练 Vision Transformer(ViT)模型,并提供配套 notebook,以 ChestX-ray14 胸部 X 光数据集为例逐步讲解。
Hugging Face 联合 BigScience 将 LLM.int8() 8 位矩阵乘法量化集成到 transformers 和 accelerate,声称在 BLOOM-176B、OPT-175B 等模型上推理性能无下降,显存占用减半,例如 BLOOM-176B 只需 4 张 80GB A100 而非 8 张。
推荐理由:Hugging Face 与 bitsandbytes 合作把 LLM.int8() 落入 transformers,读者可了解大模型量化省显存的条件与代价。
Hugging Face 阐述其 transformers 库对 TensorFlow 的设计哲学:所有 TensorFlow 模型都应是 Keras Model 对象、所有层都应是 Keras Layer 对象,因此可直接调用 fit()、compile()、predict()。
Hugging Face 发文介绍如何把上一篇文章中本地部署的 Vision Transformer(ViT)模型用 Docker 和 Kubernetes 扩展到多用户场景。