Новости · 13 августа 2026 г.
Тестовая выборка перекрылась с обучением: SplitLight нашёл 89% утечки на Diginetica
Сбер и AIRI открыли SplitLight: тулкит считает, сколько теста утекло в обучение и как схема разбиения двигает метрику.

На датасете Diginetica популярная схема разбиения leave-one-out превращает в утечку 89% целевых событий.
Периоды обучения и теста перекрываются полностью: модель видит будущее и на нём же экзаменуется. Так меряет почти вся область. Из 75 работ с офлайн-оценкой 77,3% разбивали данные через leave-one-out, и лишь 6,7% брали global temporal split в постановке next-item (замер той же команды, 22.07.2025).
Год назад команда описала масштаб проблемы цифрами. Теперь она выложила инструмент, который считает эти цифры на твоём датасете.
Что меряет SplitLight. Он прогоняет данные через разные схемы разбиения и показывает, сколько качества держится на артефактах. Учёт холодных объектов роняет NDCG@10 на 1,2-20% в зависимости от датасета, а перемешивание событий с одинаковым таймстемпом при leave-one-out двигает результат до 9,5%.
Холодных целей, которых не было в обучении, в тесте от 22,32% на Amazon Beauty до 32,59% на Dressipi. Удаление подряд идущих дубликатов при global temporal split даёт до +60% NDCG@10 там, где пользователи часто повторяют одно действие. Прирост приносит чистка данных, а не модель.
Как поставить. Пакета на PyPI нет, инструмент ставится клоном репозитория: `pip install -r requirements.txt`, затем `export PYTHONPATH="$(pwd):$PYTHONPATH"` и `export SEQ_SPLITS_DATA_PATH=$(pwd)/data`. Нужен Python 3.10 или 3.11, на входе CSV или Parquet.
Без кода работает веб-интерфейс на Streamlit. Команда `streamlit run SplitLight.py` из папки репозитория поднимает его в браузере, рядом лежат демо-ноутбуки и видео-прогон.
SplitLight работает не с любыми обучающими данными: это тулкит для датасетов и разбиений рекомендательных систем. Проверяли на шести наборах, среди них MovieLens-20M, Diginetica и Zvuk.
первоисточник