Results 78 comments of suc16

如果训练集里的prompt够长够独特,应该能替换的。如果是通用领域,感觉万步是远远不够的。

> > 你这新知识进行多轮对话的时候还能记住吗? > > 多轮对话后,会胡说了。。因为他原来里面就一些相似的内容 。 对啊,你不做lora的话,问他问题,他也会有一种回复。现在就是想让新学的内容彻底替换原始的训练集的内容,也就是新回答B生成概率远大于原回答C,P(B)>P(C),我理解是有两种思路。 第一种,让prompt够独特,每次提问时候都输入和训练集一致的prompt。也就是让模型学到条件概率,在prompt是A的情况下,生成回答B的概率P(B|A)最大。 第二种,生成非常多的prompt和回答B组合,加入训练集训练,让P(B)变大。

> 我觉得让prompt独特一些比较可行。在使用的时候,可以封装一下用户的提问,这样用户可以无感。 是的,感觉langchain就是这种理念,要把LLM做成需要的应用还是要做一些封装的。

> 是 alpaca 自己数据的坑吧,我目前使用 llama 和 alpaca 都有类似问题。 似乎transformers的generate函数就是这么设计的,官方的example compute_transition_scores,也是要自己取input之后的部分 input_length = inputs.input_ids.shape[1] generated_tokens = outputs.sequences[:, input_length:] https://huggingface.co/docs/transformers/v4.26.1/en/main_classes/text_generation#transformers.GenerationMixin

应该需要在trainer里加载checkpoint? `trainer.train(resume_from_checkpoint=checkpoint)` 参考 https://github.com/OptimalScale/LMFlow/blob/dc36ec99d269e575b388e0ccb6ea107591b06fbe/src/lmflow/pipeline/finetuner.py

> 确实,torch.set_default_tensor_type(torch.cuda.FloatTensor)这句话好像本来也没用,我在infer脚本里删了也能正常跑。 但是你的报错是gpu和cpu的问题,确实跟这个也没有关联啊,看着应该是加载数据集加载到cpu上了?困惑。。。

2048长度估计需要单卡60g显存

pip list看下peft版本,git源码安装应该是0.3.0.dev0

> lora config把r调大一点,加上几个dense层,训练数据在你要的问题上多搞一点覆盖原模型 r调大真的有用吗?