当前位置:AIGC资讯 > AIGC > 正文

baichuan-7B-chat微调报错及解决记录 使用的仓库:LLaMA-Factory 2023年11月27日

我所使用的代码仓库是LLaMA-Factoryhiyouga/LLaMA-Factory: Easy-to-use LLM fine-tuning framework (LLaMA, BLOOM, Mistral, Baichuan, Qwen, ChatGLM) (github.com)https://github.com/hiyouga/LLaMA-Factory/tree/main

A.解决问题推荐两个查询网址,在issue中查询:Issues · hiyouga/LLaMA-Factory (github.com)Issues · hiyouga/LLaMA-Factory (github.com)

和Issues · baichuan-inc/Baichuan2 (github.com)

B.baichuan-7B-chat模型下载到本地可以使用国内镜像,代码如下,cache_dir字段设置本地路径:
import os
import torch
import torch as torch
from modelscope import snapshot_download, AutoModelForCausalLM, AutoTokenizer, GenerationConfig

model_dir = snapshot_download("baichuan-inc/Baichuan2-7B-Chat", revision='v1.0.4', cache_dir='Base_LLMs')
tokenizer = AutoTokenizer.from_pretrained(model_dir, device_map="auto",
                              trust_remote_code=True, torch_dtype=torch.float16)
model = AutoModelForCausalLM.from_pretrained(model_dir, device_map="auto",
                              trust_remote_code=True, torch_dtype=torch.float16)

参考:百川2-7B-对话模型 · 模型库 (modelscope.cn)

1.报错:
    raise NotImplementedError(f"Loading a dataset cached in a {type(self._fs).__name__} is not supported.")
NotImplementedError: Loading a dataset cached in a LocalFileSystem is not supported.

解决办法:

pip install fsspec==2023.9.2

2.报错:
ValueError: Target modules ['q_proj', 'v_proj'] not found in the base model. Please check the target modules and try again.

我的配置是:

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path ./Base_LLMs/baichuan-inc/Baichuan2-7B-Chat \
    --do_train \
    --dataset jjxq \
    --template baichuan2 \
    --finetuning_type lora \
    --lora_target q_proj,v_proj \
    --output_dir ./new_baichuan_test \
    --overwrite_cache \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 8 \
    --quantization_bit 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --plot_loss \
    --fp16

解决办法:将 --lora_target q_proj,v_proj \改为

--lora_target q_proj,v_proj,W_pack \

还可参考下面链接中说明的各种模型参数:

LLaMA-Factory/README_zh.md at main · hiyouga/LLaMA-Factory (github.com)https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md#%E6%A8%A1%E5%9E%8B

3.报错:TypeError: sdp_kernel() got an unexpected keyword argument 'enable_mem_efficient'

解决办法:好像是torch版本的问题,2.0以上就没有问题了,pip install torch==2.0.1

或者pip install xformers -i https://pypi.tuna.tsinghua.edu.cn/simple,不加镜像我安装时这个包下载的很慢,也挺大的,注意加镜像。

可参考:Baichuan2-7B-Chat执行推理报错TypeError: sdp_kernel() got an unexpected keyword argument 'enable_mem_efficient' · Issue #111 · baichuan-inc/Baichuan2 (github.com)https://github.com/baichuan-inc/Baichuan2/issues/111

4.报错:在pip install xformers时遇到OSError: [Errno 28] No space left on device,经过一番研究,似乎由于多种原因而发生此错误。 有时是磁盘空间问题,有时是因为文件数量问题。 在这种情况下,似乎是因为容量。
$ df -h

df -h显示/盘空间用尽

解决办法:将其放在一个空间尚充足的目录(我设为了home下的一个自建目录),就可以顺利安装了,如下:

$ mkdir $HOME/tmp

$ export TMPDIR=$HOME/tmp

export TMPDIR=$HOME/tmp 该命令指定 tmp 目录。 此规范是临时的,在会话关闭时将被丢弃。

也可以扩容ubuntu–vg-ubuntu–lv,参考下面链接:Linux /dev/mapper/ubuntu–vg-ubuntu–lv磁盘满了 - 知乎 (zhihu.com)

更新时间 2023-12-24