PyTorchPipe (PTP) — это фреймворк, который облегчает создание и поддержание системы обучения нейросети. PTP разбит на блоки по этапам обучения нейросети, которые связываются в единую систему.
Блоки PTP — это разные этапы создания нейросети: от предобработки данных до тестирования модели, — которые взаимодействуют друг с другом через потоки данных. Каждый поток может состоять из нескольких компонентов: кусок данных для задачи, любое количество обучающих компонентов (моделей) и дополнительные компоненты для обработки данных и вычислений.
В результате процедура обучения и тестирования моделей перестает быть привязанной к задаче и архитектуре модели. В PTP есть встроенные механизмы для проверки совместимости новых данных для созданного пайплайна. Система создана для облегчения разработки комплексных пайплайнов и тестирования моделей.
PyTorchPipe базируется на PyTorch. PyTorch используется в том числе для распределения вычисления на CPU/GPU ресурсах. Тьюториал по работе с PTP доступен по ссылке.
Датасеты
PTP на данный момент содержит в себе базовые датасеты для задач из трех областей:
- компьютерного зрения (MNIST, CIFAR);
- обработки естественного языка (WiLY, WikiText, ANKI);
- визуальные вопросно-ответные системы (CLEVR, GQA, ImageCLEF VQA)
Архитектура
То, что стандартно называют моделью, в PTP называется пайплайном. Пайплайн состоит из множества взаимосвязанных компонентов с одной или более моделями. Модели — это обучаемые компоненты пайплана.
В PTP встроены модели для задач из четырех областей:
- компьютерного зрения;
- обработки естественного языка;
- модели общего назначения;
- визуальная вопросно-ответная система
Для некоторых моделей можно выбрать параметры.
Помимо моделей, в PTP доступны компоненты для работы с данными:
- Методы предобработки текстовых данных;
- Функции потерь и статистики;
- Трансформации формата данных;
- Просмотр данных
Воркеры в PTP — это Python-скрипты, которые стандартны для задач, моделей и пайплайнов, с которыми работают. В текущей версии фреймворка доступны три воркера: ptp-offline-trainer, ptp-online-trainer и ptp-processor. Они отвечают за то, как проходит процесс обучения.
Подробное описание инструмента доступно в официальном репозитории на GitHub.