Skip to content

Framework Overview

RecDistillery is organized around a teacher-student distillation workflow for recommender systems. It keeps external recommender frameworks behind adapters and exposes a unified PyTorch training loop for teacher training, student training, distillation, checkpointing, and evaluation.

Core Package

The main package is recdistill/:

recdistill/
  data/                 dataset loading and interaction batches
  teachers/             teacher import, registry, state, serialization
  distillers/           DE, RRD, UnKD, HTD, FTD, and composite distillers
  samplers/             negative and teacher-guided sampling
  trainers/             training loop abstractions
  checkpointing.py      teacher, student, and distilled-student artifacts
  config_integration.py config composition helpers
  evaluation.py         top-k ranking metrics
  experiment_runner.py  distillation experiment runner
  factories.py          model and distiller builders
  framework_backbone.py RecBole, Elliot, and Lenskit adapters
  native_runner.py      native teacher/student training runner
  registry.py           canonical aliases
  supported_models.py   trainable model metadata

Runtime Flow

prepared dataset
  -> teacher training or teacher import
  -> optional teacher evaluation
  -> student training baseline
  -> student distillation
  -> student evaluation
  -> tracked results and artifacts

Main Entry Points

scripts/teacher_training/teacher_training.py
scripts/student_training/student_training.py
scripts/recdistill/import_teacher.py
scripts/recdistill/train_student_from_config.py
scripts/recdistill/evaluate_teacher.py
scripts/recdistill/evaluate_students.py

Supported Frameworks

The current adapter-backed training set covers models from RecBole, Elliot, and Lenskit. The supported model table is defined in recdistill.supported_models and exposed by the welcome script:

python scripts/recdistill/welcome.py