Closed nullgogo closed 2 years ago
在数据prepare的时候: labels = ([strat_id] + response + [eos])[:max_decoder_input_length + 1] decoder_input_ids = [bos] + labels[:-1] label的第一个值是strat_id对应的token_id,decoder_input_ids 的第一个值是bos对应的token_id. 训练过程中计算loss的时候:loss = F.cross_entropy(lm_logits.view(-1, lm_logits.size(-1)), labels.view(-1), reduction='none'),lm_logits计算的原始输入是decoder_input_ids ,与label进行cross_entropy,每个response的第一个token_id是不是对应错了??求大佬指导
不会. decoder是自回归的, 输出的logits对应于当前输入的下一个词
感谢解答。
在数据prepare的时候: labels = ([strat_id] + response + [eos])[:max_decoder_input_length + 1] decoder_input_ids = [bos] + labels[:-1] label的第一个值是strat_id对应的token_id,decoder_input_ids 的第一个值是bos对应的token_id. 训练过程中计算loss的时候:loss = F.cross_entropy(lm_logits.view(-1, lm_logits.size(-1)), labels.view(-1), reduction='none'),lm_logits计算的原始输入是decoder_input_ids ,与label进行cross_entropy,每个response的第一个token_id是不是对应错了??求大佬指导