class_docstr: ModelManager manages how to train models.
  
  Each type of models can have their own config type, implemented as
  `config_type()` class method. `__init__()` of the concrete class must take
  this type.
  
  To integrate training algorithms into the standard training workflow, you need:
  1. `build_trainer()`: Builds the ReAgentLightningModule
  2. `get_data_module()`: Defines how to create data module for this algorithm
  3. `build_serving_modules()`: Creates the TorchScript modules for serving
  4. `get_reporter()`: Returns the reporter to collect training/evaluation metrics
  5. `create_policy()`: (Optional) Creates Policy object for to interact with Gym
code: def get_reporter(self) -> ReporterBase:
      pass
  
imports: import abc
  import logging
  from typing import Dict, List, Optional, Tuple
  import pytorch_lightning
  import torch
  from reagent.core.dataclasses import dataclass
  from reagent.core.parameters import NormalizationData
  from reagent.data.reagent_data_module import ReAgentDataModule
  from reagent.reporting.reporter_base import ReporterBase
  from reagent.training import MultiStageTrainer, ReAgentLightningModule
  from reagent.workflow.types import Dataset, ReaderOptions, ResourceOptions, RewardOptions, RLTrainingOutput, RLTrainingReport, TableSpec
  from reagent.workflow.utils import get_rank, train_eval_lightning
label_desc: Use image node_id 4 for calling the ModelManager obj's underlying member method code with example usage: obj.get_reporter() without return types