如何在生产环境中优化 LLM:Hugging Face 详解低精度、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 Transformers 目前原生支持 bitsandbytes 和 auto-gptq 两种量化方案,前者无需校准数据、支持任意含 torch.nn.Linear 的模型及多模态模型,后者文本生成更快且支持 2-bit 量化。bitsandbytes 的 4-bit 模型暂不支持序列化,GPTQ 则需校准数据集,量化 175B 规模模型约需 4 GPU 小时。
Fetch 通过将机器学习流水线迁移到 Amazon SageMaker,并结合 Hugging Face AWS Deep Learning Container 与 SageMaker Hugging Face Inference Toolkit,把最慢扫描的延迟降低了 50%,文档理解模型准确率提升 200%。
Hugging Face 博客介绍如何在 Diffusers 库中加速 AudioLDM 2 的文本到音频推理,通过半精度、flash attention、torch.compile 和更换调度器等方法,把 10 秒音频的生成时间从约 14 秒降到 1 秒以内,音质下降很小。
推荐理由:原文给出四种开箱即用的推理优化手段,读者可据此把 AudioLDM 2 的生成耗时从 14 秒压到 1 秒以内。
Hugging Face 把 AutoGPTQ 库集成进 Transformers,用户可用 GPTQ 算法以 8、4、3 甚至 2-bit 精度量化和运行大语言模型,4-bit 量化精度损失可忽略,小批量下推理速度与 fp16 基线相当。
推荐理由:Hugging Face 官方说明 GPTQ 量化接入 Transformers 的用法与显存收益,可据此判断本地部署大模型的成本变化。
Hugging Face 发布 SafeCoder,一款面向企业的自托管代码助手商业解决方案,代码在训练和推理阶段都不离开客户 VPC。
Hugging Face Hub 已上线 AWS Marketplace,用户可通过 AWS 账户直接支付 Hugging Face 使用费用。订阅后,Inference Endpoints、Spaces Hardware Upgrades 和 AutoTrain 等服务的组织用量费用将自动计入 AWS 账单,价格与 Hugging Face 公开定价一致。
Hugging Face 发布教程,演示如何用 Transformers、Optimum 和 Accelerate 库优化 Suno AI 的 TTS 模型 Bark。
Hugging Face 发布博客演示如何用开源模型服务框架 BentoML 部署 DeepFloyd IF 文生图模型。DeepFloyd IF 直接在像素空间工作,由冻结文本编码器和三个级联像素扩散模块组成,Stage 1 生成 64x64 px 基础图像,经 Stage 2、Stage 3 逐步放大至 1024x1024 px,并集成 T5-XXL-1.1 编码提示词。
Hugging Face 发布教程,介绍如何通过 Inference Endpoints 的自定义 handler 部署 MusicGen 音乐生成模型。用户需复制 facebook/musicgen-large 仓库,添加 handler.py 和 requirements.txt,即可创建端点,16 GB RAM 实例即可运行,支持文本提示生成音乐。
Zama 基于 Hugging Face transformers 库,用全同态加密(FHE)改造 GPT2,让部分推理在加密数据上运行,兼顾用户隐私与模型 IP。实验显示,权重与激活值采用 4-bit 量化时,加密后的单个注意力头仍保持原模型 96% 的精度。实现借助 Concrete-Python 将 Python 函数转为 FHE 等价形式,客户端本地推理至首层后加密中间结果交由服务器计算。
Hugging Face 展示了在 Intel 第四代 Xeon(Sapphire Rapids)CPU 集群上微调 Stable Diffusion 的完整流程,利用 AMX 加速器与 Intel Extension for PyTorch,仅需 5 张示例图片即可通过 textual inversion 完成训练。
Hugging Face 发布教程,演示如何通过其托管 SaaS 服务 Inference Endpoints 部署开源 LLM,以 Falcon 40B instruct 为例,选用 1x Nvidia A100 实例,约 10 分钟即可上线。
Hugging Face 发布教程,演示如何用 Node.js 结合 WizardCoder-15B 与 Inference Endpoints API 构建流式生成 HTML 的 Web 应用生成器。模型通过 textGenerationStream 边生成边渲染页面,并借助 TailwindCSS 工具类实时生成样式,同时给出提示词调优与防幻觉的实践建议。
Writer 联合创始人兼 CTO Waseem Alshikh 与 Hugging Face 的 Jeff Boudier 对谈,讲述 Writer 从 Hugging Face 用户、客户到开源模型贡献者的历程。
Optimum Habana v1.7 在 Habana Gaudi2 上微调视觉语言模型 BridgeTower,相比 A100 提速 2.5 倍、相比 H100 提速 1.4 倍。该性能提升依赖硬件加速的数据加载,通过 dataloader_num_workers 参数分配专用子进程即可启用,适用于各类受数据加载制约的视觉模型工作负载。
Hugging Face 与 Panel 合作,在 Hugging Face Spaces 中集成了 Panel 模板,方便用户构建并部署 Panel 应用。Panel 是开源 Python 库,可构建工具、仪表盘和复杂应用,支持 Matplotlib、Plotly、Bokeh 等绘图库,并可通过 Pyodide 和 WebAssembly 在浏览器中运行。
Elixir 社区用 Livebook 构建了一个基于 Whisper 的语音聊天应用,并部署到 Hugging Face Spaces,全程不到 15 分钟。
Hugging Face 介绍如何借助 Core ML 的新优化在 iPhone、iPad 和 Mac 上更快运行 Stable Diffusion。Core ML 新增 6-bit palettization 量化,将权重从 16-bit 浮点压缩到每参数 6 bit,并在推理时逐层解压,从而减少存储和内存占用。
推荐理由:文章给出 6-bit palettization 的量化原理与转换命令,读者可据此在 Apple 设备上自行压缩并运行 Stable Diffusion。
Hugging Face 宣布 AMD 正式加入其硬件合作伙伴计划,双方将针对 AMD CPU 和 GPU 优化 Transformer 模型性能。
Hugging Face 发布教程,讲解如何在 Unity 游戏中通过 Hugging Face Unity API 实现语音识别,将语音转为文本,可用于下达指令、与 NPC 对话或提升无障碍体验。教程演示了搭建含开始/停止按钮与 TextMeshPro 文本框的场景,用 Microphone.Start() 以 44100 Hz 录制最长 10 秒音频,再编码为 WAV 格式发送至 API。
Hugging Face 发布面向 Amazon SageMaker 的 LLM 推理容器(DLC),由 Text Generation Inference(TGI)驱动,可部署 BLOOM、StarCoder、Llama、T5 等开源大模型。
Hugging Face 借助 OpenVINO 的 NNCF 与 Optimum,通过量化感知训练(QAT)结合 Token Merging 优化 Stable Diffusion 的 UNet,在 Intel CPU 上实现 5.1 倍推理加速和 4 倍模型体积缩减。优化从 Pokemons 数据集微调模型出发,仅需 4096 次迭代,单张 24 GB 显存 GPU 不到一天即可完成。
Hugging Face 与微软合作,在 Azure Machine Learning Studio 内推出 Hugging Face Hub 模型目录,收录数千个热门 Transformers 模型,用户可在托管端点上一键部署。该目录已在所有提供 Azure Machine Learning 的 Azure 区域开放公开预览,支持按任务或许可证筛选模型并部署为实时推理 API。
Hugging Face 联合 EleutherAI 和 Stability AI 委托 Trail of Bits 对 safetensors 库做外部安全审计,未发现可导致任意代码执行的关键安全漏洞,并修复了规范格式不精确和允许 polyglot 文件的校验缺失问题。
推荐理由:外部安全审计确认 safetensors 无任意代码执行漏洞,并给出其成为默认保存格式的推进节奏。
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 博客介绍 RWKV 架构已集成进 transformers 库,该架构结合 RNN 与 Transformer 的优势,由 Bo Peng 主导、Stability AI 捐赠训练 GPU。
推荐理由:RWKV 把 RNN 的推理效率与 Transformer 的并行训练结合,并已接入 transformers 库,读者可据此判断长上下文场景的选型空间。
Hugging Face 发布教程,介绍如何在单块 AMD GPU 上通过 ROCm 运行 13B 参数的 Vicuna 聊天机器人。Vicuna 由 UC Berkeley、CMU、斯坦福和 UCSD 团队基于 LLaMA 微调,训练成本约 300 美元,以 GPT-4 为参照的初步评估中质量达到 ChatGPT 的 90% 以上。
Hugging Face 发布辅助生成(assisted generation)方法,用一个比主模型小一个数量级、且共享同一 tokenizer 的助手模型先草拟候选 token,再由主模型一次前向验证,从而减少前向次数。
推荐理由:Hugging Face 官方给出辅助生成方法的原理与实测数据,读者可据此判断它是否适合自己现有的推理部署。
Hugging Face Unity API 是 Hugging Face Inference API 的集成,让开发者在 Unity 项目中调用 Hugging Face AI 模型。
Hugging Face 发布教程,演示如何用 🤗 Transformers 结合 TensorFlow 和 TPU 从零训练一个 RoBERTa base 模型,涵盖训练 tokenizer、处理 WikiText v1 数据集、生成 TFRecord 分片并上传至 Google Cloud Storage,再到最终模型训练的完整流程。
Hugging Face 博客介绍如何在免费版 Google Colab(13GB CPU 内存、15GB T4 显存)上用 diffusers 运行 DeepFloyd 的 IF 文生图模型。
推荐理由:原文给出在免费 Colab 上分阶段加载 IF 各组件并做 8bit 量化的完整步骤,可迁移到其他大模型的低显存部署。
Hugging Face 发布教程,介绍如何将 Unity 游戏托管到 Hugging Face Space。用户需创建 Static HTML 模板的 Space,将 Unity 项目构建目标切换为 WebGL,压缩格式设为 Disabled,再通过 Git-LFS 推送构建文件即可。教程还提供可选的 Hugging Face Unity WebGL 模板以美化游戏外观。
Hugging Face 与 AWS 合作,将 Hugging Face Transformers 针对 AWS Inferentia2 推理加速芯片进行优化,通过 optimum-neuron 只需一行代码即可编译模型。
Snorkel AI 与 Hugging Face 达成合作,将 Hugging Face 的 Inference Endpoints 集成进 Snorkel Flow 平台,让企业用户可直接调用其超过 150,000 个开源模型来适配自身用例。该服务支持一键创建模型 API,并具备“暂停与恢复”能力,可在客户需要时激活、不需要时休眠,从而控制成本。
Hugging Face 展示如何用 Optimum Habana 在 Habana Gaudi2 上部署 1760 亿参数的 BLOOMZ 并完成推理。基准测试中,8 卡 Gaudi2 生成 100 token 耗时 3.103 秒,比 A100 80GB 的 4.402 秒快 1.42 倍;BLOOMZ-7B 在 Gaudi2 上比 A100 快 2.89 倍。
Hugging Face 展示了在 Intel Sapphire Rapids CPU 上加速 Stable Diffusion 推理的多种技术,借助 Optimum Intel 与 OpenVINO。
Hugging Face 宣布改进 Hub 上 Jupyter Notebook 的托管支持,新增渲染功能,使原本为 JSON 格式的 ipynb 文件能以人类可读形式展示。Hub 目前已托管超 7,000 个 notebook,并支持一键在 Google Colab 中直接打开。
2023 年土耳其地震后,志愿者在 Hugging Face 上协作开发了救援地图应用 afetharita,用 easyocr 做 OCR、微调 bert-base-turkish-cased 做地址抽取,并通过 Inference API 部署。团队还用 NLI 模型与微调分类模型识别幸存者的住所、食物、物流等需求,并搭建 Space 对 F1 与召回率进行基准评测。
Witty Works 借助 Hugging Face Expert Acceleration Program,将写作助手的非包容性词汇检测从基础 spaCy 方案升级为 Sentence Transformers 架构,结合 SetFit 少样本微调,每个词仅需 15-20 条标注句子即可完成分类。