2023年7月1日 05:37
- 环境
Linux 云平台 autodl 花费 10元左右
配置是24G的显存,3090显卡。
为什么选择这款配置?因为我在本机6G 显卡折腾好久没有成功。 用的 6b-int4 版本,网上都说可以成功。折腾我好久。所以干脆用云24G的实验了。
- 下载源代码
git clone https://github.com/THUDM/ChatGLM-6B
cd ChatGLM-6B
pip3 install -r requirements.txt
- 进入微调
cd ptuning
pip3 install rouge_chinese nltk jieba datasets
- 下载 需要例子数据
wget -O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
tar xvf AdvertiseGen.tar.gz
下载后需要展开。
- 修改 源文件
为什么要修改,如果不修改 总是 按照多gpu处理,我没有多gpu,并且即使是多GPU,也需要修改代码
这里有讨论
https://github.com/THUDM/ChatGLM-6B/issues/1169
我的方法如下:
ptuning/main.py
59
60 training_args.local_rank = -1
61
增加上面这句
- 开始 工作
P-Tuning v2
bash train.sh
- 如果你需要 微调
24G 显存不够
需要再修改
增加 Lora
pip3 install deepspeed
vim ds_train_finetune.sh
--per_device_train_batch_size 4 \ 修改为1
--num_gpus=4 修改为1
vim main.py
头部 增加 :
from peft import get_peft_model, LoraConfig, TaskType
第 136行 增加 下面的代码:
peft_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
inference_mode=False,
r=finetune_args.lora_rank,
lora_alpha=32,
lora_dropout=0.1,
target_modules=["query_key_value"],
)
model = get_peft_model(model, peft_config)
以上可以 在24G显存测试通过。