mymusise / ChatGLM-Tuning

基于ChatGLM-6B + LoRA的Fintune方案
MIT License
3.71k stars 444 forks source link

推理Can't find 'adapter_config.json' #219

Open jiayi37u opened 1 year ago

jiayi37u commented 1 year ago

首先推理代码

from peft import PeftModel
model = PeftModel.from_pretrained(model, "./output/")

不应该指定具体checkpoint文件吗? 指定了之后,报错Can't find 'adapter_config.json' at 'output/checkpoint-400'

请问如何解决?

xlm7 commented 1 year ago

dataset.save_to_disk(args.save_path) 这个之后会生成adapter_config.json adapter_model.bin 和 checkpoint-xxx文件,中间过程只有 checkpoint-xxx

jiayi37u commented 1 year ago

dataset.save_to_disk(args.save_path) 这个之后会生成adapter_config.json adapter_model.bin 和 checkpoint-xxx文件,中间过程只有 checkpoint-xxx

我运行tokenize_dataset_rows.py是得到dataset_info.json, state.json, data-00000-of-00001.arrow三个文件,没有理解你说的dataset.save_to_disk(args.save_path)之后生成是什么意思,在tokenization时不应该生成微调相关的配置文件吧


我的解决方案 my solution

model = AutoModel.from_pretrained(model_args.model_name_or_path, trust_remote_code=True, load_in_8bit=True, device_map='auto')
peft_path = "./output/checkpoint-10000/pytorch_model.bin"

peft_config = LoraConfig(
    task_type=TaskType.SEQ_2_SEQ_LM,
    inference_mode=True,
    r=8,
    lora_alpha=32, lora_dropout=0.1,
    target_modules=["query_key_value"],
)

model = get_peft_model(model, peft_config)
model.load_state_dict(torch.load(peft_path), strict=False)
torch.set_default_tensor_type(torch.cuda.FloatTensor)

这样能成功加载模型 this work

HIT-Owen commented 1 year ago

他这个代码必须要等他完全训练结束,checkpoint-xxx目录下面没有保存adapter_config.json,训练结束后在output/chatglm-6b-lora目录下面会有两个文件:adapter_config.json和adapter_model.bin

QJShan commented 1 year ago

大佬,请问你是怎么解决的,我在输出的目录里面还是找不到adapter_config.json

xlm7 commented 1 year ago

训练过程中保存的checkpoint文件里面有,如果没有这个文件的话,训练的时候设置 --save_steps 1000 调小一点