def METHOD_NAME(
    pipeline: Optional[str] = None,
    presets: Optional[str] = None,
    hyperparameters: Optional[Union[str, Dict, List[str]]] = None,
):
    """
    Zero shot initialization.
    Parameters
    ----------
    pipeline
        Matching pipeline.
    presets
        Presets regarding model quality, e.g., best_quality, high_quality, and medium_quality.
    hyperparameters
        The customized hyperparameters used to override the default.
    Returns
    -------
    config
        A DictConfig object containing the configurations for the pipeline.
    query_config
        Configurations for the query model and related.
    response_config
        Configurations for the response model and related.
    query_model
        Query model with pre-trained weights.
    response_model
        Response model with pre-trained weights.
    query_processors
        The data processors associated with the query model.
    response_processors
        The data processors associated with the response model.
    """
    # split out the hyperparameters whose values are complex objects
    hyperparameters, advanced_hyperparameters = split_hyperparameters(hyperparameters)
    config = get_config(
        problem_type=pipeline,
        presets=presets,
        overrides=hyperparameters,
        extra=["matcher"],
    )
    assert (
        len(config.model.names) == 1
    ), f"Zero shot mode only supports using one model, but detects multiple models {config.model.names}"
    query_config = copy.deepcopy(config)
    # customize config model names to make them consistent with model prefixes.
    query_config.model, query_advanced_hyperparameters = customize_model_names(
        config=query_config.model,
        customized_names=[f"{n}_{QUERY}" for n in query_config.model.names],
        advanced_hyperparameters=advanced_hyperparameters,
    )
    response_config = copy.deepcopy(config)
    # customize config model names to make them consistent with model prefixes.
    response_config.model, response_advanced_hyperparameters = customize_model_names(
        config=response_config.model,
        customized_names=[f"{n}_{RESPONSE}" for n in response_config.model.names],
        advanced_hyperparameters=advanced_hyperparameters,
    )
    query_model, response_model = create_siamese_model(
        query_config=query_config,
        response_config=response_config,
    )
    query_processors = create_fusion_data_processors(
        model=query_model,
        config=query_config,
        requires_label=False,
        requires_data=True,
        advanced_hyperparameters=query_advanced_hyperparameters,
    )
    response_processors = create_fusion_data_processors(
        model=response_model,
        config=response_config,
        requires_label=False,
        requires_data=True,
        advanced_hyperparameters=response_advanced_hyperparameters,
    )
    return config, query_config, response_config, query_model, response_model, query_processors, response_processors