Torchdistill (ehemals KDKit ) bietet verschiedene Methoden zur Destillationsmethode der Kenntnisse und ermöglicht es Ihnen, (neue) Experimente einfach zu entwerfen, indem Sie einfach eine deklarative YAML-Konfigurationsdatei anstelle von Python-Code bearbeiten. Auch wenn Sie Zwischendarstellungen in Lehrer-/Schülermodellen extrahieren müssen, müssen Sie die Modelle nicht neu implementieren, die häufig die Schnittstelle des Vorlaufs ändern, sondern den Modulpfad (en) in der YAML -Datei angeben. Weitere Informationen finden Sie in diesen Papieren.
Neben der Wissensdestillation hilft Ihnen dieses Rahmen, allgemeine Deep -Lern -Experimente ( ohne Codierung ) für reproduzierbare Deep -Learning -Studien zu entwerfen und durchzuführen. dh es ermöglicht es Ihnen, Modelle ohne Lehrer zu trainieren, indem Sie nur Lehrereinträge von einer deklarativen YAML -Konfigurationsdatei ausschließen. Sie finden solche Beispiele unten und in Konfigurationen/Beispiel/.
Wenn Sie sich auf Torchdistill in Ihrem Papier beziehen, zitieren Sie diese Papiere anstelle dieses Github -Repositorys.
Wenn Sie Torchdistill als Teil Ihrer Arbeit verwenden , wird Ihr Zitat geschätzt und motiviert mich, dieses Framework aufrechtzuerhalten und zu aktualisieren!
Sie finden die API-Dokumentations- und Forschungsprojekte, die Torchdistill unter https://yoshitomo-matsubrara.net/torchdistill/ nutzen
Mit ForwardHookManager können Sie Zwischendarstellungen im Modell extrahieren, ohne die Schnittstelle seiner Vorwärtsfunktion zu ändern.
In diesem Beispiel -Notizbuch gibt es Ihnen eine bessere Vorstellung von der Verwendung wie Wissensdestillation und Analyse von Zwischendarstellungen.
In Torchdistill sind viele Komponenten und Pytorch -Module abstrahiert. Sie können sie in einer deklarativen Pyyaml -Konfigurationsdatei definieren, die als Zusammenfassung Ihres Experiments angesehen werden kann. In vielen Fällen müssen Sie überhaupt keinen Python -Code schreiben . Schauen Sie sich einige Konfigurationen an, die in Configs/verfügbar sind. Sie werden sehen, welche Module abstrahiert werden und wie sie in einer deklarativen Pyyaml -Konfigurationsdatei definiert sind, um ein Experiment zu entwerfen.
Wenn Sie mit diesem Framework Ihre eigenen Module (Modelle, Verlustfunktionen, Datensätze usw.) verwenden möchten, können Sie dies tun, ohne Code im lokalen Paket torchdistill/ zu bearbeiten.
Weitere Informationen finden Sie in den offiziellen Dokumentationen und Diskussionen.
Top-1-Validierungsgenauigkeit für ILSVRC 2012 (ImageNet)
Ausführbarer Code finden Sie in Beispielen/ wie z.
Für CIFAR-10 und CIFAR-100 werden einige Modelle neu implementiert und als vorbereitete Modelle in Torchdistill erhältlich. Weitere Details finden Sie hier.
Einige Transformatormodelle, die von Torchdistill für Kleberaufgaben abgestimmt sind, sind bei Hugging Face Model Hub erhältlich. Die Ergebnisse und Details des Beispielkleber -Benchmarks finden Sie hier.
Die folgenden Beispiele finden Sie in Demo/. Beachten Sie, dass diese Beispiele für Google Colab -Benutzer gelten und mit Amazon Sagemaker Studio Lab kompatibel sind. Normalerweise wären Beispiele/ wären eine bessere Referenz, wenn Sie Ihre eigenen GPUs haben.
Diese Beispiele schreiben Testvorhersagedateien aus, mit denen Sie die Testleistung im Klebebohring -System sehen können.
Wenn Sie Modelle in Pytorch Hub oder Github -Repositories finden, die den Pytorch Hub unterstützen, können Sie sie als Lehrer-/Schülermodelle importieren, indem Sie einfach eine deklarative YAML -Konfigurationsdatei bearbeiten.
ZB, wenn Sie einen vorgezogenen Resnest-50 verwenden, der in Huggingface/Pytorch-Image-Modellen (AKA TIMM ) als Lehrermodell für den ImageNet-Datensatz verfügbar ist, können Sie das Modell über Pytorch-Hub mit dem folgenden Eintrag in Ihrer deklarativen YAML-Konfigurationsdatei importieren.
models :
teacher_model :
key : ' resnest50d '
repo_or_dir : ' huggingface/pytorch-image-models '
kwargs :
num_classes : 1000
pretrained : True pip3 install torchdistill
# or use pipenv
pipenv install torchdistill
git clone https://github.com/yoshitomo-matsubara/torchdistill.git
cd torchdistill/
pip3 install -e .
# or use pipenv
pipenv install "-e ."
Fühlen Sie sich frei, ein Problem zu erstellen, wenn Sie einen Fehler finden.
Wenn Sie entweder eine Frage- oder Feature -Anfrage haben, starten Sie hier eine neue Diskussion. Bitte suchen Sie durch Probleme und Diskussionen und stellen Sie sicher, dass Ihr Problem/Ihre Frage/Ihre Anfrage noch nicht behandelt wurde.
Pull -Anfragen sind willkommen. Bitte beginnen Sie mit einem Problem und besprechen Sie Lösungen mit mir, anstatt mit einer Pull -Anfrage zu beginnen.
Wenn Sie Torchdistill in Ihrer Forschung verwenden, zitieren Sie bitte die folgenden Papiere:
[Papier] [Vordruck]
@inproceedings { matsubara2021torchdistill ,
title = { {torchdistill: A Modular, Configuration-Driven Framework for Knowledge Distillation} } ,
author = { Matsubara, Yoshitomo } ,
booktitle = { International Workshop on Reproducible Research in Pattern Recognition } ,
pages = { 24--44 } ,
year = { 2021 } ,
organization = { Springer }
}[Papier] [OpenReview] [Preprint]
@inproceedings { matsubara2023torchdistill ,
title = { {torchdistill Meets Hugging Face Libraries for Reproducible, Coding-Free Deep Learning Studies: A Case Study on NLP} } ,
author = { Matsubara, Yoshitomo } ,
booktitle = { Proceedings of the 3rd Workshop for Natural Language Processing Open Source Software (NLP-OSS 2023) } ,
publisher = { Empirical Methods in Natural Language Processing } ,
pages = { 153--164 } ,
year = { 2023 }
} Dieses Projekt wurde seit November 2021 bzw. Juni 2022 von den OSS -Credits von Travis CI und der kostenlosen Lizenzprogramme von JetBrain unterstützt.