Начало работы | Руководство по установке | Рекомендации по участию | Ресурсы | Коммуникация
NVIDIA Modulus — это платформа глубокого обучения с открытым исходным кодом для создания, обучения и точной настройки моделей глубокого обучения с использованием новейших методов SciML для AI4науки и инженерии.
Modulus предоставляет утилиты и оптимизированные конвейеры для разработки моделей искусственного интеллекта, которые объединяют знания физики с данными, позволяя делать прогнозы в реальном времени.
Независимо от того, изучаете ли вы использование нейронных операторов, GNN или преобразователей, или интересуетесь нейронными сетями, основанными на физике, или гибридным подходом между ними, Modulus предоставляет вам оптимизированный стек, который позволит вам обучать ваши модели в масштабе.
Подробнее о модуле
Пакеты для конкретных доменов
Масштабируемая библиотека обучения, оптимизированная для графического процессора
Набор моделей машинного обучения с учетом физики
Бесшовная интеграция с PyTorch
Простая настройка и расширение
AI4Научная библиотека
Кто вносит вклад в Modulus
Зачем использовать модуль
Начиная
Ресурсы
Установка
Содействие
Коммуникация
Лицензия
На детальном уровне Modulus предоставляет библиотеку из нескольких ключевых компонентов:
Компонент | Описание |
---|---|
модули.модели | Коллекция оптимизированных, настраиваемых и простых в использовании моделей, таких как нейронные операторы Фурье, графовые нейронные сети и многие другие. |
модуль.datapipes | Библиотека конвейера данных и загрузчика данных, включая тестовые каналы данных, погодные каналы данных и каналы данных графиков. |
модуль.распределенный | Библиотека распределенных вычислений, созданная на базе torch.distributed и обеспечивающая параллельное обучение всего за несколько шагов. |
модуль.sym.geometry | Библиотека для обработки геометрии для обучения DL с использованием моделирования Constructive Solid Geometry и файлов САПР в формате STL. |
модуль.sym.eq | Библиотека для использования PDE в обучении DL с несколькими реализациями часто наблюдаемых уравнений и простыми способами настройки. |
Полный список см. в документации Modulus API для Modulus Core и Modulus Sym.
Обычно модуль используется как:
Дополнительный инструмент к Pytorch при изучении искусственного интеллекта для приложений SciML и AI4Science.
Исследовательская платформа глубокого обучения, обеспечивающая масштабируемость и оптимальную производительность на графических процессорах NVIDIA.
Разрабатываем дальше:
Modulus предоставляет высокооптимизированную и масштабируемую библиотеку обучения для максимизации мощности графических процессоров NVIDIA. Утилиты распределенных вычислений обеспечивают эффективное масштабирование от одного графического процессора до кластеров графических процессоров с несколькими узлами с помощью нескольких строк кода, обеспечивая крупномасштабность. Модели машинного обучения (ML) с учетом физики можно быстро и эффективно обучать. Фреймворк включает поддержку продвинутых версий. утилиты оптимизации, индивидуальные каналы передачи данных, утилиты проверки для повышения сквозной скорости обучения.
Modulus предлагает обширную библиотеку современных моделей, специально разработанных для приложений физического машинного обучения. Зоопарк моделей включает в себя обобщаемые архитектуры моделей, такие как нейронные операторы Фурье (FNO), DeepONet, нейронные сети с учетом физики (PINN), графовые нейронные сети (GNN) и генеративные модели искусственного интеллекта, такие как диффузионные модели, а также модели для конкретной предметной области, такие как Прогноз погоды с глубоким обучением (DLWP) и сеть сверхвысокого разрешения (SrNN) и другие. Эти модели оптимизированы для различных областей физики, таких как вычислительная гидродинамика, строительная механика и электромагнетизм. Пользователи могут загружать, настраивать и использовать эти модели в соответствии со своими конкретными потребностями, что значительно сокращает время, необходимое для разработки высокоточного моделирования.
Modulus построен на основе PyTorch и обеспечивает знакомый и удобный интерфейс для тех, кто уже владеет PyTorch. Это включает в себя простой интерфейс Python и модульную конструкцию, что упрощает использование Modulus с существующими рабочими процессами PyTorch. Пользователи могут использовать обширную экосистему PyTorch, включая ее библиотеки и инструменты, одновременно используя специализированные возможности Modulus для физического машинного обучения. Эта бесшовная интеграция гарантирует, что пользователи смогут быстро освоить Modulus без необходимости сложного обучения.
Дополнительную информацию см. в разделе Преобразование моделей PyTorch в модульные модели.
Модуль Modulus обладает высокой расширяемостью, что позволяет пользователям добавлять новые функции с минимальными усилиями. Платформа предоставляет Pythonic API для определения новых физических моделей, геометрии и ограничений, что позволяет легко расширить ее возможности для новых вариантов использования. Адаптивность Modulus дополнительно повышается за счет таких ключевых функций, как поддержка ONNX для гибкого развертывания моделей, надежные утилиты регистрации для упрощенной обработки ошибок и эффективные контрольные точки для упрощения загрузки и сохранения модели.
Такая расширяемость гарантирует, что Modulus может адаптироваться к меняющимся потребностям исследователей и инженеров, способствуя разработке инновационных решений в области физики-ML.
Подробную информацию о функциях и возможностях можно найти в документации Modulus.
Эталонные образцы охватывают широкий спектр рабочих процессов, ограниченных физикой и данными, и подходят для разнообразных случаев использования в научных и инженерных дисциплинах.
Кончик
Есть вопросы о том, как Modulus может вам помочь? Воспользуйтесь нашим [экспериментальным] чат-ботом Modulus Guide, чтобы получить ответы.
Вы можете начать использовать Modulus в своем коде PyTorch так же просто, как показано здесь:
python>>import torch>>> from modulus.models.mlp.complete_connected import FullyConnected>>> model = FullyConnected(in_features=32, out_features=64)>>> input = torch.randn(128, 32)>>> вывод = модель(вход) >>> вывод.shapetorch.Size([128, 64])
Символический модуль: этот репозиторий алгоритмов и утилит позволяет исследователям и разработчикам SciML получать физическую информацию для обучения и проверки моделей. Он также предоставляет экспертам в предметной области абстракцию более высокого уровня, присущую науке и технике.
Ниже приведены пакеты, предназначенные для экспертов конкретных сообществ, отвечающих их уникальным потребностям в разведке.
Earth-2 Studio: проект с открытым исходным кодом, позволяющий исследователям климата и ученым исследовать и экспериментировать с моделями искусственного интеллекта для погоды и климата.
Ниже приведены исследовательские пакеты, которые упаковываются в Modulus, как только они становятся стабильными.
Modulus Makani: Экспериментальная библиотека, предназначенная для исследования и разработки моделей погоды и климата на основе машинного обучения.
Earth2 Grid: Экспериментальная библиотека с утилитами для обработки географических данных, определенных в различных сетках.
Earth-2 MIP: Экспериментальная библиотека с утилитами для взаимного сравнения моделей погоды и климата.
Modulus — это проект с открытым исходным кодом, в который вносят вклад исследователи в области SciML и AI4science. Пока команда Modulus работает над оптимизацией базового стека ПО, сообщество сотрудничает и вносит свой вклад в модели архитектуры, наборы данных и эталонные приложения, чтобы мы могли внедрять инновации в разработке обобщаемых архитектур моделей и алгоритмов.
Некоторыми последними примерами участников сообщества являются команда 3D-печати HP Labs, Стэнфордская исследовательская группа по сердечно-сосудистым заболеваниям, команда UIUC, команда CMU и т. д.
Последними примерами исследовательских групп, использующих Modulus, являются команда ORNL, команда TU Мюнхена CFD и т. д.
Перейдите на эту страницу, чтобы увидеть полный список исследовательских работ с использованием Modulus. Список предприятий, использующих Modulus, можно найти здесь.
Используете Modulus и хотите продемонстрировать свою работу в блогах NVIDIA? Заполните форму предложения и мы свяжемся с вами!
Вот некоторые из ключевых преимуществ Modulus для разработки моделей SciML:
SciML Бенчмаркинг и проверка | Простота использования обобщенных рецептов SciML с гетерогенными наборами данных. | Готовая производительность и масштабируемость |
Модуль Modulus позволяет исследователям сравнивать свою модель ИИ с проверенными архитектурами для решения стандартных задач тестирования с подробными критериями проверки для конкретной предметной области. | Modulus позволяет исследователям выбирать из архитектур SOTA SciML и использовать встроенные конвейеры данных для своих сценариев использования. | Modulus предоставляет готовые конвейеры обучения производительности, включая оптимизированные конвейеры ETL для гетерогенных инженерных и научных наборов данных, а также готовое масштабирование для нескольких графических и многоузловых графических процессоров. |
Посмотрите, что ваши коллеги-исследователи SciML говорят о Modulus (скоро).
Следующие ресурсы помогут вам научиться использовать модуль. Лучший способ — начать с эталонного образца, а затем обновить его для собственного варианта использования.
Использование Modulus с вашей моделью PyTorch
Использование встроенных моделей Modulus
Руководство по началу работы
Эталонные образцы
Руководство пользователя Документация
Вебинар «Начало работы»
Учебный курс AI4Science Modulus
Предварительно обученные модели по модулю
Наборы данных по модулям и дополнительные материалы
Самостоятельное обучение Modulus DLI
Серия лекций по глубокому обучению в области науки и техники с модулем
Модуль: назначение и использование
Видеоуроки
Рекомендуемый метод установки последней версии Modulus — использование PyPi:
pip установить nvidia-modulus
Установку можно проверить, запустив пример hello world, как показано здесь.
Modulus имеет множество дополнительных зависимостей, которые используются в конкретных компонентах. При использовании pip все зависимости, используемые в Modulus, можно установить с помощью pip install nvidia-modulus[all]
. Если вы разрабатываете Modulus, зависимости разработчика можно установить с помощью pip install nvidia-modulus[dev]
. В противном случае дополнительные зависимости могут быть установлены в каждом конкретном случае. Подробную информацию об установке дополнительных зависимостей можно найти в Руководстве по началу работы.
Рекомендуемый образ докера Modulus можно получить из реестра контейнеров NVIDIA (последний тег см. в реестре NGC):
docker pull nvcr.io/nvidia/modulus/modulus:24.09
Внутри контейнера вы можете клонировать репозитории Modulus git и приступить к работе с примерами. Команда ниже показывает инструкции по запуску контейнера модулей и запуску примеров из этого репозитория.
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia --rm -it nvcr.io/nvidia/modulus/modulus:24.09 bash git clone https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # установите NVIDIA Warp для запуска примера Дарсиpython train_fno_darcy.py
Информацию о контейнере NVAIE, поддерживаемом предприятием, см. в разделе Modulus Secured Feature Branch.
Для локальной сборки пакета Modulus Python из исходного кода используйте:
git clone [email protected]:NVIDIA/modulus.git && модуль cd pip install --upgrade pip установка пипа.
Чтобы создать образ докера Modulus:
docker build -t модуль: развернуть --build-arg TARGETPLATFORM=linux/amd64 --target Deploy -f Dockerfile .
Альтернативно вы можете запустить make container-deploy
Чтобы создать образ CI:
docker build -t модуль: ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
Альтернативно вы можете запустить make container-ci
.
В настоящее время поддерживаются только платформы linux/amd64
и linux/arm64
. При использовании linux/arm64
некоторые зависимости, такие как warp-lang
могут быть установлены неправильно.
Modulus — это совместная работа с открытым исходным кодом, и ее успех основан на вкладе сообщества в развитие области Physics-ML. Благодарим вас за вклад в проект, чтобы другие могли воспользоваться вашим вкладом.
Инструкции по внесению вклада в Modulus см. в рекомендациях по внесению вкладов.
Если модуль Modulus помог вашему исследованию и вы хотели бы процитировать его, обратитесь к руководству.
Обсуждения на Github: обсуждайте новые архитектуры, реализации, исследования Physics-ML и т. д.
Проблемы GitHub: отчеты об ошибках, запросы функций, проблемы с установкой и т. д.
Форум Modulus: Форум Modulus объединяет аудиторию новых и средних пользователей и разработчиков для общего чата, онлайн-обсуждений, совместной работы и т. д.
Хотите предложить некоторые улучшения Modulus? Воспользуйтесь формой обратной связи здесь.
Modulus предоставляется по лицензии Apache 2.0, полный текст лицензии см. в файле LICENSE.txt.