当前位置: 首页 > 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.lryc.cn/news/579633.html

相关文章:

  • Mysql锁机制与优化实践以及MVCC底层原理剖析
  • Unity单元测试框架在keil环境下的移植教程
  • Unity3D 文件夹注释工具
  • CTF Web的数组巧用
  • 互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
  • STM32-第二节-GPIO输入(按键,传感器)
  • Linux基本指令(下)
  • 建设工程停工损失从哪些方面取证,如何取证?
  • 经典灰狼算法+编码器+双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者:机器学习之心!
  • 在鸿蒙(HarmonyOS)中安装 .app 格式的应用包(即 HAP 或 APP 文件),可以通过以下方法实现
  • 服务器如何配置SSH密钥登录提高安全性?
  • 基于Anything LLM的本地知识库系统远程访问实现路径
  • vue2+elementui使用compressorjs压缩上传的图片
  • 机器人“触摸”水果成熟度突破:SwishFormer模型与DIGIT视触觉传感器在HelloRobot上的水果检测应用
  • 从0到1解锁Element-Plus组件二次封装El-Dialog动态调用
  • Unity-Shader-几何着色器
  • 学习设计模式《十六》——策略模式
  • Linux 73 LAMP4
  • 离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制
  • 从0开始学习R语言--Day37--CMH检验
  • VR 果蔬运输开启农业物流新变革
  • AI无标记动捕如何结合VR大空间技术打造沉浸式游戏体验
  • 从0到1实战!用Docker部署Qwerty Learner输入法的完整实践过程
  • https如何利用工具ssl证书;使用自己生成的证书
  • 创建 TransactionStatus
  • rabbitmq 与 Erlang 的版本对照表 win10 安装方法
  • Debian-10-standard用`networking`服务的`/etc/network/interfaces`配置文件设置多网卡多IPv6
  • 贝叶斯深度学习:赋予AI不确定性感知的认知革命
  • 日本IT|日本做后端开发需要具备什么技能开发经验?
  • 深入理解CSS中的BFC 与IFC , 布局的两大基础概念