MCPcopy Create free account
hub / github.com/THUDM/LongWriter / forward

Method forward

train/patch/modeling_llama.py:1630–1680  ·  view source on GitHub ↗

r""" labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss

(
        self,
        input_ids: Optional[torch.LongTensor] = None,
        attention_mask: Optional[torch.Tensor] = None,
        position_ids: Optional[torch.LongTensor] = None,
        past_key_values: Optional[List[torch.FloatTensor]] = None,
        inputs_embeds: Optional[torch.FloatTensor] = None,
        labels: Optional[torch.LongTensor] = None,
        use_cache: Optional[bool] = None,
        output_attentions: Optional[bool] = None,
        output_hidden_states: Optional[bool] = None,
        return_dict: Optional[bool] = None,
    )

Source from the content-addressed store, hash-verified

1628
1629 @add_start_docstrings_to_model_forward(LLAMA_INPUTS_DOCSTRING)
1630 def forward(
1631 self,
1632 input_ids: Optional[torch.LongTensor] = None,
1633 attention_mask: Optional[torch.Tensor] = None,
1634 position_ids: Optional[torch.LongTensor] = None,
1635 past_key_values: Optional[List[torch.FloatTensor]] = None,
1636 inputs_embeds: Optional[torch.FloatTensor] = None,
1637 labels: Optional[torch.LongTensor] = None,
1638 use_cache: Optional[bool] = None,
1639 output_attentions: Optional[bool] = None,
1640 output_hidden_states: Optional[bool] = None,
1641 return_dict: Optional[bool] = None,
1642 ) -> Union[Tuple, TokenClassifierOutput]:
1643 r"""
1644 labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
1645 Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
1646 config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
1647 `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
1648 """
1649 return_dict = return_dict if return_dict is not None else self.config.use_return_dict
1650
1651 outputs = self.model(
1652 input_ids,
1653 attention_mask=attention_mask,
1654 position_ids=position_ids,
1655 past_key_values=past_key_values,
1656 inputs_embeds=inputs_embeds,
1657 use_cache=use_cache,
1658 output_attentions=output_attentions,
1659 output_hidden_states=output_hidden_states,
1660 return_dict=return_dict,
1661 )
1662 sequence_output = outputs[0]
1663 sequence_output = self.dropout(sequence_output)
1664 logits = self.score(sequence_output)
1665
1666 loss = None
1667 if labels is not None:
1668 loss_fct = CrossEntropyLoss()
1669 loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1))
1670
1671 if not return_dict:
1672 output = (logits,) + outputs[2:]
1673 return ((loss,) + output) if loss is not None else output
1674
1675 return TokenClassifierOutput(
1676 loss=loss,
1677 logits=logits,
1678 hidden_states=outputs.hidden_states,
1679 attentions=outputs.attentions,
1680 )

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected