{"adoption": {"forks": 145, "observed_at": "2026-08-28T04:05:13.750482+00:00", "stars": 1629}, "canonical_url": "https://ross.abutalabs.com/products/torchdistill", "card": {"archived": false, "artifact_type": "framework", "description": "A coding-free framework built on PyTorch for reproducible deep learning studies. PyTorch Ecosystem. 🏆26 knowledge distillation methods presented at TPAMI, CVPR, ICLR, ECCV, NeurIPS, ICCV, AAAI, etc are implemented so far. 🎁 Trained models, training logs and configurations are available for ensuring the reproducibiliy and benchmark.", "domain": ["deep-learning", "machine-learning", "computer-vision", "developer-tools"], "enriched": true, "function": ["deep-learning", "machine-learning", "llm-training", "nlp", "image-processing", "computer-vision", "configuration-management"], "health_score": 99, "homepage": "https://yoshitomo-matsubara.net/torchdistill/", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["yoshitomo-matsubara/torchdistill"], "name": "yoshitomo-matsubara/torchdistill", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-20T07:05:20+00:00", "repo": "yoshitomo-matsubara/torchdistill", "stars": 1629, "tags": ["knowledge-distillation", "pytorch", "yaml-config", "model-compression", "teacher-student", "reproducibility", "image-classification", "object-detection", "semantic-segmentation", "text-classification", "natural-language-processing", "gpu"], "topics": ["knowledge-distillation", "pytorch", "image-classification", "imagenet", "object-detection", "coco", "semantic-segmentation", "cifar10", "cifar100", "colab-notebook", "google-colab", "pascal-voc", "nlp", "natural-language-processing", "transformer", "glue", "amazon-sagemaker-lab", "pytorch-ecosystem", "text-classification"], "urls": [], "use_cases": ["distill a large teacher model into a smaller student model", "run knowledge distillation experiments without writing Python code", "reproduce published knowledge distillation results from papers", "extract intermediate representations from a model without changing its forward interface", "train image classification models on ImageNet or CIFAR via YAML config", "perform object detection or semantic segmentation experiments on COCO or PASCAL VOC", "run text classification experiments on GLUE tasks with Hugging Face models"], "what_it_is": "torchdistill is a modular, configuration-driven PyTorch framework for knowledge distillation and general deep learning experiments, requiring no coding—experiments are defined via declarative YAML files. It implements 26+ state-of-the-art distillation methods and provides trained models, logs, and configs for reproducibility.", "when_to_avoid": ["you need a general-purpose training framework with no distillation focus and prefer writing plain PyTorch", "your project uses a framework other than PyTorch, such as TensorFlow or JAX", "you need highly custom training loops that don't fit the config-driven design", "you want a no-code GUI tool rather than YAML-based configuration"], "when_to_choose": ["you need to apply or benchmark state-of-the-art knowledge distillation methods in PyTorch", "you want reproducible deep learning experiments driven by declarative YAML configs instead of code", "you need to distill models across vision and NLP tasks with pretrained checkpoints available", "you want to extract intermediate model features via forward hooks without modifying model code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/torchdistill", "repo": "yoshitomo-matsubara/torchdistill", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:13.750482+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:48:18.249770+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55215a0fe1bfb9ce6534e64bbae0f9f2d2d748d6c8631393342f287906ca0ab4", "fetched_at": "2026-08-28T04:05:13.750482+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yoshitomo-matsubara/torchdistill"}, {"content_hash": "1ea9132f80e33954ebeb25dd8394b5e6c69dc4efcd9cfc2d7bd90244c5a0293e", "fetched_at": "2026-08-29T11:20:55.668942+00:00", "kind": "homepage", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/"}, {"content_hash": "f776590e978ea44d3f1d7b6804703d25ce4736e7764fd4ead0e86b33671d4ca0", "fetched_at": "2026-08-29T11:20:55.679865+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchdistill/json"}, {"content_hash": "297ff07ebb57afb8121342712dd4c24a33276901dee7482eb25f7b6d4d1cbf38", "fetched_at": "2026-08-29T11:20:55.677972+00:00", "kind": "site_page", "missing": false, "url": "https://yoshitomo-matsubara.net/torchdistill/usage.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 64}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2450, "days_push": 13, "days_rel": 28, "gap_med": 223, "n_releases_24m": 4}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}