Torchdistill (sebelumnya KDKIT ) menawarkan berbagai metode penyulingan pengetahuan yang canggih dan memungkinkan Anda untuk merancang eksperimen (baru) hanya dengan mengedit file konfigurasi YAML deklaratif alih-alih kode Python. Bahkan ketika Anda perlu mengekstrak representasi menengah dalam model guru/siswa, Anda tidak perlu menerapkan kembali model, yang sering mengubah antarmuka ke depan, tetapi sebaliknya menentukan jalur modul dalam file YAML. Lihat makalah ini untuk detail lebih lanjut.
Selain distilasi pengetahuan, kerangka kerja ini membantu Anda merancang dan melakukan eksperimen pembelajaran mendalam umum ( tanpa pengkodean ) untuk studi pembelajaran mendalam yang dapat direproduksi. yaitu, ini memungkinkan Anda untuk melatih model tanpa guru hanya dengan mengecualikan entri guru dari file konfigurasi YAML deklaratif. Anda dapat menemukan contoh -contoh di bawah ini dan dalam konfigurasi/sampel/.
Saat Anda merujuk ke Torchdistill di koran Anda, silakan kutip kertas ini alih -alih repositori GitHub ini.
Jika Anda menggunakan Torchdistill sebagai bagian dari pekerjaan Anda, kutipan Anda dihargai dan memotivasi saya untuk mempertahankan dan meningkatkan kerangka kerja ini!
Anda dapat menemukan dokumentasi API dan proyek penelitian yang memanfaatkan torchdistill di https://yoshitomo-matsubara.net/torchdistill/
Menggunakan ForwardHookManager , Anda dapat mengekstrak representasi menengah dalam model tanpa memodifikasi antarmuka fungsi maju.
Contoh notebook ini akan memberi Anda gambaran yang lebih baik tentang penggunaan seperti distilasi pengetahuan dan analisis representasi perantara.
Di Torchdistill , banyak komponen dan modul Pytorch diabstraksikan misalnya, model, dataset, pengoptimal, kerugian, dan banyak lagi! Anda dapat mendefinisikannya dalam file konfigurasi pyyaml deklaratif sehingga dapat dilihat sebagai ringkasan percobaan Anda, dan dalam banyak kasus, Anda tidak perlu menulis kode Python sama sekali . Lihatlah beberapa konfigurasi yang tersedia di konfigurasi/. Anda akan melihat modul apa yang diabstraksi dan bagaimana mereka didefinisikan dalam file konfigurasi pyyaml deklaratif untuk merancang percobaan.
Jika Anda ingin menggunakan modul Anda sendiri (model, fungsi kerugian, dataset, dll) dengan kerangka kerja ini, Anda dapat melakukannya tanpa mengedit kode dalam paket lokal torchdistill/ .
Lihat dokumentasi resmi dan diskusi untuk lebih jelasnya.
Akurasi validasi TOP-1 untuk ILSVRC 2012 (ImageNet)
Kode yang dapat dieksekusi dapat ditemukan dalam contoh/ seperti
Untuk CIFAR-10 dan CIFAR-100, beberapa model diimplementasikan dan tersedia sebagai model pretrained di Torchdistill . Rincian lebih lanjut dapat ditemukan di sini.
Beberapa model transformator disesuaikan dengan torchdistill untuk tugas lem tersedia di Hugging Face Model Hub. Contoh hasil benchmark lem dan detail dapat ditemukan di sini.
Contoh -contoh berikut tersedia dalam demo/. Perhatikan bahwa contoh -contoh ini untuk pengguna Google Colab dan kompatibel dengan Amazon Sagemaker Studio Lab. Biasanya, contoh/ akan menjadi referensi yang lebih baik jika Anda memiliki GPU sendiri.
Contoh -contoh ini menulis file prediksi tes untuk Anda melihat kinerja pengujian di sistem leaderboard lem.
Jika Anda menemukan model di hub pytorch atau repositori gitub yang mendukung hub pytorch, Anda dapat mengimpornya sebagai model guru/siswa hanya dengan mengedit file konfigurasi YAML deklaratif.
Misalnya, jika Anda menggunakan resnest-50 pretrained yang tersedia di HuggingFace/Pytorch-Image-Models (alias TIMM ) sebagai model guru untuk dataset Imagenet, Anda dapat mengimpor model melalui hub Pytorch dengan entri berikut dalam file konfigurasi YAML deklaratif Anda.
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 ."
Jangan ragu untuk membuat masalah jika Anda menemukan bug.
Jika Anda memiliki permintaan pertanyaan atau fitur, mulailah diskusi baru di sini. Silakan cari melalui masalah dan diskusi dan pastikan masalah/pertanyaan/permintaan Anda belum ditangani.
Permintaan tarik dipersilakan. Mulailah dengan masalah dan diskusikan solusi dengan saya daripada memulai dengan permintaan tarik.
Jika Anda menggunakan Torchdistill dalam riset Anda, silakan kutip makalah berikut:
[Kertas] [pracetak]
@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 }
}[Kertas] [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 }
} Proyek ini telah didukung oleh kredit OSS Travis CI dan program lisensi gratis Jetbrain (open source) masing -masing sejak November 2021 dan Juni 2022.