使用 AutoGPTQ 和 transformers 让大语言模型更轻量化

大语言模型在理解和生成人类水平的文字方面所展现出的非凡能力,正在许多领域带来应用上的革新。然而,在消费级硬件上训练和部署大语言模型的需求也变得越来越难以满足。

🤗 Hugging Face 的核心使命是 让优秀的机器学习普惠化 ,而这正包括了尽可能地让所有人都能够使用上大模型。本着 与 bitsandbytes 合作 一样的精神,我们将 AutoGPTQ 代码库集成到了 Transformers 中,让用户使用 GPTQ 算法 (Frantar et al. 2023) 在 8 位、4 位、3 位,甚至是 2 位精度下量化和运行模型成为可能。当使用 int4 量化时,精度的下降可以忽略不计,同时在小批量推理上保持着与 fp16 基线相当的速度。需要注意的是,GPTQ 方法与 bitsandbytes 提出的训练后量化方法有所不同: 它需要在量化阶段提供一个校准数据集。

本次集成支持英伟达 GPU 和基于 RoCm 的 AMD GPU。

目录

  • 相关资源

  • GPTQ 论文总结

  • AutoGPTQ 代码库——一站式地将 GPTQ 方法应用于大语言模型

  • 🤗 Transformers 对 GPTQ 模型的本地化支持

  • 使用 Optimum 代码库 量化模型

  • 通过 Text-Generation-Inference 使用 GPTQ 模型

  • 使用 PEFT 微调量化后的模型

  • 改进空间

    • 已支持的模型

  • 结论和结语

  • 致谢

相关资源

本文及相关版本发布提供了一些资源来帮助用户开启 GPTQ 量化的旅程:

  • 原始论文

  • 运行于 Google Colab 笔记本上的基础用例 —— 该笔记本上的用例展示了如何使用 GPTQ 方法量化你的 transformers 模型、如何进行量化模型的推理,以及如何使用量化后的模型进行微调。

  • Transformers 中集成 GPTQ 的 说明文档

  • Optimum 中集成 GPTQ 的 说明文档

  • TheBloke 模型仓库 中的 GPTQ 模型。

GPTQ 论文总结

通常,量化方法可以分为以下两类:

  1. 训练后量化 (Post Training Quantization, PTQ): 适度地使用一些资源来量化预训练好的模型,如一个校准数据集和几小时的算力。

  2. 量化感知训练 (Quantization Aware Training, QAT): 在训练或进一步微调之前执行量化。

GPTQ 属于训练后量化,这对于大模型而言格外有趣且有意义,因为对其进行全参数训练以及甚至仅仅是微调都十分昂贵。

具体而言,GPTQ 采用 int4/fp16 (W4A16) 的混合量化方案,其中模型权重被量化为 int4 数值类型,而激活值则保留在 float16。在推理阶段,模型权重被动态地反量化回 float16 并在该数值类型下进行实际的运算。

该方案有以下两方面的优点:

  • int4 量化能够节省接近4倍的内存,这是因为反

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值