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
docstr: Implement this to build the trainer, given the config
  
  TODO: This function should return ReAgentLightningModule &
  the dictionary of modules created
docstr_tok: ["Implement","this","to","build","the","trainer",",","given","the","config","TODO",":","This","function","should","return","ReAgentLightningModule","&","the","dictionary","of","modules","created"]
code: def build_trainer(
      self,
      normalization_data_map: Dict[str, NormalizationData],
      use_gpu: bool,
      reward_options: Optional[RewardOptions] = None,
  ) -> ReAgentLightningModule:
      """
      Implement this to build the trainer, given the config
  
      TODO: This function should return ReAgentLightningModule &
      the dictionary of modules created
      """
      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 3 for calling the ModelManager obj's underlying member method code with example usage: obj.build_trainer(normalization_data_map, use_gpu, reward_options) without return types