model() 呼び出しの損失の出力が困惑の形であるという github のコメントがいくつか見られます: https://github.com/huggingface/transformers/issues/473
しかし、関連するコードを見ると... https://huggingface.co/transformers/_modules/transformers/modeling_openai.html#OpenAIGPTLMHeadModel.forward
if labels is not None:
# Shift so that tokens < n predict n
shift_logits = lm_logits[..., :-1, :].contiguous()
shift_labels = labels[..., 1:].contiguous()
# Flatten the tokens
loss_fct = CrossEntropyLoss()
loss = loss_fct(shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1))
outputs = (loss,) + outputs
return outputs # (loss), lm_logits, (all hidden states), (all attentions)
交差エントロピーが計算されているのがわかりますが、困惑への変換はありません。損失は最終的にどこに変換されますか? それとも、私が理解していない変換がすでにそこにありますか?