code: def cli_main():
      early_stopping = EarlyStopping(
          monitor="val_loss",
      )
  
      checkpoint_callback = ModelCheckpoint(
          dirpath=os.getcwd(),
          save_top_k=1,
          verbose=True,
          monitor="val_loss",
          mode="min",
      )
      lr_logger = LearningRateMonitor()
      cli = BertLightningCLI(
          BertNewsClassifier,
          BertDataModule,
          run=False,
          save_config_callback=None,
          trainer_defaults={
              "callbacks": [
                  early_stopping,
                  checkpoint_callback,
                  lr_logger,
              ]
          },
      )
      if cli.trainer.global_rank == 0:
          mlflow.pytorch.autolog()
      # cli.model=torch.compile(cli.model)
      cli.trainer.fit(cli.model, datamodule=cli.datamodule)
      cli.trainer.test(ckpt_path="best", datamodule=cli.datamodule)
  
imports: import math
  import os
  import lightning
  import pandas
  import torch
  import torch.nn.functional
  import torchtext.datasets
  from lightning.pytorch.callbacks import EarlyStopping, LearningRateMonitor, ModelCheckpoint
  from lightning.pytorch.cli import LightningCLI
  from sklearn.datasets import fetch_20newsgroups
  from sklearn.metrics import accuracy_score
  from sklearn.model_selection import train_test_split
  from torch import nn
  from torch.utils.data import DataLoader
  from torch.utils.data.dataset import random_split
  from torchdata.datapipes.iter import IterDataPipe
  from torchtext.data.functional import to_map_style_dataset
  from torchtext.datasets import AG_NEWS
  from transformers import BertModel, BertTokenizer
  import mlflow.pytorch
label_desc: Use image node_id 3 for calling a global function with example usage: cli_main() without return types