mymusise / ChatGLM-Tuning

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

关于微调代码的疑问 #13

Open DunZhang opened 1 year ago

DunZhang commented 1 year ago

源代码如下:

class ModifiedTrainer(Trainer):

    def compute_loss(self, model, inputs, return_outputs=False):
        return model(
            input_ids=inputs["input_ids"],
            attention_mask=torch.ones_like(inputs["input_ids"]).bool(),
            labels=inputs["input_ids"],
        ).loss

疑问1:这里的attention mask不应该是下三角或者unilm那种吗? 疑问2:这里的labels不需要把一部分设置为-100吗?

XiaofengZHOU commented 1 year ago

同问,没搞懂attention mask要怎么处理

mymusise commented 1 year ago

对 attention mask 做了下更新,可以参考最新的分支代码: https://github.com/mymusise/ChatGLM-Tuning/blob/update_mask/finetune.py#L58

huanan254 commented 1 year ago

把label设置成-100的目的是为啥?lora微调的做法是让模型的的前一个token能够预测出下一个token么?是这样的话,总感觉input_ids和labels对应关系错位了啊