Что такое PyTorch Lightning?

Шаблон - это код, который часто перерабатывается практически без функциональных изменений. Шаблон Deep Learning делает код глубокого обучения трудным для чтения, повторного использования, воспроизведения и отладки.

PyTorch Lighting - это легкая оболочка PyTorch для высокопроизводительных исследований искусственного интеллекта, цель которой - абстрагировать шаблон Deep Learning, предоставляя вам полный контроль и гибкость над вашим кодом. С Lightning вы масштабируете свои модели, а не шаблон.

Многие участники сообщества Deep Learning используют PyTorch Lightning, чтобы вывести свои проекты на новый уровень. Увидев некоторые из этих замечательных проектов экосистемы, таких как PyTorch Video, PyTorch Forecasting, PyTorch Tabular, Asteroid, PyTorch Geometric и другие, вы можете спросить себя: Следует ли мне использовать PyTorch Lightning?

Мой ответ категорический да, и вот несколько причин, почему.

10 причин, по которым вам следует использовать PyTorch Lightning для вашего следующего проекта глубокого обучения

1. Читаемость

Код Lightning легче читать, потому что инженерный код абстрагируется, а общие функции, такие как training_steps, process_data, стандартизированы. Те, кто знаком с Lightning, точно знают, где искать, чтобы разобраться в моем коде.

2. Надежность

Путем абстрагирования Boilerplate Lightning справляется с сложными инженерными задачами, предотвращая распространенные ошибки, обеспечивая при этом доступ ко всей гибкости PyTorch, когда это необходимо.

3. Воспроизводимость и сотрудничество

Я отвечаю, что узким местом воспроизводимости при глубоком обучении является то, что модели часто представляют собой просто графы вычислений и весов.

В Lightning все модели и код данных являются автономными, что позволяет отслеживать компоненты, необходимые для воспроизводимости, такие как инициализации, оптимизаторы, функции потерь, преобразования данных и дополнения.

4. Независимость от оборудования

Модули Lightning не зависят от оборудования; если ваш код работает на CPU, он будет работать на GPU, TPU и кластерах, не требуя накопления градиента или управления рангом процесса. Вы даже можете реализовать свои собственные ускорители.

5. Стандартные передовые методы

Lightning позволяет вашему коду использовать передовые практики от контрольных точек, ранней остановки, планирования LR и смешанной точности до стохастического усреднения веса непосредственно из Тренера, не требуя добавления строки дополнительного кода глубокого обучения.

6. Сообщество

PyTorch Lightning имеет специальное сообщество с более чем 3,3 тыс. Проектов экосистемы с открытым исходным кодом, около 500 участников с открытым исходным кодом и десятки интеграций с популярными инструментами машинного обучения, такими как TensorBoard, CometML, Weights & Biases.

Когда вы вкладываете средства в кодирование с помощью Lightning, вы можете найти утешение, зная, что вы не одиноки.

7. Специальная поддержка

В дополнение к сообществу, основная команда Lightning обеспечивает специальные часы работы по вызову, чтобы помочь разблокировать, вдохновить и усилить всех, кто работает над проектами Lightning.

8. Содержание

Команда Lightning Developer Advocacy не только поддерживает вас, но и занимается созданием нового и интересного контента, который помогает делиться передовыми практиками для вывода вашего кода на новый уровень. В дополнение к соответствующему контенту Dev Blog, YouTube и Social, Lightning Team поддерживает несколько передовых проектов экосистемы, таких как Flash, Transformers и Bolts, чтобы помочь вам перейти к следующей работе. уровень.

9. Тестирование

Каждый выпуск тщательно тестируется с каждым новым PR для каждой поддерживаемой версии PyTorch и Python, ОС, нескольких графических процессоров и даже TPU.

10. Сетка

Grid.AI позволяет масштабировать обучение с портативного компьютера в облако, не изменяя ни единой строчки кода. В то время как Grid поддерживает все классические платформы машинного обучения, такие как TensorFlow, Keras, PyTorch и другие. Использование таких функций Lightning, как ранняя остановка, интегрированное ведение журнала, автоматическая контрольная точка и интерфейс командной строки, позволяет сделать традиционные MLOps, лежащие в основе обучения модели, невидимыми.

Следующие шаги

Если у вас есть какие-либо вопросы о PyTorch Lightning, не стесняйтесь обращаться ко мне в комментариях, в Twitter или LinkedIn.

об авторе

Аарон (Ари) Борнштейн - исследователь искусственного интеллекта, страстно увлекающийся историей, занимающийся новыми технологиями и вычислительной медициной. В качестве главы отдела защиты разработчиков в Grid.ai он сотрудничает с сообществом машинного обучения, чтобы решать реальные проблемы с помощью технологий, меняющих правила игры, которые затем документируются, публикуются в открытом доступе и передаются остальному миру.