code: def main(cfg: DictConfig) -> None:
      logging.info(f"Config Params:\n {OmegaConf.to_yaml(cfg)}")
      trainer = pl.Trainer(**cfg.trainer)
      exp_manager(trainer, cfg.get("exp_manager", None))
  
      # initialize the model using the config file
      model = MultiLabelIntentSlotClassificationModel(
          cfg.model, trainer=trainer
      )
  
      # training
      logging.info(
          "================================================================================================"
      )
      logging.info("Starting training...")
      trainer.fit(model)
      logging.info("Training finished!")
  
      # Stop further testing as fast_dev_run does not save checkpoints
      if trainer.fast_dev_run:
          return
  
      # after model training is done, you can load the model from the saved checkpoint
      # and evaluate it on a data file or on given queries.
      logging.info(
          "================================================================================================"
      )
      logging.info(
          "Starting the testing of the trained model on test set..."
      )
      logging.info(
          "We will load the latest model saved checkpoint from the training..."
      )
  
      # for evaluation and inference you can load the previously trained model saved in .nemo file
      # like this in your code, but we will just reuse the trained model here
      # eval_model = MultiLabelIntentSlotClassificationModel.restore_from(restore_path=checkpoint_path)
      eval_model = model
  
      # we will setup testing data reusing the same config (test section)
      eval_model.update_data_dir_for_testing(
          data_dir=cfg.model.data_dir
      )
      eval_model.setup_test_data(test_data_config=cfg.model.test_ds)
  
      trainer.test(model=eval_model, ckpt_path=None, verbose=False)
      logging.info("Testing finished!")
  
      # Optimize Threshold
      eval_model.optimize_threshold(cfg.model.test_ds, "dev")
  
      # run an inference on a few examples
      logging.info(
          "======================================================================================"
      )
      logging.info("Evaluate the model on the given queries...")
  
      # this will work well if you train the model on ATIS dataset
      # for your own dataset change the examples appropriately
      queries = [
          "i would like to find a flight from charlotte to las vegas that makes a stop in st. louis",
          "on april first i need a ticket from tacoma to san jose departing before 7 am",
          "how much is the limousine service in boston",
      ]
  
      # We use the optimized threshold for predictions
      (
          pred_intents,
          pred_slots,
          pred_list,
      ) = eval_model.predict_from_examples(queries, cfg.model.test_ds)
      logging.info(
          "The prediction results of some sample queries with the trained model:"
      )
  
      for query, intent, slots in zip(
          queries, pred_intents, pred_slots
      ):
          logging.info(f"Query : {query}")
          logging.info(f"Predicted Intents: {intent}")
          logging.info(f"Predicted Slots: {slots}")
  
      logging.info("Inference finished!")
  
imports: import pytorch_lightning
  from omegaconf import DictConfig, OmegaConf
  from nemo.collections.nlp.models import MultiLabelIntentSlotClassificationModel
  from nemo.core.config import hydra_runner
  from nemo.utils import logging
  from nemo.utils.exp_manager import exp_manager
label_desc: Use image node_id 1 for calling a global function with example usage: main(cfg) without return types