def METHOD_NAME(model_dir: str) -> Callable[[str], np.ndarray]:
    """
    Load chemprop model and return function for evaluating it.
    """
    if chemprop is None:
        # Delay chemprop ImportError until we actually try to use it
        # so that RMG can load successfully without chemprop.
        raise chemprop_exception
    args = Namespace()  # Simple class to hold attributes
    # Set up chemprop predict arguments
    args.checkpoint_dir = model_dir
    args.checkpoint_path = None
    chemprop.parsing.update_checkpoint_args(args)
    args.cuda = False
    scaler, features_scaler = chemprop.utils.load_scalers(args.checkpoint_paths[0])
    train_args = chemprop.utils.load_args(args.checkpoint_paths[0])
    # Update args with training arguments
    for key, value in vars(train_args).items():
        if not hasattr(args, key):
            setattr(args, key, value)
    # Load models in ensemble
    models = []
    for checkpoint_path in args.checkpoint_paths:
        models.append(chemprop.utils.load_checkpoint(checkpoint_path, cuda=args.cuda))
    # Set up estimator
    def estimator(smi: str):
        # Make dataset
        data = chemprop.data.MoleculeDataset(
            [chemprop.data.MoleculeDatapoint(line=[smi], args=args)]
        )
        # Normalize features
        if train_args.features_scaling:
            data.normalize_features(features_scaler)
        # Redirect chemprop stderr to null device so that it doesn't
        # print progress bars every time a prediction is made
        with open(os.devnull, 'w') as f, contextlib.redirect_stderr(f):
            # Predict with each model individually and sum predictions
            sum_preds = np.zeros((len(data), args.num_tasks))
            for model in models:
                model_preds = chemprop.train.predict(
                    model=model,
                    data=data,
                    batch_size=1,  # We'll only predict one molecule at a time
                    scaler=scaler
                )
                sum_preds += np.array(model_preds)
        avg_preds = sum_preds / len(models)
        return avg_preds
    return estimator