ChatGLM-Efficient-Tuning icon indicating copy to clipboard operation
ChatGLM-Efficient-Tuning copied to clipboard

ChatGLM-6b lora微调出错,label ids全为-100

Open fslongjin opened this issue 2 years ago • 12 comments

使用的命令如下,并且更换了数据集也是一样的情况。

CUDA_VISIBLE_DEVICES=0 python src/train_sft.py \
    --do_train \
    --dataset alpaca_gpt4_zh \
    --dataset_dir data \
    --finetuning_type lora \
    --output_dir finetunev1_alpaca \
    --overwrite_cache \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --plot_loss \
    --fp16 \
    --model_name_or_path /root/autodl-tmp/models/chatglm-6b

image

fslongjin avatar Jun 27 '23 04:06 fslongjin

更新到最新项目代码试试

70557dzqc avatar Jun 27 '23 05:06 70557dzqc

更新到最新项目代码试试

是刚刚clone的

fslongjin avatar Jun 27 '23 05:06 fslongjin

更新到最新项目代码试试

是刚刚clone的

image 相同的参数,唯一的区别是model_name_or_path换成了我这里的模型

70557dzqc avatar Jun 27 '23 06:06 70557dzqc

这个问题我也出现了 代码最近更新支持了GLM2,然后老的就会出现全部-100的情况,试着用老代码(至少三天前的)

AlphaINF avatar Jun 27 '23 08:06 AlphaINF

感谢反馈,我检查一下

hiyouga avatar Jun 27 '23 08:06 hiyouga

你使用的是 ChatGLM 还是 ChatGLM2?如果是2必须要加 --use_v2 参数

hiyouga avatar Jun 27 '23 10:06 hiyouga

你使用的是 ChatGLM 还是 ChatGLM2?如果是2必须要加 --use_v2 参数

是chatglm,出现-100的问题。 v2的话,使用羊驼数据集lora微调,参数和上面相似(加use_v2),会有一定概率复读。

fslongjin avatar Jun 28 '23 05:06 fslongjin

这个问题我也出现了 代码最近更新支持了GLM2,然后老的就会出现全部-100的情况,试着用老代码(至少三天前的)

哦哦好的!

fslongjin avatar Jun 28 '23 05:06 fslongjin

chatglm 的问题应该也修复了一些,更新一下再试试

hiyouga avatar Jun 28 '23 05:06 hiyouga

GLM2最新代码,freeze训练保存时,会出现以下报错:

06/28/2023 15:30:10 - INFO - utils.peft_trainer - Saving model checkpoint to ./output/cognition
[INFO|configuration_utils.py:458] 2023-06-28 15:30:12,155 >> Configuration saved in ./output/cognition/config.json
[INFO|configuration_utils.py:364] 2023-06-28 15:30:12,155 >> Configuration saved in ./output/cognition/generation_config.json
[INFO|modeling_utils.py:1829] 2023-06-28 15:30:14,060 >> Model weights saved in ./output/cognition/pytorch_model.bin
[INFO|tokenization_utils_base.py:2181] 2023-06-28 15:30:14,275 >> tokenizer config file saved in ./output/cognition/tokenizer_config.json
[INFO|tokenization_utils_base.py:2188] 2023-06-28 15:30:14,275 >> Special tokens file saved in ./output/cognition/special_tokens_map.json
Traceback (most recent call last):
  File "src/train_sft.py", line 105, in <module>
    main()
  File "src/train_sft.py", line 77, in main
    trainer.save_model()
  File "/root/miniconda3/envs/llm/lib/python3.8/site-packages/transformers/trainer.py", line 2866, in save_model
    self._save(output_dir)
  File "/root/autodl-tmp/workspace-liwh/ChatGLM-Efficient-Tuning/src/utils/peft_trainer.py", line 114, in _save
    self.tokenizer.save_pretrained(output_dir)
  File "/root/miniconda3/envs/llm/lib/python3.8/site-packages/transformers/tokenization_utils_base.py", line 2192, in save_pretrained
    save_files = self._save_pretrained(
  File "/root/miniconda3/envs/llm/lib/python3.8/site-packages/transformers/tokenization_utils_base.py", line 2240, in _save_pretrained
    vocab_files = self.save_vocabulary(save_directory, filename_prefix=filename_prefix)
  File "/root/.cache/huggingface/modules/transformers_modules/chatglm2-6b/tokenization_chatglm.py", line 137, in save_vocabulary
    with open(self.vocab_file, 'rb') as fin:
AttributeError: 'ChatGLMTokenizer' object has no attribute 'vocab_file'

fslongjin avatar Jun 28 '23 07:06 fslongjin

@fslongjin 从 huggingface 上面更新一下 ChatGLM2 的几个 python 文件

hiyouga avatar Jun 28 '23 07:06 hiyouga

从 huggingface 上面更新一下 ChatGLM2 的几个 python 文件

好的,感谢

fslongjin avatar Jun 28 '23 07:06 fslongjin