如何在生产环境中优化 LLM:低精度、Flash Attention 与架构创新
Hugging Face 博客梳理了生产环境部署 LLM 的三大优化方向:8-bit 和 4-bit 低精度推理、Flash Attention 以及 Alibi、Rotary embeddings、MQA、GQA 等架构改进。
Hugging Face 博客梳理了生产环境部署 LLM 的三大优化方向:8-bit 和 4-bit 低精度推理、Flash Attention 以及 Alibi、Rotary embeddings、MQA、GQA 等架构改进。
Hugging Face 博客介绍了如何用 PyTorch FSDP 在多节点多 GPU 上微调 Llama 2 70B,并给出配套的 Transformers、Accelerate 与 TRL 配置。
推荐理由:完整给出了 70B 模型多节点微调的三个显存与检查点难题及对应配置解法,可直接迁移到自有训练流程。
Hugging Face Transformers 目前原生支持 bitsandbytes 和 auto-gptq 两种量化方案,前者无需校准数据即可对任意含 torch.nn.Linear 的模型做零样本量化,后者在文本生成上更快且支持 2-bit 量化。bitsandbytes 的 4-bit 模型暂不支持序列化,GPTQ 则需校准数据集且目前仅支持语言模型。
Hugging Face 在 🧨 Diffusers 库中优化 AudioLDM 2 文本到音频模型,通过半精度、flash attention、编译及调度器选择等手段,将推理时间缩短 10 倍以上,10 秒音频样本生成从 30 秒降至 1 秒,质量损失极小。
Hugging Face 发布实战教程,演示如何用 Transformers、Optimum 和 Accelerate 三个库对 Suno AI 的 TTS 模型 Bark 做三项优化,以降低显存占用并提升推理速度。
Hugging Face 博客演示了如何用开源模型服务框架 BentoML 部署 DeepFloyd IF 文生图模型。DeepFloyd IF 直接在像素空间工作,由冻结的文本编码器 T5-XXL-1.1 和三个级联像素扩散模块组成,可将 64x64 px 基础图逐步放大至 1024x1024 px。
Hugging Face 在 TRL 库中上线 Direct Preference Optimization(DPO)方法,并给出用 QLoRA 在 stack-exchange 偏好数据上微调 Llama v2 7B 的完整流程。
推荐理由:Hugging Face 官方给出 DPO 在 TRL 中的完整训练流程与代码,读者可据此在自己的偏好数据上复现对齐训练。
Hugging Face 发布教程,介绍如何通过 Inference Endpoints 的自定义 handler 部署 MusicGen 音乐生成模型。用户需复制 facebook/musicgen-large 仓库,添加 handler.py 和 requirements.txt,即可创建端点,用文本提示词生成音乐,也可选用旋律片段作为条件。
Zama 展示了如何借助 Hugging Face transformers 库,用全同态加密(FHE)在加密数据上运行 GPT2 的部分推理,从而同时保护用户数据隐私与模型 IP。实现中将 GPT2 首个多头注意力头改写为 FHE 兼容算子,权重与激活量化为整数,4-bit 量化可保留原模型 96% 的准确率。完整代码已在该用例示例中开源。
这篇教程演示了如何用 OpenAI 开源扩散模型 Shap-E 从文本生成 3D 模型,再经 Blender 的 Decimate 修改器减面、用 Dream Textures 插件生成无缝贴图,最后完成 UV 展开并导出 FBX 导入 Unity。整个流程面向 PS1 低多边形风格,以规避当前 text-to-3D 模型精度不足的问题。
Hugging Face 与 Apple 将 Stable Diffusion XL 基础模型移植到 Core ML,可在运行 macOS 14 公测版的 Apple Silicon Mac 上通过 Swift 应用或 Hugging Face 演示应用运行,目前使用 ORIGINAL attention 实现,refiner 阶段尚未移植。
推荐理由:Hugging Face 与 Apple 把 SD XL 移植到 Core ML 并给出混合位宽量化配方,读者可据此判断 Mac 本地跑大模型的可行路径。
Hugging Face 推出 AI WebTV 实验性演示,用开源文生视频模型 Zeroscope V2 与音乐生成模型 MusicGen 合成内容并直播。
Hugging Face 梳理其开源文本生成与 LLM 生态,涵盖因果语言模型与 text-to-text 模型、LLM 服务工具及 PEFT 微调。
Hugging Face 展示了在 Intel 第四代 Xeon(Sapphire Rapids)CPU 集群上微调 Stable Diffusion 的完整流程,借助 AMX 加速器与 IPEX、oneCCL 实现分布式训练。
Hugging Face 博客介绍了如何用 Transformers.js 制作实时 ML 网页游戏 Doodle Dash,模型完全在浏览器本地运行。作者基于 Google Quick, Draw!
推荐理由:作者完整走通从微调 MobileViT 到浏览器内实时推理的流程,可迁移到自己的网页 ML 项目。
Hugging Face 发布教程,演示如何用其托管 SaaS 服务 Inference Endpoints 部署开源 LLM,以 Falcon 40B instruct 为例,推荐将实例从 4x NVIDIA T4 换成 1x Nvidia A100,约 10 分钟即可上线。
Hugging Face 发布教程,用 Node.js 结合 WizardCoder-15B 与 Inference Endpoints API 流式生成 HTML 网页,实现文本到 Web 应用。模型通过 textGenerationStream 逐 token 输出,配合 TailwindCSS 提示词约束生成样式,并给出防止模型幻觉的提示词技巧。
Optimum Habana v1.7 在 Habana Gaudi2 上微调 BridgeTower 视觉语言模型,相比 A100 实现 2.5 倍加速,相比 H100 实现 1.4 倍加速。
Hugging Face 发文解释 Open LLM Leaderboard 上 LLaMA 的 MMLU 分数为何显著低于 LLaMA 论文报告值:榜单基于 EleutherAI LM Evaluation Harness,而 LLaMA 团队用的是 UC Berkeley 原始实现,Stanford HELM 又是第三种实现。
Hugging Face 发布教程,介绍如何基于 Meta AI 的 MMS 检查点微调 Adapter 层以适配低资源语言的语音识别。MMS 的 Adapter 训练仅需 10-20 分钟微调即可获得极低词错误率,每个 Adapter 层仅约 2.5M 权重,比微调整个模型更省内存、更稳健。
Hugging Face 用实验反驳了 AAAI 2023 论文《Are Transformers Effective for Time Series Forecasting?
Hugging Face 介绍了借助 Core ML 新优化在 iPhone、iPad 和 Mac 上加速 Stable Diffusion 的方法,核心是 6-bit palettization 量化,将权重从 16-bit 浮点压到每参数 6 bit,并在推理时逐层解压以节省内存。
推荐理由:Hugging Face 与 Apple 官方给出 6-bit palettization 的量化原理与转换命令,读者可据此把 Stable Diffusion 压到端侧运行。
Elixir 社区用 Livebook 构建了一个基于 Whisper 的语音聊天应用,并部署到 Hugging Face Spaces,全程不到 15 分钟。
Hugging Face Hub 面向美术馆、图书馆、档案馆与博物馆(GLAM)从业者,介绍如何查找模型、上传数据集并托管演示应用。Hub 目前托管超 190,000 个模型、33,000 个数据集和超 100,000 个应用与 demo,覆盖文本、图像、音频等任务。文中以挪威语文献的命名实体识别(NER)模型为例,并演示通过浏览器界面上传 CSV 数据集。
Hugging Face 发布教程,演示如何借助 Hugging Face Unity API 在 Unity 游戏中实现语音识别,把玩家语音转成文本,可用于下达指令、与 NPC 对话或提升无障碍体验。教程从搭建含开始/停止按钮和 TextMeshPro 文本框的场景入手,用 Microphone.Start() 以 44100 Hz 录制最长 10 秒音频,再编码为 WAV 格式发送给 API。
Hugging Face 借助 OpenVINO 的 NNCF 与 Optimum,通过量化感知训练(QAT)结合 Token Merging 优化 Stable Diffusion 的 UNet,在 Intel CPU 上实现 5.1 倍推理加速和 4 倍模型体积缩减。优化从 Pokemons 数据集微调模型出发,仅需 4096 次迭代、单张 24GB 显存 GPU 不到一天即可完成。
Hugging Face 与 bitsandbytes 合作,在 transformers 中支持以 4-bit 精度加载模型,覆盖文本、视觉和多模态等大多数 HF 模型,并可在 4bit 模型上训练适配器。
推荐理由:Hugging Face 与 bitsandbytes 合作把 4-bit 量化接入 transformers,读者可据此了解消费级硬件跑大模型的具体路径。
Hugging Face 博客介绍如何借鉴 InstructPix2Pix 的训练策略与 FLAN 的指令模板思路,对 Stable Diffusion 做指令微调,使其按输入图像加指令完成卡通化、去雨等图像翻译与底层图像处理任务。
Hugging Face 博客分享了 BigCode 项目在大规模代码数据集上做近重复数据删除(near-deduplication)的实践,采用 MinHash + LSH 方法,参数为 (256, 0.7, 5)。该工作延续自 BigScience 的 ROOTS 语料去重经验,此前已确认去重能提升代码模型表现,同时使用更小的数据集。
Intel 用 SmoothQuant-O3 对 OPT 2.7B/6.7B、LLaMA 7B、Alpaca 7B、Vicuna 7B、BloomZ 7.1B、MPT-7B-chat 等模型做 8-bit 量化,模型体积缩小约 2 倍,多数基准指标不降反升。
Hugging Face 发布教程,介绍如何在单块 AMD GPU 上通过 ROCm 运行 13B 参数的 Vicuna 聊天机器人。Vicuna 由 UC Berkeley 等团队基于 LLaMA 微调,训练成本约 300 美元,据 GPT-4 评估其质量达到 ChatGPT 的 90% 以上。
Hugging Face 发布辅助生成(assisted generation)方法,用一个至少小一个数量级的助手模型生成候选 token,再由主模型一次前向验证,从而减少前向次数、降低文本生成延迟。
推荐理由:Hugging Face 官方给出辅助生成方法的原理与可复现代码,读者可据此判断低延迟推理的落地条件。
Hugging Face 团队基于 BigCode 的 16B 参数 StarCoder,用 OpenAssistant 对话数据集微调出编程助手 StarChat,并开源了代码、数据集与模型。
推荐理由:完整给出了从对话提示词到 ChatML 格式、标签掩码与 DeepSpeed ZeRO-3 微调的可复现流程,并附代码与数据集链接。
Hugging Face 发文梳理文本到视频模型的发展脉络,指出该任务比文本到图像更难,需保证帧间时空一致性。早期模型基于 GAN 和 VAE,随后 Phenaki、Make-A-Video、NUWA、VideoGPT、CogVideo 等转向 Transformer 架构,当前主流则采用扩散模型。
Hugging Face Unity API 将 Hugging Face Inference API 集成进 Unity 项目,开发者可在 Unity 中调用 Hugging Face 的 AI 模型。
Hugging Face 发布端到端教程,演示如何用 🤗 Transformers、TensorFlow 和 TPU 从零训练一个 RoBERTa base 模型,涵盖训练 tokenizer、处理 WikiText v1 数据集、生成 TFRecord 分片并上传至 Google Cloud Storage,以及最终模型训练与上传的完整流程。
Hugging Face 博客介绍如何用 diffusers 在免费版 Google Colab(13GB CPU 内存、15GB T4 显存)上运行 DeepFloyd 的 IF 文生图模型。
推荐理由:以免费 Colab 为约束,展示 8bit 量化与分阶段加载如何把 40GB 权重的 IF 跑起来,方法可迁移到其他大模型部署。
Hugging Face 博客发布教程,演示如何用 Transformers 库(版本 >= 4.27.2)完成图分类任务,目前该库中唯一的图 Transformer 模型是微软的 Graphormer。
Hugging Face 与开源联邦学习框架 Substra 合作创建了一个演示 Space,让用户体验数据孤岛下联邦学习的训练效果。联邦学习让数据留在本地、仅传输模型权重,用多源数据训练的模型在验证集上几乎总是优于单一数据源模型。Substra 已在乳腺癌研究等真实场景中落地,MELLODDY 项目中 10 家生物制药公司借此共享了全球最大的小分子活性数据集。
Hugging Face 发布 StackLLaMA 模型并公开完整 RLHF 训练流程,涵盖监督微调、奖励建模和基于 PPO 的强化学习三个阶段,全部代码集成在 TRL 库中。
推荐理由:完整走通 SFT、奖励模型与 PPO 三段 RLHF 流程,并给出 8bit 加 LoRA 在单卡上复现的配置与踩坑记录。