code: def _ext_mean_squared_log_error(
      y_true,
      y_pred,
      *,
      sample_weight=None,
      multioutput="uniform_average",
      squared=True,
  ):
      """Mean squared logarithmic error regression loss.
  
      Extended version with clip(0) for y_pred
  
      Read more in the :ref:`User Guide <mean_squared_log_error>`.
  
      Parameters
      ----------
      y_true : array-like of shape (n_samples,) or (n_samples, n_outputs)
          Ground truth (correct) target values.
  
      y_pred : array-like of shape (n_samples,) or (n_samples, n_outputs)
          Estimated target values.
  
      sample_weight : array-like of shape (n_samples,), default=None
          Sample weights.
  
      multioutput : {'raw_values', 'uniform_average'} or array-like of shape \
              (n_outputs,), default='uniform_average'
  
          Defines aggregating of multiple output values.
          Array-like value defines weights used to average errors.
  
          'raw_values' :
              Returns a full set of errors when the input is of multioutput
              format.
  
          'uniform_average' :
              Errors of all outputs are averaged with uniform weight.
      squared : bool, default=True
          If True returns MSLE (mean squared log error) value.
          If False returns RMSLE (root mean squared log error) value.
  
      Returns
      -------
      loss : float or ndarray of floats
          A non-negative floating point value (the best value is 0.0), or an
          array of floating point values, one for each individual target.
  
      Examples
      --------
      >>> from sklearn.metrics import mean_squared_log_error
      >>> y_true = [3, 5, 2.5, 7]
      >>> y_pred = [2.5, 5, 4, 8]
      >>> mean_squared_log_error(y_true, y_pred)
      0.039...
      >>> mean_squared_log_error(y_true, y_pred, squared=False)
      0.199...
      >>> y_true = [[0.5, 1], [1, 2], [7, 6]]
      >>> y_pred = [[0.5, 2], [1, 2.5], [8, 8]]
      >>> mean_squared_log_error(y_true, y_pred)
      0.044...
      >>> mean_squared_log_error(y_true, y_pred, multioutput='raw_values')
      array([0.00462428, 0.08377444])
      >>> mean_squared_log_error(y_true, y_pred, multioutput=[0.3, 0.7])
      0.060...
      """
      _, y_true, y_pred, multioutput = _check_reg_targets(
          y_true, y_pred, multioutput
      )
      check_consistent_length(y_true, y_pred, sample_weight)
  
      if (y_true < 0).any():
          raise ValidationError(
              bundle.get("metrics_msle_negative_target")
          )
  
      return mean_squared_error(
          log1p(y_true),
          log1p(y_pred.clip(0)),
          sample_weight=sample_weight,
          multioutput=multioutput,
          squared=squared,
      )
  
imports: import logging
  from copy import deepcopy
  from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  import pandas
  from catboost import CatBoostClassifier, CatBoostRegressor
  from lightgbm import LGBMClassifier, LGBMRegressor
  from numpy import log1p
  from pandas.api.types import is_numeric_dtype
  from sklearn.metrics import check_scoring, get_scorer, make_scorer, roc_auc_score
  from upgini.utils.sklearn_ext import cross_validate
  from sklearn.metrics._regression import _check_reg_targets, check_consistent_length, mean_squared_error
  from sklearn.model_selection import BaseCrossValidator
  from upgini.errors import ValidationError
  from upgini.metadata import ModelTaskType
  from upgini.resource_bundle import bundle
  from upgini.utils.target_utils import correct_string_target
label_desc: Use image node_id 7 for calling a global function with example usage: _ext_mean_squared_log_error(y_true, y_pred) and returns: mean_squared_error