class_docstr: NoneTrainer is a trainer that does not train a model, only runs evaluation.
class_docstr_tok: ["NoneTrainer","is","a","trainer","that","does","not","train","a","model",",","only","runs","evaluation","."]
code: def evaluation(
      self,
      dataset: "Dataset",  # noqa: F821
      dataset_name: str,
      metrics_log: Dict[str, Dict[str, List[TrainerMetric]]],
      batch_size: int,
      progress_tracker: ProgressTracker,
  ):
      predictor = LlmPredictor(
          self.model,
          batch_size=batch_size,
          distributed=self.distributed,
          report_tqdm_to_ray=self.report_tqdm_to_ray,
      )
      metrics, _ = predictor.batch_evaluation(
          dataset, collect_predictions=False, dataset_name=dataset_name
      )
  
      return append_metrics(
          self.model,
          dataset_name,
          metrics,
          metrics_log,
          progress_tracker,
      )
  
imports: import logging
  import os
  import time
  from typing import Callable, Dict, List, Optional, Union
  from torch.utils.tensorboard import SummaryWriter
  from ludwig.constants import MINIMUM_BATCH_SIZE, TEST, TRAINING, VALIDATION
  from ludwig.data.dataset.base import Dataset
  from ludwig.distributed.base import DistributedStrategy, LocalStrategy
  from ludwig.features.feature_utils import LudwigFeatureDict
  from ludwig.models.llm import LLM
  from ludwig.models.predictor import LlmFineTunePredictor, LlmPredictor
  from ludwig.modules.metric_modules import get_initial_validation_value
  from ludwig.schema.trainer import BaseTrainerConfig, FineTuneTrainerConfig, NoneTrainerConfig
  from ludwig.trainers.base import BaseTrainer
  from ludwig.trainers.registry import register_llm_ray_trainer, register_llm_trainer
  from ludwig.trainers.trainer import Trainer
  from ludwig.types import ModelConfigDict
  from ludwig.utils import time_utils
  from ludwig.utils.defaults import default_random_seed
  from ludwig.utils.metric_utils import TrainerMetric
  from ludwig.utils.metrics_printed_table import print_metrics_table
  from ludwig.utils.misc_utils import set_random_seed
  from ludwig.utils.torch_utils import get_torch_device
  from ludwig.utils.trainer_utils import append_metrics, get_new_progress_tracker, ProgressTracker
label_desc: Use image node_id 16 for calling the NoneTrainer obj's underlying member method code with example usage: obj.evaluation(dataset, dataset_name, metrics_log, batch_size, progress_tracker) and returns: append_metrics