当前位置: 首页 > news >正文

ValueError: You cannot perform fine-tuning on purely quantized models.

在使用peft 微调8bit 或者4bit 模型的时候,可能会报错:

You cannot perform fine-tuning on purely quantized models. Please attach trainable adapters on top of the quantized model to correctly perform fine-tuning. Please see: https://huggingface.co/docs/transformers/peft for more details"

查看trainer.py 代码

# At this stage the model is already loaded
if _is_quantized_and_base_model and not _is_peft_model(model):raise ValueError("You cannot perform fine-tuning on purely quantized models. Please attach trainable adapters on top of"" the quantized model to correctly perform fine-tuning. Please see: https://huggingface.co/docs/transformers/peft"" for more details")

_is_quantized_and_base_model检查是否是量化模型

 _is_quantized_and_base_model = getattr(model, "is_quantized", False) and not getattr(model, "_hf_peft_config_loaded", False)

_is_peft_model检查是否是PeftModel或者PeftMixedModel

def _is_peft_model(model):if is_peft_available():classes_to_check = (PeftModel,) if is_peft_available() else ()# Here we also check if the model is an instance of `PeftMixedModel` introduced in peft>=0.7.0: https://github.com/huggingface/transformers/pull/28321if version.parse(importlib.metadata.version("peft")) >= version.parse("0.7.0"):from peft import PeftMixedModelclasses_to_check = (*classes_to_check, PeftMixedModel)return isinstance(model, classes_to_check)return False

DEBUG:

1.加载模型的时候已经设置了量化参数,确定是量化模型;
2.使用了model = get_peft_model(model, config),为什么不是PeftModel,那model是什么类型呢?

<class 'src.peft.peft_model.PeftModelForCausalLM'>

这是因为在测试peft代码的时候,设置了使用本地peft代码,而不是安装的peft库,就导致类型出现了错误。

from src.peft import LoraConfig, TaskType, get_peft_model
改为
from peft import LoraConfig, TaskType, get_peft_model

修改后就可以训练了。

http://www.lryc.cn/news/458988.html

相关文章:

  • DELL R720服务器阵列数据恢复,磁盘状态为Foreign
  • VMDK 0X80BB0005 VirtualBOX虚拟机错误处理-数据恢复——未来之窗数据恢复
  • 【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL67
  • 51、AVR、ARM、DSP等常用芯片之对比
  • PostgreSQL 和Oracle 表压缩的对比
  • 【pyspark学习从入门到精通3】弹性分布式数据集_1
  • 宠物健康监测仪健康守护者
  • 手写mybatis之解析和使用ResultMap映射参数配置
  • LDR6500:低成本一拖二快充线解决方案
  • DS线性表之单链表的讲解和实现(2)
  • LeetCode 73 Set Matrix Zeroes 题目解析和python代码
  • 鸿蒙--WaterFlow 实现商城首页
  • QT 中如何保存matlab 能打开的.mat数据矩阵!
  • 菱形继承(多继承)
  • 【功能安全】什么是Aspice?
  • 基于SpringBoot的国家基础信息管理功能的设计与实现
  • Python酷库之旅-第三方库Pandas(145)
  • 最懂生活的年轻人,都在喝十元奶茶
  • MinIO 学习订阅服务
  • 【D3.js in Action 3 精译_029】3.5 给 D3 条形图加注图表标签(上)
  • 用python做一个简单的画板
  • 根据传入的文件流链接实现前端下载
  • 大数据新视界 --大数据大厂之大数据环境下的零信任安全架构:构建可靠防护体系
  • 基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
  • 【C++设计模式】行为型模式:观察者模式
  • 本篇5K,立志最细,FreeRtos中的信号量Semaphore教程详解!!!
  • 【Postman】接口测试工具使用
  • springboot 整合 rabbitMQ(1)
  • Appium Device Farm安装教程
  • 异常、基类