Как развернуть виртуальную среду модели машинного обучения на любой машине? |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2024-03-07 14:12 Иногда возникают проблемы с развертыванием среды разработки в облаке, ведь бесплатных сервисов с большими облачными вычислительными мощностями почти нет. Тот же Google Collab имеет свои лимиты по использованию GPU, после израсходования всей памяти необходимо ждать сутки. А цена платной версии порой не совсем оправдана... Если у вас есть своя неплохая видеокарта, всегда можно отказаться от облачной разработки и перейти к домашнему варианту. Напоминаем, что GPU выполняет вычислительную работу быстрее из-за возможности параллельного выполнения процессов. Если вы хотите использовать много видеокарт — следует подключить ее к одной системе, сформировав своеобразную ферму. Итак, как же контейнизировать собственную виртуальную среду и развернуть ее с использованием своего GPU? Вам потребуется:
Среда разработки с библиотекой cuDNN и подключением CUDA Для работы со своим GPU проще всего воспользоваться CUDA Toolkit, иначе CUDA – интерфейсом для параллельного вычисления однотипных вычислений. У Nvidia есть своя библиотека для эффективного использования ядер – cuDNN. А еще мы напоминаем, что библиотека закачивается вместе с некоторыми фреймворками. Как развернуть среду разработки с cuDNN? Для начала следует обновить драйвера карточки. Сделать это можно на сайте Geforce Experience. И скачать сам Toolkit тут: Toolkit и библиотека CuDNN. Установка последнего — простое копирование файлов из папки без привычной установки, поэтому проверить работы библиотеки можно следующим образом, например, в Visual Studio: Необходимо установить сам фреймворк для ML. Для примера мы возьмем TensorFlow. Напоминаем, что далеко не все версии TensorFlow работают с видеокартами или попросту GPU, так что будьте внимательными. Максимальная поддерживаемая версия TF ля работы видеокарт на Windows с версией самого Python от 3.7 до 3.10 — 2.10.0 Установить все можно через pip. Обычно Pip можно закачать прямо в установщике Python для Windows. Устанавливаем дополнительные библиотеки: Pandas, Matplotlib и Numpy. Дальше приводим простой пример развертывания модели машинного обучения с использованием GPU. В нашем случае на основе данных MNIST. Готово. Напоминаем, если у вас стоит целая рендер-ферма под рукой – меняем единицу на нужное число в строке: В строке выше можно определить коэффициент используемой видеопамяти. Пусть наша модель предварительно в файле .py будет называться model – так мы ее и будем называть в дальнейшем. Поздравляем, вы установили глобальную библиотеку для работы с графическими ядрами. Чтобы перезапустить приложение на стороннем ПК, нам следует создать Docker-файл. Но перед этим нужно создать виртуальное окружение, которое мы и положим в наш “контейнер”. Создание виртуального окружения в Python Виртуальное окружение – одна из прекраснейших особенностей этого языка программирования. Вот “наимпортировали” вы килотонны библиотек в своей проект, а как запустить его с другого ПК? Вот здесь виртуальное окружение позволяет создать локальные зависимости для отдельных проектов, не засоряя среду, и решить проблему несовместимости между операционками (окружение можно запустить с любой ОС, будь то Linux или Windows). Если еще проще, виртуальное окружение – набор инструментов, который будет прилагаться к вашей программе. Его можно активировать/деактивировать для интерпретатора. Но это не все. Библиотеки ведь бывают совершенно разных версий… Та же TensorFlow может быть несовместима для работы с видеокартами. Виртуальное окружение позволяет интерпретатору задействовать библиотеки нужных версий. Если поставить библиотеки глобально, то тогда новые версии будут заменять старые, и предыдущие проекты могут не работать. Нужные нам библиотеки расписаны выше. Создать виртуальное окружение просто. Мы будем расписывать создание для Windows. 1. Для создания виртуального окружения введите консоли следующий код. Myenv – название нашего вирт. окружения. Естественно, его можно изменить. При помощи этой команды создается особая директория, в которой и будут храниться нужные нам библиотеки. 2. Активация виртуального окружения. Окружения можно активировать и деактивировать в зависимости от проекта. 3. Дальше при помощи pip, о котором расписали выше, следует установить все зависимости, если нужно, с их версиями по спецификации. Например: 4. Так устанавливаем все нужные библиотеки наших версий. Не забудьте создать файл с требованиями, в котором будут перечислены все зависимости, чтобы все библиотеки с виртуальной среды на другом ПК было бы легко установить. Создание requirements необязательно, но это хороший тон в комьюнити кодеров. Зайдите в любой репозиторий GitHub и увидите, что в каждом проекте такой текстовик вшит. Файл с зависимостями позволяет не перекидывать директорию, допустим, вашему другу, а попросту скинуть ему готовые .py скрипты и сам файл с требованиями, чтобы он смог переустановить все нужные библиотеки/фреймворки в своей виртуальной среде. В нашем случае весь список нужных библиотек для нашей модели можно подсмотреть в самом коде скрипта, который мы привели в первой главе. И не забудьте, что все ваши функции из Jupyter необходимо перевести в файлы питона .py и переместить в созданную директорию. Для Linux cхема установки выглядит схожим образом, но с использованием слегка видоизмененных команд. Docker и контейнеризация Контейнер позволяет развернуть ваше виртуальное окружение с готовыми скриптами на любой машине… Называют его еще Docker-файлом. Эти же докеры легко переносятся из одной среды выполнения в другую и используют локально ресурсы хоста. Добавим, что из-за своей легковесности файл позволяет добиваться большей производительности железа. Иначе докер – некое подобие виртуальной машины. Если у вас еще нет Docker, начните с установки его на вашу операционную систему. Вы можете загрузить и установить Docker Desktop с официального веб-сайта Docker. Дальше необходимо проверить версию своего CUDA при помощи команды И оценить свою версию cuDNN. Это важно, иначе при написании кода можно ошибиться с версией и Docker не будет использовать видеокарту. Все же хостом контейнера выступает ваш ПК. Дальше необходимо выбрать версию Docker-образа в соответствии с вашими cuDNN и CUDA версиями: Сам Dockerfile – набор последовательных инструкций для сборки контейнера. Докер-файл выполняет все инструкции последовательно. В нашем случае нам необходимо завернуть в контейнер наше виртуальное окружение с установкой всех зависимостей (библиотек, прописанных в В нашем случае нужно создать инструкции для запуска скрипта Model.py и установить все зависимости. Далее, предположим, у нас нет в контейнере предустановленного python. Соответственно нам нужно его зашить в контейнер. Делается это при помощи команды Дальше необходимо добавить все папки и файлы (приложения) в контейнер. Далее необходимо установить зависимости (в нашем случае библиотеки). Можно сделать это вручную с перечислением всех библиотек при помощи команды RUN через pip. Или же воспользоваться нашим созданным файлом requirements.txt. Таким образом, мы загрузили наш скрипт на Питоне с готовой моделью и все зависимости с файла requirements.txt Так как в нашем докер-файле используется всего один скрипт на питоне, то нам достаточно вписать: Также может быть использована команда Далее для построения образа необходимо прописать следующую строчку и построить сам Docker. После model через пробел нужно указать место, куда Docker положит контейнер. Запускать контейнер необходимо с использованием GPU ресурсов, это прописывается в команде: Где model – имя контейнера или его id. А указание --gpus=all – для обозначения, что при запуске будут задействоваться GPU-ресурсы. Docker и перекидывание виртуального окружения со скриптами и requirements.txt? Предустановленный cuDNN и правильный выбор версии TensorFlow позволяет нам попросту запустить вашу модель машинного обучения на ПК с использованием GPU, но при этом перекидывание подобной виртуальной среды на другой ПК – несколько муторная задача. С другой стороны, первой части инструкции достаточно, чтобы использовать ускорители своего проекта локально из дома, если вы не хотите переносить скрипты на другую машину. Но у контейнера, как мы уже написали, есть ряд преимуществ. Особенно, при работе с крупными проектами мы можем, как минимум, задействовать несколько скриптов в определенной логике. Контейнеры легковесны и позволяют использовать ваше GPU по максимуму, а также легко разворачивать виртуальное окружение в любой среде выполнения. Источник: habr.com Комментарии: |
|