Torchdistill (ранее KDKIT ) предлагает различные современные методы дистилляции знаний и позволяет вам разрабатывать (новые) эксперименты, просто редактируя декларативный файл конфигурации YAML вместо кода Python. Даже когда вам нужно извлечь промежуточные представления в модели учителя/ученика, вам не нужно будет переопределять модели, которые часто изменяют интерфейс вперед, но вместо этого указывают путь модуля в файле YAML. Обратитесь к этим статьям для более подробной информации.
В дополнение к дистилляции знаний, эта структура помогает вам разрабатывать и проводить общие эксперименты по глубокому обучению ( без кодирования ) для воспроизводимых исследований глубокого обучения. т.е. это позволяет вам обучать модели без учителей, просто исключая записи учителей из декларативного файла конфигурации YAML. Вы можете найти такие примеры ниже и в конфигурации/образец/.
Когда вы обращаетесь к Torchdistill в своей статье, пожалуйста, укажите эти документы вместо этого репозитория GitHub.
Если вы используете Torchdistill в рамках своей работы, ваша цитата ценится и мотивирует меня поддерживать и обновить эту структуру!
Вы можете найти документацию API и исследовательские проекты, которые используют Torchdistill на https://yoshitomo-matsubara.net/torchdistill/
Используя Forwerhookmanager , вы можете извлечь промежуточные представления в модель без изменения интерфейса его прямой функции.
Этот пример ноутбука даст вам лучшее представление об использовании, таком как дистилляция знаний и анализ промежуточных представлений.
В Torchdistill многие компоненты и модули Pytorch абстрагированы, например, модели, наборы данных, оптимизаторы, потери и многое другое! Вы можете определить их в декларативном файле конфигурации Pyyaml, чтобы его можно было рассматривать как сводку вашего эксперимента, и во многих случаях вам вообще не нужно будет писать код Python . Посмотрите на некоторые конфигурации, доступные в Configs/. Вы увидите, какие модули абстрагированы и как они определены в декларативном файле конфигурации Pyyaml для разработки эксперимента.
Если вы хотите использовать свои собственные модули (модели, функции потерь, наборы данных и т. Д.) В этой структуре вы можете сделать это без редактирования кода в локальном пакете torchdistill/ .
Смотрите официальную документацию и обсуждения для более подробной информации.
Точность проверки TOP-1 для ILSVRC 2012 (ImageNet)
Исполняемый код можно найти в примерах/ например
Для CIFAR-10 и CIFAR-100 некоторые модели переосмысливаются и доступны в качестве предварительных моделей в TorchDistill . Более подробную информацию можно найти здесь.
Некоторые модели трансформаторов, настраиваемые Tochdistill для задач Glue, доступны в Hust Model Hub об объятиях. Образец клейбахновых результатов и деталей можно найти здесь.
Следующие примеры доступны в демонстрации/. Обратите внимание, что эти примеры предназначены для пользователей Google Colab и совместимы с Amazon Sagemaker Studio Lab. Обычно примеры/ были бы лучшей ссылкой, если у вас есть собственный графический процессор.
Эти примеры записывают файлы предсказания тестирования, чтобы вы могли увидеть производительность тестирования в системе таблицы лидеров клея.
Если вы найдете модели на репозиториях Pytorch или GitHub, поддерживающих Hub Pytorch, вы можете импортировать их в качестве моделей учителя/ученика, просто редактируя декларативный файл конфигурации YAML.
Например, если вы используете предварительно проведенный Resnest-50, доступный в моделях Huggingface/Pytorch-Image (AKA TIMM ) в качестве модели учителя для набора данных ImageNet, вы можете импортировать модель через Hub Pytorch со следующей записью в вашем декларативном файле конфигурации 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 в своем исследовании, пожалуйста, укажите следующие документы:
[Бумага] [Препринт]
@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] [Препринт]
@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 }
} Этот проект был поддержан Travis Ci's OSS Cutrits и бесплатными лицензионными программами Jetbrain (Open Source) с ноября 2021 года и июня 2022 года соответственно.