code: def run_node_tuner(
      train_data,
      pipeline,
      loss_function,
      search_space=PipelineSearchSpace(),
      cv=None,
      node_index=0,
      iterations=3,
      early_stopping_rounds=None,
  ):
      # Pipeline tuning
      node_tuner = (
          TunerBuilder(train_data.task)
          .with_tuner(SequentialTuner)
          .with_metric(loss_function)
          .with_cv_folds(cv)
          .with_iterations(iterations)
          .with_search_space(search_space)
          .with_early_stopping_rounds(early_stopping_rounds)
          .build(train_data)
      )
      tuned_pipeline = node_tuner.tune_node(pipeline, node_index)
      return node_tuner, tuned_pipeline
  
imports: import os
  from time import time
  import pytest
  from fedot.core.repository.dataset_types import DataTypesEnum
  from golem.core.tuning.hyperopt_tuner import get_node_parameters_for_hyperopt
  from golem.core.tuning.iopt_tuner import IOptTuner
  from golem.core.tuning.optuna_tuner import OptunaTuner
  from golem.core.tuning.sequential import SequentialTuner
  from golem.core.tuning.simultaneous import SimultaneousTuner
  from golem.utilities.data_structures import ensure_wrapped_in_sequence
  from hyperopt import hp
  from hyperopt.pyll.stochastic import sample
  from examples.simple.time_series_forecasting.ts_pipelines import ts_complex_ridge_smoothing_pipeline, ts_glm_pipeline
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import train_test_data_setup
  from fedot.core.operations.evaluation.operation_implementations.models.ts_implementations.statsmodels import GLMImplementation
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.pipelines.tuning.search_space import PipelineSearchSpace
  from fedot.core.pipelines.tuning.tuner_builder import TunerBuilder
  from fedot.core.repository.metrics_repository import RegressionMetricsEnum, ClassificationMetricsEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum
  from fedot.core.utils import fedot_project_root, NESTED_PARAMS_LABEL
  from test.unit.multimodal.data_generators import get_single_task_multimodal_tabular_data, get_multimodal_pipeline
  from test.unit.tasks.test_forecasting import get_ts_data
label_desc: Use image node_id 22 for calling a global function with example usage: run_node_tuner(train_data, pipeline, loss_function, search_space, cv, node_index, iterations, early_stopping_rounds) and returns: node_tuner,  tuned_pipeline