Project Icon

auto-round

针对大语言模型的高效量化算法

AutoRound是一种针对大语言模型(LLM)的高效量化算法。通过符号梯度下降优化权重舍入和范围,仅需200步迭代即可达到业界领先水平,且不增加推理开销。该算法支持OPT、BLOOM、GPT-J等多种模型,提供混合精度量化、激活量化等实验功能,并兼容Intel Gaudi2硬件。AutoRound提供简洁的Python接口,方便用户进行模型量化和推理。

AutoRound

用于大语言模型的高级量化算法

python version license

AutoRound是一种用于低位大语言模型推理的高级量化算法。它适用于广泛的模型。我们的方法采用符号梯度下降来微调权重的舍入值和最大最小值,只需200步就能与最新方法竞争,而且不会引入额外的推理开销,并保持较低的调优成本。下图展示了AutoRound的概述。更多详情请查看我们在arxiv上的论文,访问low_bit_open_llm_leaderboard可查看各种模型的更多准确性数据。

最新动态

  • [2024/08] AutoRound格式支持Intel Gaudi2设备。示例请参考Intel/Qwen2-7B-int4-inc
  • [2024/08] AutoRound增加了几个实验性功能,如激活量化、mx_fp数据类型和范数/偏置参数的快速调优。
  • [2024/07] 重要变更:nsamples的默认值从512改为128,以减少内存使用,在某些情况下可能会导致轻微的精度下降。
  • [2024/06] AutoRound格式支持推理时混合位宽和组大小,解决了非对称内核导致的显著性能下降问题。
  • [2024/05] AutoRound支持lm-head量化,在W4G128下为LLaMA3-8B节省0.7G内存。

先决条件

  • Python 3.9或更高版本

安装

从源代码构建

pip install -vvv --no-build-isolation -e .
或
pip install -r requirements.txt
python setup.py install

从pypi安装

pip install auto-round

模型量化

Gaudi2/ CPU/ GPU

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "facebook/opt-125m"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

from auto_round import AutoRound

bits, group_size, sym = 4, 128, False
autoround = AutoRound(model, tokenizer, bits=bits, group_size=group_size, sym=sym)
autoround.quantize()
output_dir = "./tmp_autoround"
autoround.save_quantized(output_dir)  ##save_quantized(output_dir,format="auto_gptq")
详细超参数
  • model: 要量化的PyTorch模型。

  • tokenizer: 用于处理输入数据的可选分词器。如果没有,必须提供数据集。

  • bits (int): 量化的位数(默认为4)。

  • group_size (int): 量化组的大小(默认为128)。

  • sym (bool): 是否使用对称量化(默认为False)。

  • enable_quanted_input (bool): 是否使用前一个量化块的输出作为当前块的输入进行调优(默认为True)。

  • enable_minmax_tuning (bool): 是否启用权重最小-最大值调优(默认为True)。

  • iters (int): 调优迭代次数(默认为200)。

  • lr (float): 舍入值的学习率(默认为None,将自动设置为1.0/iters)。

  • minmax_lr (float): 最小-最大值调优的学习率(默认为None,将自动设置为lr)。

  • nsamples (int): 用于调优的样本数(默认为128)。

  • seqlen (int): 用于调优的序列数据长度(默认为2048)。

  • batch_size (int): 训练的批量大小(默认为8)。

  • scale_dtype (str): 要使用的量化比例的数据类型(默认为"float16"),不同的内核有不同的选择。

  • amp (bool): 是否使用自动混合精度(默认为True)。

  • nblocks (int): 打包几个块作为一个进行调优(默认为1)。

  • gradient_accumulate_steps (int): 梯度累积步数(默认为1)。

  • low_gpu_mem_usage (bool): 是否以~20%更多调优时间为代价节省GPU内存(默认为False)。

  • dataset Union[str, list, tuple, torch.utils.data.DataLoader]: 用于调优的数据集名称(默认为"NeelNanda/pile-10k")。支持本地json文件和数据集组合,例如"./tmp.json,NeelNanda/pile-10k:train, mbpp:train+validation+test"。

  • layer_config (dict): 权重量化的配置(默认为空字典),主要用于混合位宽或混合精度。

  • device: 用于调优的设备。默认设置为'auto',允许自动检测。

