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

Class LlamaForTokenClassification

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

Source from the content-addressed store, hash-verified

1604 LLAMA_START_DOCSTRING,
1605)
1606class LlamaForTokenClassification(LlamaPreTrainedModel):
1607 def __init__(self, config):
1608 super().__init__(config)
1609 self.num_labels = config.num_labels
1610 self.model = LlamaModel(config)
1611 if getattr(config, "classifier_dropout", None) is not None:
1612 classifier_dropout = config.classifier_dropout
1613 elif getattr(config, "hidden_dropout", None) is not None:
1614 classifier_dropout = config.hidden_dropout
1615 else:
1616 classifier_dropout = 0.1
1617 self.dropout = nn.Dropout(classifier_dropout)
1618 self.score = nn.Linear(config.hidden_size, config.num_labels)
1619
1620 # Initialize weights and apply final processing
1621 self.post_init()
1622
1623 def get_input_embeddings(self):
1624 return self.model.embed_tokens
1625
1626 def set_input_embeddings(self, value):
1627 self.model.embed_tokens = value
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)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected