Torchdistill (以前是KDKIT )提供了各种最先进的知识蒸馏方法,并使您可以通过编辑声明性YAML配置文件而不是Python代码来设计(新)实验。即使您需要在教师/学生模型中提取中间表示形式,您也无需重新实现模型,而这些模型通常会更改向前的界面,而是指定YAML文件中的模块路径。有关更多详细信息,请参阅这些论文。
除了知识蒸馏外,该框架还可以帮助您设计和执行一般的深度学习实验(无需编码),以进行可再现的深度学习研究。即,它使您可以通过将教师条目排除在声明性的YAML配置文件中,而无需老师培训模型。您可以在下面和configs/sample/中找到此类示例。
当您在论文中提到Torchdistill时,请引用这些论文而不是此GitHub存储库。
如果您将Torchdistill用作工作的一部分,那么您的引文将受到赞赏,并激励我维护和升级此框架!
您可以在https://yoshitomo-matsubara.net/torchdistill/上找到利用Torchdistill的API文档和研究项目
使用ForwardHookManager ,您可以在模型中提取中间表示,而无需修改其正向函数的接口。
本示例笔记本将使您更好地了解使用诸如知识蒸馏和中间表示的分析。
在Torchdistill中,许多组件和Pytorch模块都是抽象的,例如,模型,数据集,优化器,损失等等!您可以在声明的PYYAML配置文件中定义它们,以便可以将其视为实验的摘要,在许多情况下,您将根本不需要编写Python代码。查看Configs/中可用的一些配置。您会看到哪些模块抽象了,以及如何在声明的PYYAML配置文件中定义它们以设计实验。
如果您想使用此框架使用自己的模块(模型,损失功能,数据集等),则可以在本地软件包torchdistill/中编辑代码/。
有关更多详细信息,请参见官方文档和讨论。
ILSVRC 2012(Imagenet)的TOP-1验证精度
可执行代码可以在示例/中找到
对于CIFAR-10和CIFAR-100,某些模型将重新实现,并在Torchdistill中作为验证模型可用。可以在此处找到更多详细信息。
Hugging Face Model Hub可以使用一些由Torchdistill微调用于胶水任务的变压器模型。样品胶基准的结果和详细信息可以在此处找到。
以下示例在演示中可用。请注意,这些示例适用于Google Colab用户,并且与Amazon Sagemaker Studio Lab兼容。通常,如果您拥有自己的GPU,则示例/将是更好的参考。
这些示例写出了测试预测文件,供您查看胶排行榜系统中的测试性能。
如果您在支持Pytorch Hub的Pytorch Hub或GitHub存储库上找到模型,则只需编辑声明性的YAML配置文件即可将它们导入教师/学生模型。
例如,如果您使用huggingface/pytorch-image-models(aka timm )中可用的Resnest-50作为Imagenet数据集的教师模型,则可以通过Pytorch Hub在您的声明性YAML配置文件中使用以下条目导入该模型。
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 ,请引用以下论文:
[纸] [preprint]
@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的免费许可计划(开源)已支持该项目。