def METHOD_NAME(self, model: BaseModel, dataset: Dataset, meta: pd.DataFrame):
    features = model.meta.feature_names or dataset.columns.drop(dataset.target, errors="ignore")
    df_with_meta = dataset.df.join(meta, how="right")
    column_types = dataset.column_types.copy()
    column_types[self.LOSS_COLUMN_NAME] = "numeric"
    dataset_with_meta = Dataset(
        df_with_meta,
        target=dataset.target,
        column_types=column_types,
        validation=False,
    )
    # For performance
    dataset_with_meta.load_metadata_from_instance(dataset.column_meta)
    # Find slices
    sf = SliceFinder(numerical_slicer=self._numerical_slicer_method)
    sliced = sf.run(dataset_with_meta, features, target=self.LOSS_COLUMN_NAME)
    slices = sum(sliced.values(), start=[])
    # Keep only slices of size at least 5% of the dataset or 20 samples (whatever is larger)
    slices = [s for s in slices if max(0.05 * len(dataset), 20) <= len(dataset_with_meta.slice(s))]
    return slices