class_docstr: Transformer-based (duplex) tagger model for TN/ITN.
docstr: Lightning calls this inside the training loop with the data from the training dataloader
  passed in as `batch`.
docstr_tok: ["Lightning","calls","this","inside","the","training","loop","with","the","data","from","the","training","dataloader","passed","in","as","`","batch","`","."]
code: def training_step(self, batch, batch_idx):
      """
      Lightning calls this inside the training loop with the data from the training dataloader
      passed in as `batch`.
      """
      num_labels = self.num_labels
      # Apply Transformer
      tag_logits = self.forward(
          input_ids=batch["input_ids"],
          attention_mask=batch["attention_mask"],
      )
  
      # Loss
      train_loss = self.loss_fct(
          tag_logits.view(-1, num_labels), batch["labels"].view(-1)
      )
  
      lr = self._optimizer.param_groups[0]["lr"]
      self.log("train_loss", train_loss)
      self.log("lr", lr, prog_bar=True)
      return {"loss": train_loss, "lr": lr}
  
imports: from time import perf_counter
  from typing import Dict, List, Optional
  import torch
  from omegaconf import DictConfig
  from pytorch_lightning import Trainer
  from torch import nn
  from transformers import AutoModelForTokenClassification, AutoTokenizer, DataCollatorForTokenClassification
  from transformers.tokenization_utils_base import BatchEncoding
  from nemo.collections.nlp.data.text_normalization import TextNormalizationTaggerDataset, constants
  from nemo.collections.nlp.metrics.classification_report import ClassificationReport
  from nemo.collections.nlp.models.duplex_text_normalization.utils import has_numbers
  from nemo.collections.nlp.models.nlp_model import NLPModel
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.core.neural_types import ChannelType, LogitsType, MaskType, NeuralType
  from nemo.utils import logging
label_desc: Use image node_id 7 for calling the DuplexTaggerModel obj's underlying member method code with example usage: obj.training_step(batch, batch_idx) and returns: dict