Torchdistill (이전 KDKIT )은 다양한 최첨단 지식 증류 방법을 제공하며 Python 코드 대신 선언적 YAML 구성 파일을 편집하여 단순히 (새로운) 실험을 설계 할 수 있습니다. 교사/학생 모델에서 중간 표현을 추출해야하더라도 모델을 다시 구현할 필요가 없으며 , 종종 앞으로의 인터페이스를 변경하고 대신 YAML 파일에 모듈 경로를 지정합니다. 자세한 내용은이 논문을 참조하십시오.
이 프레임 워크는 지식 증류 외에도 재현 가능한 딥 러닝 연구를위한 일반적인 딥 러닝 실험 ( 코딩없이 )을 설계하고 수행하는 데 도움이됩니다. 즉, 선언적 YAML 구성 파일에서 교사 항목을 제외하여 교사없이 모델을 훈련시킬 수 있습니다. 아래의 예와 구성/샘플/에서 찾을 수 있습니다.
논문에서 Torchdistill을 언급 할 때이 Github 저장소 대신이 논문을 인용하십시오.
작업의 일부로 Torchdistill을 사용하는 경우 , 인용이 높이 평가 되고이 프레임 워크를 유지하고 업그레이드하도록 동기를 부여합니다!
https://yoshitomo-matsubara.net/torchdistill/에서 Torchdistill을 활용하는 API 문서 및 연구 프로젝트를 찾을 수 있습니다.
ForwardHookManager를 사용하면 전방 기능의 인터페이스를 수정하지 않고 모델에서 중간 표현을 추출 할 수 있습니다.
이 예제 노트북은 지식 증류 및 중간 표현 분석과 같은 사용에 대한 더 나은 아이디어를 제공합니다.
Torchdistill 에서는 많은 구성 요소와 Pytorch 모듈이 추상화됩니다. 예를 들어 모델, 데이터 세트, 최적화, 손실 등! 선언적 pyyaml 구성 파일로 정의 할 수 있으므로 실험의 요약으로 볼 수 있으며 대부분의 경우 Python 코드를 전혀 작성할 필요가 없습니다 . configs/에서 사용 가능한 일부 구성을 살펴보십시오. 실험을 설계하기 위해 선언적 Pyyaml 구성 파일에서 어떤 모듈이 추상화되었는지, 어떻게 모듈이 정의되는지를 알 수 있습니다.
이 프레임 워크와 함께 자신의 모듈 (모델, 손실 함수, 데이터 세트 등)을 사용하려면 로컬 패키지 torchdistill/ 에서 코드를 편집하지 않고도 그렇게 할 수 있습니다.
자세한 내용은 공식 문서 및 토론을 참조하십시오.
ILSVRC 2012 (ImageNet)의 상위 1 유효성 정확도
실행 가능한 코드는 예제/와 같은 예에서 찾을 수 있습니다
CIFAR-10 및 CIFAR-100의 경우 일부 모델은 TorchDistill 에서 사전에 사전 모델로 상환되고 사용할 수 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다.
접착제 작업을 위해 Torchdistill 에 의해 미세 조정 된 일부 변압기 모델은 Hugging 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의 교사 모델로 사용하는 경우 선언 YAML 구성 파일에서 다음 항목으로 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을 사용하는 경우 다음 논문을 인용하십시오.
[종이] [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 }
}[종이] [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의 무료 라이센스 프로그램 (오픈 소스)에 의해 지원되었습니다.