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

BitsAndBytesConfig量化及注意事项

基础操作

# 设置参数,4bit量化的默认参数,可适用大部分场景
quantization_config = BitsAndBytesConfig(load_in_4bit=True,bnb_4bit_quant_type="nf4",bnb_4bit_use_double_quant=True,bnb_4bit_compute_dtype=torch.bfloat16,llm_int8_skip_modules=["resampler", "lm_head"])
# 加载模型时载入上述参数,即可实现量化
model = FM9GV.from_pretrained(model_file,attn_implementation='sdpa', torch_dtype=torch.bfloat16,quantization_config=quantization_config)

QLoRA

QLoRA的实现原理其实是:

  1. 对原模型进行量化,从而减少训练时原参数的显存占用
  2. 使用LoRA增加额外需要微调的参数,这部分参数不量化

QLoRA Demo

可能出现的问题

(1)一些模块不能量化
对于VLM,在vpm(视觉特征提取器)和llm之间会有resampler,一些resampler使用了nn.MultiheadAttention。似乎是BitsAndBytesConfig的bug,直接对nn.MultiheadAttention量化会报错,如下:

RuntimeError: self and mat2 must have the same dtype, but got BFloat16 and Byte

所以在llm_int8_skip_modules中加入"resampler",代表不对模型中的self.resampler进行量化。
同理,测试发现"lm_head"也不能量化,否则报错。

http://www.dtcms.com/a/265787.html

相关文章:

  • 明远智睿H618:开启多场景智慧生活新时代
  • 代码随想录打卡第五天
  • TinyWebserver学习(8)-定时器
  • 深度解析:venv和conda如何解决依赖冲突难题
  • 使用netstat与grep命令结合批量查找特定内容
  • Class3图像分类数据集代码
  • 数学建模_时间序列
  • CTF Web PHP弱类型与进制绕过(过滤)
  • 【云计算】企业项目 策略授权
  • 网络层:ip协议 与数据链路层
  • C++反射之获取可调用对象的详细信息
  • 《Spring 中上下文传递的那些事儿》Part 2:Web 请求上下文 —— RequestContextHolder 与异步处理
  • 低代码实战训练营教学大纲 (10天)
  • Linux之Socket 编程 UDP
  • 自然光实时渲染~三维场景中的全局光照
  • osg加入实时光照SilverLining 天空和3D 云
  • 租车小程序电动车租赁小程序php方案
  • Flutter 3.29+使用isar构建失败
  • 创客匠人视角:知识变现与创始人 IP 打造的破局之道
  • centos7源码编译安装python3
  • SSM和SpringBoot框架的关系
  • 关于微前端框架micro,子应用设置--el-primary-color失效的问题
  • FPGA从零到一实现FOC(一)之PWM模块设计
  • 火语言 RPA:突破企业自动化瓶颈,释放数字生产力​
  • Linux基本命令篇 —— zip/unzip命令
  • Apache Commons Pool中的GenericObjectPool详解
  • 华为Freebuds 6i新音效,设置后音质敲好!
  • Nginx安全配置漏洞修复实战指南
  • 百度文心智能体平台x小米应用商店:联手打造行业首个智能体与应用市场跨端分发模式
  • React 强大的表单验证库formik之集成Yup、React Hook Form库