You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Unsloth微调Llama3模型时遇bitsandbytes兼容与显存错误求助

解决Unsloth微调Llama3时的bitsandbytes兼容与显存分配错误

一、修复bitsandbytes版本兼容问题

错误日志明确指出当前bitsandbytes版本不支持4位推理/训练,需升级到适配CUDA 12.1的版本:

pip uninstall -y bitsandbytes
pip install bitsandbytes==0.43.1 --upgrade

该版本对CUDA 12.x系列支持完善,能解决4bit模式下的兼容性问题。

二、解决GPU显存分配异常问题

RTX 4090的24G显存理论上足以容纳8B 4bit量化模型,出现模块被分配到CPU/磁盘的情况,可尝试以下方案:

1. 强制模型全加载到GPU

修改加载代码,指定device_map为cuda,同时暂时降低max_seq_length测试:

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/llama-3-8b-bnb-4bit",
    max_seq_length = 2048,  # 先使用较小序列长度排查问题
    dtype = None,
    load_in_4bit = True,
    device_map = "cuda",
)

2. 启用梯度检查点降低显存占用

如果显存仍有压力,开启梯度检查点功能,进一步减少显存消耗:

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "unsloth/llama-3-8b-bnb-4bit",
    max_seq_length = max_seq_length,
    dtype = None,
    load_in_4bit = True,
    use_gradient_checkpointing = True,
    device_map = "auto",
)

3. 清理GPU占用进程

在WSL终端执行nvidia-smi查看当前GPU显存占用,关闭其他无关进程(如闲置的Python脚本、图形界面程序等)释放显存。

三、WSL环境额外优化

  • 确保WSL2的CUDA驱动版本与主机端一致,避免版本不匹配导致的异常
  • 设置环境变量确保bitsandbytes正确识别CUDA:
export BITSANDBYTES_NOWELCOME=1
export CUDA_PATH=/usr/local/cuda-12.1

内容的提问来源于stack exchange,提问作者yts61

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:47:32