大模子开发和微调工具Llama-Factory-->LoRA归并

[复制链接]
发表于 2024-12-2 18:34:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
LoRA 归并

当我们基于预训练模子训练好 LoRA 适配器后,我们不希望在每次推理的时候分别加载预训练模子和 LoRA 适配器,因此我们需要将预训练模子和 LoRA 适配器归并导出成一个模子。根据是否量化以及量化算法的差别,导出的设置文件有所区别。
1.指令

可以通过  llamafactory-cli export merge_config.yaml 来归并模子。其中 merge_config.yaml 需要根据差别的情况进行设置。
2.量化

量化通过数据精度压缩有效的减少了显存利用并加速推理。LLaMA- Factory 支持多种量化方法,包括


  • AQLM
  • AWQ
  • GPTQ
  • QLoRA

1.后训练量化方法

GPTQ 等**后训练量化方法(Post Training Quantization)**是一种在训练后对预训练模子进行量化的方法。
我们通过量化技术将高精度表现的预训练模子转换为低精度的模子,从而在避免过多损失模子性能的情况下减少显存占用并加速推理,我们希望低精度数据类型在有限的表现范围内尽大概地接近高精度数据类型的表现
因此我们需要指定量化位数 export_quantization_bit 以及校准数据集 export_quantization_dataset。
   在进行模子归并时,请指定:
  

  • model_name_or_path: 预训练模子的名称或路径
  • template: 模子模板
  • export_dir: 导出路径
  • export_quantization_bit: 量化位数
  • export_quantization_dataset: 量化校准数据集
  • export_size: 最大导出模子文件大小
  • export_device: 导出装备
  • export_legacy_format: 是否利用旧格式导出
  设置文件实例
  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. export_quantization_dataset: data/c4_demo.json
  9. export_size: 2
  10. export_device: cpu
  11. export_legacy_format: false
复制代码
2.QLoRA

QLoRA 是一种在 4-bit 量化模子基础上利用 LoRA 方法进行训练的技术。它在极大地保持了模子性能的同时大幅减少了显存占用和推理时间。
   不要利用量化模子或设置量化位数 quantization_bit
  1. ### examples/merge_lora/llama3_q_lora.yaml
  2. ### model
  3. model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
  4. adapter_name_or_path: saves/llama3-8b/lora/sft
  5. template: llama3
  6. finetuning_type: lora
  7. ### export
  8. export_dir: models/llama3_lora_sft
  9. export_size: 2
  10. export_device: cpu
  11. export_legacy_format: false
复制代码
3.归并

examples/merge_lora/llama3_lora_sft.yaml 提供了归并时的设置示例
  1. ### examples/merge_lora/llama3_lora_sft.yaml
  2. ### model
  3. model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
  4. adapter_name_or_path: saves/llama3-8b/lora/sft
  5. template: llama3
  6. finetuning_type: lora
  7. ### export
  8. export_dir: models/llama3_lora_sft
  9. export_size: 2
  10. export_device: cpu
  11. export_legacy_format: false
复制代码
  Note
  

  • 模子 model_name_or_path 需要存在且与 template 相对应。
  • adapter_name_or_path 需要与微调中的适配器输出路径 output_dir 相对应。
  • 归并 LoRA 适配器时,不要利用量化模子或指定量化位数。您可以利用本地或下载的未量化的预训练模子进行归并。

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

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-13 00:13 , Processed in 0.081457 second(s), 28 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

快速回复 返回顶部 返回列表