code: def get_new_progress_tracker(
      batch_size: int,
      best_eval_metric_value: float,
      best_increase_batch_size_eval_metric: float,
      learning_rate: float,
      output_features: Dict[str, "OutputFeature"],
  ):
      """Returns a new instance of a ProgressTracker with empty metrics."""
      return ProgressTracker(
          epoch=0,
          batch_size=batch_size,
          steps=0,
          tune_checkpoint_num=0,
          checkpoint_number=0,
          best_eval_metric_steps=0,
          best_eval_metric_epoch=0,
          best_eval_metric_checkpoint_number=0,
          last_learning_rate_reduction_steps=0,
          last_increase_batch_size_steps=0,
          last_improvement_steps=0,
          best_eval_metric_value=best_eval_metric_value,
          best_increase_batch_size_eval_metric=best_increase_batch_size_eval_metric,
          last_increase_batch_size_eval_metric_improvement=0,
          learning_rate=learning_rate,
          num_reductions_learning_rate=0,
          num_increases_batch_size=0,
          train_metrics=initialize_trainer_metric_dict(output_features),
          validation_metrics=initialize_trainer_metric_dict(
              output_features
          ),
          test_metrics=initialize_trainer_metric_dict(output_features),
          last_learning_rate_reduction=0,
          last_increase_batch_size=0,
          best_eval_train_metrics={},
          best_eval_validation_metrics={},
          best_eval_test_metrics={},
          llm_eval_examples={},
          checkpoint_to_step={},
          checkpoint_to_epoch={},
          incremental_step_token_usage={},
          cumulative_step_token_usage={},
          incremental_checkpoint_token_usage={},
          cumulative_checkpoint_token_usage={},
          total_tokens_used=0,
      )
  
imports: import logging
  from collections import defaultdict
  from typing import Dict, List, Tuple, TYPE_CHECKING
  from ludwig.api_annotations import DeveloperAPI
  from ludwig.constants import AUTO, COMBINED, LOSS
  from ludwig.models.base import BaseModel
  from ludwig.modules.metric_modules import get_best_function
  from ludwig.utils.data_utils import save_json
  from ludwig.utils.metric_utils import TrainerMetric
label_desc: Use image node_id 3 for calling a global function with example usage: get_new_progress_tracker(batch_size, best_eval_metric_value, best_increase_batch_size_eval_metric, learning_rate, output_features) and returns: ProgressTracker