XiongZhongBo

Results 31 comments of XiongZhongBo

p-tuning 法估计官网有bug。需要调整。现在无法使用

> 这是正常的 因为我微调后也这样了 这显然不正常。

> > > 这是正常的 因为我微调后也这样了 > > > 这显然不正常。 > > 如果你理解ptuning在干什么,这显然正常。 本来一个对话模型,现在把输入变成非流畅文本,每层还额外加入prompt,怎么可能保留之前的能力。 如果你需要保留对话能力,肯定要把输入指令全部改写成人话,并且用lora的方式仅微调q、v来减少影响。我理解ptuning这种引入额外结构的根本不适用在这种场景下。 如果这样的话微调法,没有任何意义了。

> > > > 这是正常的 因为我微调后也这样了 > > > > 这显然不正常。 > > > > > > 如果你理解ptuning在干什么,这显然正常。 本来一个对话模型,现在把输入变成非流畅文本,每层还额外加入prompt,怎么可能保留之前的能力。 如果你需要保留对话能力,肯定要把输入指令全部改写成人话,并且用lora的方式仅微调q、v来减少影响。我理解ptuning这种引入额外结构的根本不适用在这种场景下。 > > 没错,直观理解起来就是你通过p-tuning之后,等于在基座模型之上加了一层全连接,现在它只支持当前的任务了。 那如何解决这个问题呢。

> alpaca_data.json 可以参考 https://github.com/tatsu-lab/stanford_alpaca > > alpaca_data.jsonl 只是转了下格式,具体可以看[cover_alpaca2jsonl.py](https://github.com/mymusise/ChatGLM-Tuning/blob/master/cover_alpaca2jsonl.py) 明白了alpaca_data.jsonl 是当作测试集data是嘛?

> ``` > model = PeftModel.from_pretrained(model, "weights/xxx") > model_dict = model.state_dict() > model_dict.update(torch.load("weights/xxx/adapter_model.bin")) > model.load_state_dict(model_dict) > ``` > > 勉强先这样解决,但是感觉训练时loss算的有问题,我loss一直训到后面全是0了,推理时才能看到效果。 Unexpected key(s) in state_dict: "base_model.model.transformer.encoder.layers.0.self_attention.query_key_value.lora_A.weight", "base_model.model.transformer.encoder.layers.0.self_attention.query_key_value.lora_B.weight", "base_model.model.transformer.encoder.layers.1.self_attention.query_key_value.lora_A.weight", "base_model.model.transformer.encoder.layers.1.self_attention.query_key_value.lora_B.weight", "base_model.model.transformer.encoder.layers.2.self_attention.query_key_value.lora_A.weight", "base_model.model.transformer.encoder.layers.2.self_attention.query_key_value.lora_B.weight",...

> 嗯,lora方法是跟原模型解耦的,原模型的参数是冻结的,所以不会改。 demo 网址无法访问404

> 我目前没有测试上下文,后面测试一下,我看看 测试好了嘛