Open loki1017 opened 1 year ago
transformers==4.31.0
transformers-stream-generator==0.0.4
我们的训练代码修改自Firefly
仓库,他们训练的时候使用了不一样的损失计算mask机制:
正常来说一段对话发生了三轮,在训练时可以分为三个样本,每个样本只有当前目标回复作为target计算损失
而Firefly将整段对话全部给到模型并同时将三轮的回复作为target计算损失以提高效率
我猜测你的问题来自于这里的特殊处理,对于你当前的情况,我建议你尝试使用'Firefly'仓库中QLoRA脚本,在此基础上进行调试尝试,可能可以更快解决你的问题
我们的改动集中于component/dataset.py
,以及一些针对transformers等pkg版本适配问题的改动,应当不怎么影响与原仓库QLoRA微调脚本的结合使用
好的,非常感谢,我去尝试修改下
特别感谢您的无私贡献,我使用baichaunChat进行qlora微调的时候出现了keyerror的问题,具体如下:
参数详情:
我发现在transformers包中trainer_utils.py文件中的call()方法,会将target_mask属性给移除掉,具体如下:
我对源文件进行了修改,注释掉了
features = [self._remove_columns(feature) for feature in features]
,但是却发生其他错误。因此,我想知到您的transformers和transformers_stream_generator的具体版本是多少,又或者是代码逻辑哪里有什么疏漏,万分感谢!!!(我的版本:transformers== 4.30.1 ,transformers-stream-generator ==0.0.4
)