Facebook выпустила стабильную версию библиотеки для машинного обучения PyTorch 1.0. В данную итерацию добавили поддержку крупных облачных платформ, интерфейс на C++, набор JIT-компиляторов и различные улучшения.
Новые возможности библиотеки
Стабильная версия получила набор JIT-компиляторов, которые устраняют зависимость кода от интерпретатора Python. Код модели трансформируется в Torch Script — надстройку над Python. Сохраняя возможность работать с моделью в среде Python, пользователь может загрузить её и в другие проекты, не связанные с этим языком. Так, разработчики PyTorch заявляют, что обработанный таким образом код можно будет использовать в C++ API.
Пакет torch.distributed и модуль torch.nn.parallel.DistributedDataParallel полностью переработаны. torch.distributed теперь обладает большей производительностью и асинхронно работает со библиотеками Gloo, NCCL и MPI.
Разработчики добавили в PyTorch 1.0 обёртку на С++. Она содержит аналоги компонентов интерфейса на Python, такие как torch.nn, torch.optim, torch.data. По словам создателей, новый интерфейс должен обеспечить высокую производительность для приложений на C++. Правда, C++ API пока экспериментальный, но его можно использовать в проектах уже сейчас.
Для повышения эффективности работы с PyTorch 1.0 создан репозиторий Torch Hub, в котором хранятся предобученные модели нейросетей. Опубликовать собственную разработку можно с использованием файла hubconf.py, после чего модель будет доступна для скачивания любым пользователем посредством torch.hub.load API.
Из библиотеки удалили поддержку расширений на Си и модуль torch.utils.trainer.
Поддержка облачных технологий в PyTorch 1.0
Крупные IT-корпорации, такие как Amazon, Google, и Microsoft, работают над внедрением PyTorch в свои облачные сервисы. Например, Amazon в конце ноября 2018 года представила сервис Amazon SageMaker Neo, позволяющий построить и обучить один раз модели машинного обучения на PyTorch 1.0, а затем развернуть их в облаке AWS с двукратной производительностью.
Возможность работы с библиотекой также доступна на сервисах Google Cloud Platform и Microsoft Azure Machine Learning. Разработчики подготовили пошаговые инструкции по реализации моделей обучения на этих платформах с помощью PyTorch 1.0.
Обучающие курсы
Facebook и образовательная компания Udacity подготовили и запустили в ноябре 2018 года бесплатный курс для подготовки специалистов по работе с PyTorch Introduction to Deep Learning with PyTorch, а также программу PyTorch Challenge. По заявлению разработчиков, за первые несколько недель в программе приняли участие десятки тысяч студентов. Помимо онлайн-образования, курсы инициировали множество встреч специалистов по машинному обучению по всему миру, от США до Индонезии.
В будущем обучение PyTorch планируют включить в комплексные программы AI Nanodegree.
Расширения для PyTorch
Независимые инженеры уже создали несколько инструментов для расширения возможностей PyTorch. Фреймворк Horovod помогает распределить между несколькими GPU модель обучения, разработанную для одного процессора. PyTorch Geometry позволяет реализовать на базе библиотеки распознавание геометрических образов.
Сама Facebook также разработала библиотеку с открытым исходным кодом для PyTorch 1.0 — Translate, предназначенную для машинных переводов.
Разработчики PyTorch напоминают, что сообщество программистов, вовлечённых в их проект, второе по темпам роста на GitHub. За 2018 год количество участников увеличилось в 2,8 раз. Создатели библиотеки заявили о намерении обеспечить более низкий порог вхождения в конгломерат разработчиков под PyTorch 1.0.
Более подробно ознакомиться с изменениями в фреймворке можно в заметках к выпуску PyTorch 1.0.
Facebook выпустила предварительную версию PyTorch 1.0 ещё в начале октября 2018 года, и за два месяца разработчики довели фреймворк до стабильного состояния.
Источник: