class_docstr: Class which replace Operation class for AtomizedModel object 
class_docstr_tok: ["Class","which","replace","Operation","class","for","AtomizedModel","object"]
docstr: Method for tuning hyperparameters 
docstr_tok: ["Method","for","tuning","hyperparameters"]
code: def fine_tune(
      self,
      metric_function: MetricCallable,
      input_data: Optional[InputData] = None,
      iterations: int = 50,
      timeout: int = 5,
  ) -> "AtomizedModel":
      """Method for tuning hyperparameters"""
      tuner = (
          TunerBuilder(input_data.task)
          .with_tuner(SimultaneousTuner)
          .with_metric(metric_function)
          .with_iterations(iterations)
          .with_timeout(timedelta(minutes=timeout))
          .build(input_data)
      )
      tuned_pipeline = tuner.tune(self.pipeline)
      tuned_atomized_model = AtomizedModel(tuned_pipeline)
      return tuned_atomized_model
  
imports: from collections import Counter
  from datetime import timedelta
  from functools import reduce
  from operator import and_, or_
  from typing import Any, Callable, Dict, List, Optional, Set, Union
  from golem.core.tuning.simultaneous import SimultaneousTuner
  from fedot.core.data.data import InputData, OutputData
  from fedot.core.operations.operation import Operation
  from fedot.core.operations.operation_parameters import OperationParameters
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.pipelines.tuning.tuner_builder import TunerBuilder
  from fedot.core.repository.metrics_repository import MetricCallable
  from fedot.core.repository.operation_types_repository import OperationMetaInfo, atomized_model_type
label_desc: Use image node_id 5 for calling the AtomizedModel obj's underlying member method code with example usage: obj.fine_tune(metric_function, input_data, iterations, timeout) and returns: tuned_atomized_model