提示

1 考虑增加'iters'(例如1000)以获得更好的结果,但会增加调优时间。

2 考虑增加'nsamples'(例如512)以获得更好的结果,但会使用更多内存(~20G)。

3 将'minmax_lr'设置为2.0/iters有时会产生更好的结果。

模型推理

请先运行量化代码

AutoRound格式

cuda: git clone https://github.com/intel/auto-round.git && cd auto-round && pip install -vvv --no-build-isolation -e .

cpu:

  • 选项1: pip install auto-round && pip install intel-extension-for-transformers
  • 选项2: git clone https://github.com/intel/auto-round.git && cd auto-round && pip install -vvv --no-build-isolation -e .

hpu: 推荐使用带有Gaudi软件栈的docker镜像。更多详情可以在Gaudi指南中找到。

Gaudi2/ CPU/ GPU

from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRoundConfig

device = "auto"  ##cpu, hpu, cuda
quantization_config = AutoRoundConfig(
    backend=device
)
quantized_model_path = "./tmp_autoround"
model = AutoModelForCausalLM.from_pretrained(quantized_model_path,
                                             device_map=device, quantization_config=quantization_config)
tokenizer = AutoTokenizer.from_pretrained(quantized_model_path)
text = "There is a girl who likes adventure,"
inputs = tokenizer(text, return_tensors="pt").to(model.device)
print(tokenizer.decode(model.generate(**inputs, max_new_tokens=50)[0]))

AutoGPTQ/AutoAWQ格式

1 请通过修改以下代码来保存量化模型:autoround.save_quantized(output_dir, format="auto_gptq")autoround.save_quantized(output_dir, format="auto_awq")

2 参考他们的仓库来推理模型。

支持列表

模型支持
Qwen/Qwen2-7BHF-int4模型
Qwen/Qwen2-57B-A14B-InstructHF-int4模型
Intel/neural-chat-7b-v3-3HF-int4模型, 准确性, 配方, 示例
Intel/neural-chat-7b-v3-1HF-int4模型, 准确性, 配方, 示例
mistralai/Mistral-7B-v0.1HF-int4模型-lmhead, HF-int4模型, 准确性, 配方, 示例
microsoft/phi-2HF-int4-sym模型, 准确性, 配方, 示例
google/gemma-2bHF-int4模型, 准确性, 配方, 示例
tiiuae/falcon-7bHF-int4模型-G64, 准确性, 配方, 示例
mistralai/Mistral-7B-Instruct-v0.2HF-int4模型 (审核中), 准确性, 配方, 示例
mistralai/Mixtral-8x7B-Instruct-v0.1HF-int4模型 (审核中), 准确性, 配方, 示例
mistralai/Mixtral-8x7B-v0.1HF-int4模型 (审核中), 准确性, 配方, 示例
meta-llama/Meta-Llama-3-8B-Instruct准确性, 配方, 示例
google/gemma-7b准确性, 配方, 示例
meta-llama/Llama-2-7b-chat-hf准确性, 配方, 示例
Qwen/Qwen1.5-7B-Chat准确性, 对称配方, 非对称配方, 示例
baichuan-inc/Baichuan2-7B-Chat准确性, 配方, 示例
01-ai/Yi-6B-Chat准确度, 配方, 示例
facebook/opt-2.7b准确度, 配方, 示例
bigscience/bloom-3b准确度, 配方, 示例
EleutherAI/gpt-j-6b准确度, 配方, 示例
Salesforce/codegen25-7b-multi示例
huggyllama/llama-7b示例
mosaicml/mpt-7b示例
THUDM/chatglm3-6b示例
MBZUAI/LaMini-GPT-124M示例
EleutherAI/gpt-neo-125m示例
databricks/dolly-v2-3b示例
stabilityai/stablelm-base-alpha-3b示例

参考文献

如果您发现 AutoRound 对您的研究有用,请引用我们的论文:

@article{cheng2023optimize,
  title={通过符号梯度下降优化权重舍入以实现大型语言模型的量化},
  author={程文华 and 张伟伟 and 沈海浩 and 蔡一扬 and 何鑫 and 吕考考 and 刘毅},
  journal={arXiv预印本 arXiv:2309.05516},
  year={2023}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号
ml>