TorchDistill (以前のKDKIT )は、さまざまな最先端の知識蒸留方法を提供し、Pythonコードの代わりに宣言的なYAML構成ファイルを編集するだけで(新しい)実験を設計できます。教師/生徒モデルで中間表現を抽出する必要がある場合でも、モデルを再実装する必要はありません。モデルは、フォワードのインターフェイスを変更することが多いため、YAMLファイルのモジュールパスを指定します。詳細については、これらの論文を参照してください。
知識の蒸留に加えて、このフレームワークは、再現可能な深い学習研究のための一般的な深い学習実験(コーディングなし)を設計および実行するのに役立ちます。つまり、宣言的なYAML構成ファイルから教師のエントリを除外するだけで、教師なしでモデルをトレーニングできます。このような例は、以下とconfigs/sample/で見つけることができます。
論文でTorchdistillを参照する場合は、このGitHubリポジトリの代わりにこれらの論文を引用してください。
あなたがあなたの仕事の一環としてTorchdistillを使用する場合、あなたの引用は高く評価され、このフレームワークを維持し、アップグレードするように私を動機付けます!
https://yoshitomo-matsubara.net/torchdistill/でTorchdistillを活用するAPIドキュメントと研究プロジェクトを見つけることができます。
ForwardHookManagerを使用して、その前方関数のインターフェイスを変更せずにモデルで中間表現を抽出できます。
この例ノートブックは、知識の蒸留や中間表現の分析などの使用法のより良いアイデアを提供します。
Torchdistillでは、多くのコンポーネントとPytorchモジュールが、モデル、データセット、オプティマイザー、損失などを抽象化しています!それらを宣言的なpyyaml設定ファイルで定義して、実験の要約として見ることができます。多くの場合、 Pythonコードをまったく記述する必要はありません。構成/で利用可能ないくつかの構成をご覧ください。どのモジュールが抽出されているか、およびそれらが宣言的なpyyaml設定ファイルでどのように定義されているかを確認して、実験を設計します。
このフレームワークを使用して独自のモジュール(モデル、損失関数、データセットなど)を使用する場合は、ローカルパッケージtorchdistill/でコードを編集せずにそうすることができます。
詳細については、公式のドキュメントとディスカッションを参照してください。
ILSVRC 2012(Imagenet)のTOP-1検証精度
実行可能コードは、例/などにあります
CIFAR-10およびCIFAR-100の場合、一部のモデルは再実装され、 Torchdistillで優先モデルとして利用可能です。詳細については、こちらをご覧ください。
Torchdistillが接着剤タスクのために微調整した一部のトランスモデルは、Face Model Hubを抱きしめて利用できます。サンプル接着剤のベンチマークの結果と詳細はこちらでご覧いただけます。
次の例は、デモ/で入手できます。これらの例は、Google Colabユーザー向けであり、Amazon Sagemaker Studio Labと互換性があることに注意してください。通常、あなた自身のGPUを持っている場合、例/はより良い参照になります。
これらの例は、接着剤リーダーボードシステムでテストパフォーマンスを確認するためにテスト予測ファイルを書きます。
Pytorch HubまたはGithubリポジトリでPytorch Hubをサポートするモデルを見つけた場合、宣言的なYAML構成ファイルを編集するだけで、教師/学生モデルとしてインポートできます。
たとえば、Huggingface/Pytorch-Image-Models(別名TIMM )で利用可能な前提条件のResnest-50をImagenet Datasetの教師モデルとして使用する場合、Pytorch Hubを介して次のエントリを使用してモデルをインポートできます。
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 ."
バグが見つかった場合は、お気軽に問題を作成してください。
質問または機能のリクエストがある場合は、ここで新しいディスカッションを開始してください。問題や議論を検索し、問題/質問/リクエストがまだ対処されていないことを確認してください。
プルリクエストは大歓迎です。問題から始めて、プルリクエストから始めるのではなく、ソリューションについて話し合ってください。
調査でTorchdistillを使用している場合は、次の論文を引用してください。
[紙] [プリプリント]
@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 }
}[Paper] [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 }
}このプロジェクトは、2021年11月と2022年6月以降、それぞれTravis CIのOSSクレジットとJetbrainの無料ライセンスプログラム(オープンソース)によってサポートされています。