使用AutoTrain微调Llama 2时出现PEFT版本兼容错误
问题:PEFT版本0.5.0.dev0仍触发兼容错误?
背景与操作步骤
我在Google Colab上使用AutoTrain完成了Llama 2的微调,使用的训练命令如下:
!autotrain llm --train --project_name "llm-vhsfinetune-200s" \ --model abhishek/llama-2-7b-hf-small-shards \ --data_path . \ --text_column text \ --use_peft \ --use_int4 \ --learning_rate 2e-4 \ --train_batch_size 2 \ --num_train_epochs 1 \ --model_max_length 1024 \ --trainer sft \ --push_to_hub \ --repo_id "soajan/llm2-vhsfinetune-200s" \ --block_size 1024 > training.log
训练完成后,尝试从Hugging Face加载并测试模型,代码如下:
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig model_id = "soajan/llm2-vhsfinetune-200s" bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16 ) tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map={"":0})
运行后出现如下错误:
ValueError: The version of PEFT you are using is not compatible, please use a version that is greater than 0.4.0
我检查到当前PEFT版本为0.5.0.dev0,请问为何仍会出现该兼容错误?
原因分析与解决办法
1. 版本号格式触发的判断逻辑问题
PEFT的版本检查逻辑只识别正式发布版的版本号格式,0.5.0.dev0属于开发预览版,版本号中的dev0后缀会让检查逻辑误判为版本低于要求的0.4.0。
2. 具体解决步骤
- 卸载当前开发版PEFT:
pip uninstall peft -y - 安装正式发布的稳定版PEFT(建议选最新版):
pip install peft>=0.4.0 --upgrade - 验证安装后的版本:
确认输出为类似import peft print(peft.__version__)0.6.2这类不带dev后缀的正式版本号即可。
3. 额外注意点
- 若AutoTrain依赖特定PEFT版本,重新安装后重启Colab运行时,再执行加载模型的代码就能正常运行。
- Colab环境偶尔会存在依赖缓存冲突,重启运行时能有效解决这类问题。
内容的提问来源于stack exchange,提问作者SoajanII
相关产品推荐
相关产品推荐

