Repository: pykeen/pykeen
Issue: When using pipeline with inductive models the evaluation filter is broken
Root cause: Validation Gap

### Describe the bug

When I run the code found in [replace triples factory tutorial](https://github.com/pykeen/pykeen/blob/master/docs/source/examples/tutorial/inductive_lp/replace_triples_factory.py), but change the entity ratios during the split from `0.5` to something larger e.g. `0.65`, I get the following error:
```
  File "<stdin>", line 1, in <module>
  File "/project/.venv/lib/python3.12/site-packages/pykeen/pipeline/api.py", line 1555, in pipeline
    metric_results, evaluate_seconds = _handle_evaluation(
                                       ^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/pipeline/api.py", line 1283, in _handle_evaluation
    metric_results = evaluator_instance.evaluate(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/evaluation/evaluator.py", line 293, in evaluate
    result = self._evaluate_on_device(
             ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/evaluation/evaluator.py", line 370, in _evaluate_on_device
    return evaluate(
           ^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/torch_max_mem/api.py", line 494, in inner
    result, self.parameter_value[h] = wrapped(*args, **kwargs)
                                      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/torch_max_mem/api.py", line 357, in wrapper_maximize_memory_utilization
    return func(*bound_arguments.args, **bound_arguments.kwargs), tuple(max_values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/torch/utils/_contextlib.py", line 116, in decorate_context
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/evaluation/evaluator.py", line 482, in evaluate
    relation_filter = _evaluate_batch(
                      ^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/evaluation/evaluator.py", line 642, in _evaluate_batch
    scores = filter_scores_(scores=scores, filter_batch=positive_filter)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/project/.venv/lib/python3.12/site-packages/pykeen/evaluation/evaluator.py", line 576, in filter_scores_
    scores[filter_batch[:, 0], filter_batch[:, 1]] = float("nan")
    ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
IndexError: index 1246 is out of bounds for dimension 1 with size 712
```
Expected behavior would be that the evaluation just finishes normally as in the case with a ratio of `0.5` (or lower).

### How to reproduce

Run the following code:
```python
from pykeen.datasets import get_dataset
from pykeen.pipeline import pipeline

# we use all of CodexSmall's data as source graph
dataset = get_dataset(dataset="CodexSmall")
dataset.summarize()
tf_all = dataset.merged()

# create a fully inductive split with two evaluation parts (validation & test)
tf_training, tf_inference, tf_validation, tf_testing = tf_all.split_fully_inductive(
    entity_split_train_ratio=0.65, evaluation_triples_ratios=(0.8, 0.1), random_state=42
)

# train an inductive node piece model
tf_training.create_inverse_triples = True
result = pipeline(
    training=tf_training,
    testing=tf_testing,
    dataset_kwargs=dict(create_inverse_triples=True),
    model="InductiveNodePiece",
    model_kwargs=dict(inference_factory=tf_inference),
    training_kwargs=dict(num_epochs=0),
    training_loop_kwargs=dict(mode="training"),
    evaluator_kwargs=dict(mode="validation"),
)
```

### Environment

| Key             | Value                            |
|-----------------|----------------------------------|
| OS              | posix                            |
| Platform        | Linux                            |
| Release         | 6.6.87.2-microsoft-standard-WSL2 |
| Time            | Tue Aug 12 13:34:06 2025         |
| Python          | 3.12.3                           |
| PyKEEN          | 1.11.1                           |
| PyKEEN Hash     | UNHASHED                         |
| PyKEEN Branch   |                                  |
| PyTorch         | 2.7.0+cu126                      |
| CUDA Available? | false                            |
| CUDA Version    | 12.6                             |
| cuDNN Version   | 90501                            |

### Additional information

I think I may have traced the problem to the calculation of `additional_filter_triples` in from `pykeen/pipeline/api.py` from line `1227`:
```python
if evaluator_instance.filtered:
    additional_filter_triples: list[MappedTriples] = [
        # Here we add the transductive training triples into the known triples,
        # when we should probably add the inference triples (do correct me on this)
        training.mapped_triples, 
    ]
```
Also there might be a related issue with the pipeline's early stopper running into this same bug.

### Issue Template Checks

- [x] This is not a feature request (use a different issue template if it is)
- [x] This is not a question (use the [discussions](https://github.com/pykeen/pykeen/discussions/new) forum instead)
- [x] I've read the text explaining why including environment information is important and understand if I omit this information that my issue will be dismissed