def METHOD_NAME(self, documents: Union[List[str], str]) -> Dict[str, Any]:
    pred_samples = self.cut_documents(documents)
    predict_examples = Dataset.from_dict(pred_samples)
    # Predict Feature Creation
    predict_dataset = self.preprocessor(predict_examples, self.model_cfg)
    num_examples = len(
        predict_examples[self.preprocessor.context_column_name])
    num_samples = len(
        predict_dataset[self.preprocessor.context_column_name])
    labels = predict_dataset.pop('labels')
    sentences = predict_dataset.pop('sentences')
    example_ids = predict_dataset.pop(
        self.preprocessor.example_id_column_name)
    with torch.no_grad():
        input = {
            key: torch.tensor(val)
            for key, val in predict_dataset.items()
        }
        logits = self.model.forward(**input).logits
    predictions = np.argmax(logits, axis=2)
    assert len(sentences) == len(
        predictions), 'sample {}  infer_sample {} prediction {}'.format(
            num_samples, len(sentences), len(predictions))
    # Remove ignored index (special tokens)
    true_predictions = [
        [
            self.preprocessor.label_list[p]
            for (p, l) in zip(prediction, label) if l != -100  # noqa *
        ] for prediction, label in zip(predictions, labels)
    ]
    true_labels = [
        [
            self.preprocessor.label_list[l]
            for (p, l) in zip(prediction, label) if l != -100  # noqa *
        ] for prediction, label in zip(predictions, labels)
    ]
    # Save predictions
    out = []
    for i in range(num_examples):
        out.append({'sentences': [], 'labels': [], 'predictions': []})
    for prediction, sentence_list, label, example_id in zip(
            true_predictions, sentences, true_labels, example_ids):
        if len(label) < len(sentence_list):
            label.append('O')
            prediction.append('O')
        assert len(sentence_list) == len(prediction), '{} {}'.format(
            len(sentence_list), len(prediction))
        assert len(sentence_list) == len(label), '{} {}'.format(
            len(sentence_list), len(label))
        out[example_id]['sentences'].extend(sentence_list)
        out[example_id]['labels'].extend(label)
        out[example_id]['predictions'].extend(prediction)
    return out