def METHOD_NAME(self, texts: List[List[np.ndarray]], labels: list) -> Union[float, List[float]]:
    """Train the model on the given batch.
    Args:
        texts: vectorized texts
        labels: list of labels
    Returns:
        metrics values on the given batch
    """
    features, labels = np.array(texts), np.array(labels)
    inputs, labels = torch.from_numpy(features), torch.from_numpy(labels)
    inputs, labels = inputs.to(self.device), labels.to(self.device)
    # zero the parameter gradients
    self.optimizer.zero_grad()
    # forward + backward + optimize
    outputs = self.model(inputs)
    labels = labels.view(-1).long()
    loss = self.criterion(outputs, labels)
    self._make_step(loss)
    return loss.item()