使用LLaMA-Factory进行模型量化

打印 上一主题 下一主题

主题 1583|帖子 1583|积分 4749


使用LLaMA-Factory进行模型量化

以下实验基于微调后模型进行量化。针对基座模型的直接量化,可以使用与部署中使用的数据类型紧密匹配的公开通用数据集作为校准数据集量化(恣意数据集)该部门可以参考使用llm-compressor。
量化方法

LLaMA-Factory 支持多种量化方法,包括:


  • AQLM
  • AWQ
  • GPTQ
  • QLoRA

  • GPTQ 等后训练量化方法(Post Training Quantization)是一种在训练后对预训练模型进行量化的方法。
量化导出

使用GPTQ和AWQ等后训练量化方法对模型进行量化时,需要进行以下步骤:(即使直接使用AutoAWQ和AutoGPTQ对qwen进行量化都需要进行以下步骤)

  • 对模型进行微调
  • 构建校准数据集
  • 将微调后模型进行量化导出
以下是量化导出时使用的yaml文件以及其中的底子参数
  1. ### examples/merge_lora/llama3_gptq.yaml
  2. ### model
  3. model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct #预训练模型的名称或路径
  4. template: llama3 #模型模板
  5. ### export
  6. export_dir: models/llama3_gptq    # 导出路径
  7. export_quantization_bit: 4    #量化位数[8, 4, 3, 2]
  8. export_quantization_dataset: data/c4_demo.json   #量化校准数据集
  9. export_size: 2    #最大导出模型文件大小
  10. export_device: cpu   #导出设备,还可以为cuda
  11. export_legacy_format: false  #是否使用旧格式导出
复制代码
当使用参数export_quantization_bit时直接使用auto-gptq
校准数据集

格式需要严格参考以下形式:



  • 使用训练集进行构造
  • 构造方式:instruction+input+ouput=>text
  • 校准数据集不用很大,默认只会用 128 个样本
  • 格式转换代码路径:/project/LLaMA-Factory_test2/datasets_convert_quanti_datasets.py
llamafactory对校准数据集进行采样时,如果样本长度太短会爆出以下错误:

解决方法:设置export_quantization_maxlen稍小一些即可
  1. ### model
  2. model_name_or_path: model_path_dir
  3. template: qwen
  4. ### export
  5. export_dir: save_dir
  6. export_quantization_bit: 4
  7. export_quantization_maxlen: 300
  8. export_quantization_dataset: /datasets/demo.json
  9. export_size: 2
  10. export_device: cuda
  11. export_legacy_format: false
复制代码
留意事项

由于GPU硬件支持参数精度有规定,在部署量化模型时需要考虑设备性能。

  • nvidia服务器硬件支持精度参数:
    https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html#hardware-precision-matrix
  • GPU计算能力:
    https://developer.nvidia.com/cuda-gpus#collapseOne

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表