I’m looking for some clarification regarding the multiple choice qn pipeline in transformer. In the code example, the author pairs the prompt-optionA
, prompt-optionB
, prompt-optionC
, etc to feed into the model. Each pairs of input give different logits, in this case the number of logits are 3.
The output shape of this pipeline is one, i.e. Linear(...., out_features=1
). I guess the model prediction or logits further filtered out by maximum value and end up with single logits. Is it correct? what is the loss method is used here (in the above code example notebook, nothing is menitoned explicitly)? How to use custom loss method here?
from transformers import AutoConfig
from transformers import AutoModelForMultipleChoice
config = AutoConfig.from_pretrained("bert-base-cased")
model = AutoModelForMultipleChoice.from_config(config)
model
...
...
(pooler): BertPooler(
(dense): Linear(in_features=768, out_features=768, bias=True)
(activation): Tanh()
)
)
(dropout): Dropout(p=0.1, inplace=False)
(classifier): Linear(in_features=768, out_features=1, bias=True)
)