def METHOD_NAME(self, shared_state):
    # Initialize vertexai
    vertexai.init(
        project=e2e_base._PROJECT,
        location=e2e_base._LOCATION,
        staging_bucket=f"gs://{shared_state['staging_bucket_name']}",
    )
    # Prepare dataset
    dataset = load_iris()
    X, X_retrain, y, y_retrain = train_test_split(
        dataset.data, dataset.target, test_size=0.60, random_state=42
    )
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.20, random_state=42
    )
    # Remote fit_transform on train dataset
    vertexai.preview.init(remote=True)
    transformer = StandardScaler()
    transformer.fit_transform.vertex.set_config(
        display_name=self._make_display_name("fit-transform"),
    )
    X_train = transformer.fit_transform(X_train)
    # Assert the right serializer is being used
    serializer = any_serializer.AnySerializer()
    assert (
        serializer._get_predefined_serializer(transformer.__class__.__mro__[-2])
        is serializers.SklearnEstimatorSerializer
    )
    # Remote transform on test dataset
    transformer.transform.vertex.set_config(
        display_name=self._make_display_name("transform"),
    )
    X_test = transformer.transform(X_test)
    # Assert the right serializer is being used
    serializer = any_serializer.AnySerializer()
    assert (
        serializer._get_predefined_serializer(transformer.__class__.__mro__[-2])
        is serializers.SklearnEstimatorSerializer
    )
    # Local transform on retrain data
    vertexai.preview.init(remote=False)
    X_retrain = transformer.transform(X_retrain)
    # Transform retrain dataset to pandas dataframe
    X_retrain_df = pd.DataFrame(X_retrain, columns=dataset.feature_names)
    y_retrain_df = pd.DataFrame(y_retrain, columns=["class"])
    # Remote training on sklearn
    vertexai.preview.init(remote=True)
    model = LogisticRegression(warm_start=True)
    model.fit.vertex.remote_config.display_name = self._make_display_name(
        "sklearn-training"
    )
    model.fit(X_train, y_train)
    # Assert the right serializer is being used
    serializer = any_serializer.AnySerializer()
    assert (
        serializer._get_predefined_serializer(model.__class__.__mro__[-2])
        is serializers.SklearnEstimatorSerializer
    )
    # Remote prediction on sklearn
    model.predict.vertex.remote_config.display_name = self._make_display_name(
        "sklearn-prediction"
    )
    model.predict(X_test)
    # Register trained model
    registered_model = vertexai.preview.register(model)
    shared_state["resources"] = [registered_model]
    # Load the registered model
    pulled_model = vertexai.preview.from_pretrained(
        model_name=registered_model.resource_name
    )
    # Retrain model with pandas df on Vertex
    pulled_model.fit(X_retrain_df, y_retrain_df)
    # Assert the right serializer is being used
    serializer = any_serializer.AnySerializer()
    assert (
        serializer._get_predefined_serializer(pulled_model.__class__.__mro__[-2])
        is serializers.SklearnEstimatorSerializer
    )