Поскольку все больше и больше клиентов стремятся внедрить рабочие нагрузки машинного обучения (ML) в производство, организации активно стремятся сократить жизненный цикл разработки кода ML. Многие организации предпочитают писать свой код машинного обучения в готовом для производства стиле в виде методов и классов Python, а не в исследовательском стиле (написание кода без использования методов или классов), потому что это помогает им быстрее выпускать готовый к производству код.
Доступно Создатель мудреца Амазонки, вы можете использовать @удаленный декоратор для запуска обучающего задания SageMaker, просто аннотируя код Python с помощью декоратора @remote. SDK для SageMaker Python автоматически преобразует вашу существующую рабочую среду и любой связанный код обработки данных и наборы данных в обучающее задание SageMaker, которое выполняется на учебной платформе SageMaker.
Для локального запуска функции Python часто требуется несколько зависимостей, которые могут отсутствовать в локальной среде выполнения Python. Вы можете установить их с помощью инструментов управления пакетами и зависимостями, таких как типун or Conda.
Однако организации, работающие в регулируемых отраслях, таких как банковское дело, страхование и здравоохранение, работают в средах со строгим контролем конфиденциальности данных и сетей. Эти элементы управления часто требуют отсутствия доступа в Интернет к любой из их сред. Причина такого ограничения заключается в том, чтобы иметь полный контроль над исходящим и входящим трафиком, чтобы они могли уменьшить вероятность того, что недобросовестные субъекты будут отправлять или получать непроверенную информацию через свою сеть. Такая сетевая изоляция часто также является обязательным требованием в соответствии с правилами аудита и промышленного соответствия. Когда дело доходит до ML, это ограничивает специалистов по данным от загрузки любого пакета из общедоступных репозиториев, таких как PyPI, Анакондаили Конда-Фордж.
Чтобы предоставить специалистам по данным доступ к инструментам по своему выбору, а также соблюдать ограничения среды, организации часто создают собственный частный репозиторий пакетов, размещенный в их собственной среде. Вы можете настроить частные репозитории пакетов на AWS несколькими способами:
В этом посте мы сосредоточимся на первом варианте: использовании CodeArtifact.
Обзор решения
На следующей диаграмме архитектуры показана архитектура решения.
Шаги высокого уровня для реализации решения следующие:
- Настройте виртуальное частное облако (VPC) без доступа к Интернету с помощью AWS CloudFormation шаблон.
- Используйте второй шаблон CloudFormation, чтобы настроить CodeArtifact в качестве частного репозитория PyPI и обеспечить подключение к VPC, а также настроить Студия Amazon SageMaker среду для использования частного репозитория PyPI.
- Обучите модель классификации на основе МНИСТ набор данных с помощью декоратора @remote из пакета SageMaker Python SDK с открытым исходным кодом. Все зависимости будут загружены из частного репозитория PyPI.
Обратите внимание, что использование SageMaker Studio в этом посте необязательно. Вы можете работать в любой интегрированной среде разработки (IDE) по вашему выбору. Вам просто нужно настроить свой Интерфейс командной строки AWS (AWS CLI) правильно. Для получения дополнительной информации см. Настройте интерфейс командной строки AWS.
Предпосылки
Вам нужна учетная запись AWS с Управление идентификацией и доступом AWS (Я) роль с разрешениями на управление ресурсами, созданными как часть решения. Для получения подробной информации см. Создание учетной записи AWS.
Настройте VPC без подключения к Интернету
Создайте новый стек CloudFormation используя vpc.yaml шаблон. Этот шаблон создает следующие ресурсы:
- VPC с двумя частными подсетями в двух зонах доступности без подключения к Интернету.
- Конечная точка шлюза VPC для доступа к Amazon S3.
- Интерфейсные конечные точки VPC для SageMaker, CodeArtifact и некоторых других сервисов, чтобы ресурсы в VPC могли подключаться к сервисам AWS через Приватная ссылка AWS
Укажите имя стека, например No-Internet
и завершите процесс создания стека.
Дождитесь завершения процесса создания стека.
Настройте частный репозиторий и SageMaker Studio с помощью VPC.
Следующим шагом будет развертывание другого стека CloudFormation с помощью sagemaker_studio_codeartifact.yaml шаблон. Этот шаблон создает следующие ресурсы:
Укажите имя стека и оставьте значения по умолчанию или настройте параметры для Доменное имя CodeArtifact, имя частного репозитория, имя профиля пользователя для SageMaker Studio и имя для вышестоящего общедоступного репозитория PyPI. Вам также необходимо предоставить Имя стека VPC созданный на предыдущем шаге.
Когда создание стека завершено, домен SageMaker должен быть виден в консоли SageMaker.
Чтобы убедиться, что в SageMaker Studio нет подключения к Интернету, запустить SageMaker Studio. Выберите File
, New
и Terminal
запустить терминал и попробовать виться любой интернет-ресурс. Он не должен подключиться, как показано на следующем снимке экрана.
Обучите классификатор изображений с помощью декоратора @remote с частным репозиторием PyPI.
В этом разделе мы используем декоратор @remote для запуска PyTorch обучающее задание, которое создает модель классификации изображений MNIST. Для этого мы настраиваем файл конфигурации, разрабатываем обучающий скрипт и запускаем обучающий код.
Настройте файл конфигурации
Мы создали config.yaml
файл и укажите конфигурации, необходимые для выполнения следующих действий:
- Запустите Обучение работе с SageMaker в созданном ранее VPC без интернета
- Загрузите необходимые пакеты, подключившись к частному репозиторию PyPI, созданному ранее.
Файл выглядит следующим образом:
Ассоциация Dependencies
поле содержит путь к requirements.txt
, который содержит все необходимые зависимости. Обратите внимание, что все зависимости будут загружены из частного репозитория. requirements.txt
файл содержит следующий код:
Ассоциация PreExecutionCommands
Раздел содержит команду для подключения к частному репозиторию PyPI. Чтобы получить URL-адрес конечной точки CodeArtifact VPC, используйте следующий код:
Как правило, мы получаем две конечные точки VPC для CodeArtifact и можем использовать любую из них в командах подключения. Для получения более подробной информации см. Используйте CodeArtifact из VPC.
Кроме того, такие конфигурации, как execution role
, output location
и VPC configurations
предоставляются в конфигурационном файле. Эти конфигурации необходимы для запуска учебного задания SageMaker. Чтобы узнать больше обо всех поддерживаемых конфигурациях, см. Файл конфигурации.
Не обязательно использовать config.yaml
файл для работы с декоратором @remote. Это просто более чистый способ передать все конфигурации декоратору @remote. Все конфиги также могут быть предоставлены непосредственно в аргументах декоратора, но это снижает удобочитаемость и удобство сопровождения изменений в долгосрочной перспективе. Кроме того, файл конфигурации может быть создан администратором и доступен для всех пользователей в среде.
Разработать сценарий обучения
Далее мы подготавливаем обучающий код в простых файлах Python. Мы разделили код на три файла:
- load_data.py – Содержит код для загрузки набора данных MNIST.
- модель.py – Содержит код архитектуры нейронной сети для модели
- поезд.ру – Содержит код для обучения модели с помощью load_data.py и model.py.
In train.py
, нам нужно оформить основную обучающую функцию следующим образом:
Теперь мы готовы запустить обучающий код.
Запустите обучающий код с помощью декоратора @remote.
Мы можем запустить код из терминала или из любой исполняемой подсказки. В этом посте мы используем ячейку записной книжки SageMaker Studio, чтобы продемонстрировать это:
Выполнение предыдущей команды запускает задание обучения. В журналах мы видим, что он загружает пакеты из частного репозитория PyPI.
На этом реализация декоратора @remote, работающего с частным репозиторием в среде без доступа к Интернету, завершена.
Убирать
Чтобы очистить ресурсы, следуйте инструкциям в CLEANUP.md.
Заключение
В этом посте мы узнали, как эффективно использовать возможности декоратора @remote, продолжая работать в ограниченных средах без доступа к Интернету. Мы также узнали, как интегрировать возможности частного репозитория CodeArtifact с помощью поддержки файла конфигурации в SageMaker. Это решение делает итеративную разработку намного проще и быстрее. Еще одно дополнительное преимущество заключается в том, что вы по-прежнему можете писать обучающий код более естественным, объектно-ориентированным способом и по-прежнему использовать возможности SageMaker для выполнения обучающих заданий на удаленном кластере с минимальными изменениями в коде. Весь код, показанный как часть этого поста, доступен в Репозиторий GitHub.
В качестве следующего шага мы рекомендуем вам ознакомиться с Функциональность удаленного декоратора и API Python SDK и используйте его в выбранной вами среде и IDE. Дополнительные примеры доступны в amazon-sagemaker-примеры репозиторий, чтобы вы могли быстро приступить к работе. Вы также можете ознакомиться с постом Запускайте локальный код машинного обучения в качестве учебных заданий Amazon SageMaker с минимальными изменениями кода. Больше подробностей.
Об авторе
Викеш Пандей является специалистом по машинному обучению и архитектором решений в AWS, помогая клиентам из финансовой отрасли проектировать и создавать решения на основе генеративного искусственного интеллекта и машинного обучения. Вне работы Викеш любит пробовать разные кухни и заниматься спортом на открытом воздухе.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/access-private-repos-using-the-remote-decorator-for-amazon-sagemaker-training-workloads/
- :является
- :нет
- $UP
- 1
- 10
- 100
- 12
- 23
- 7
- 8
- a
- О нас
- доступ
- доступа
- Учетная запись
- Достигать
- через
- актеры
- добавленный
- дополнительный
- Администратор
- плюс
- AI
- Все
- позволять
- причислены
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- an
- и
- Другой
- любой
- API
- архитектура
- МЫ
- Аргументы
- AS
- связанный
- At
- автоматически
- свободных мест
- доступен
- AWS
- Банковское дело
- основанный
- BE
- , так как:
- строить
- но
- by
- CAN
- возможности
- шансы
- изменения
- проверка
- выбор
- Выберите
- классов
- классификация
- облако
- Кластер
- код
- COM
- как
- выходит
- полный
- Соответствие закону
- Конфигурация
- Свяжитесь
- Соединительный
- связи
- связь
- Консоли
- содержит
- продолжать
- контроль
- контрольная
- может
- создали
- создает
- создание
- Полномочия
- Клиенты
- данным
- конфиденциальность данных
- обработка данных
- Наборы данных
- По умолчанию
- демонстрировать
- Зависимость
- развертывание
- Проект
- подробнее
- развивать
- Развитие
- различный
- непосредственно
- Разделенный
- do
- домен
- скачать
- фактически
- поощрять
- Конечная точка
- Окружающая среда
- средах
- эпохи
- Примеры
- выполнение
- существующий
- FAIL
- ложный
- быстрее
- несколько
- поле
- Файл
- Файлы
- финансовый
- финансовые отрасли
- Во-первых,
- Поплавок
- Фокус
- следовать
- после
- следующим образом
- Что касается
- форма
- от
- полный
- функция
- шлюз
- генеративный
- Генеративный ИИ
- получить
- группы
- Есть
- имеющий
- здравоохранение
- помощь
- помощь
- помогает
- на высшем уровне
- состоялся
- Как
- How To
- HTML
- HTTP
- HTTPS
- ID
- Личность
- изображение
- Классификация изображений
- осуществлять
- реализация
- in
- промышленность
- промышленности
- информация
- устанавливать
- инструкции
- страхование
- интегрировать
- интегрированный
- Интернет
- доступ в Интернет
- интернет-соединение
- в
- изоляция
- IT
- работа
- Джобс
- JPG
- всего
- Сохранить
- Знать
- большой
- запуск
- узнали
- изучение
- Жизненный цикл
- такое как
- линия
- локальным
- в местном масштабе
- Войти
- Длинное
- искать
- ВЗГЛЯДЫ
- машина
- обучение с помощью машины
- Главная
- ДЕЛАЕТ
- управлять
- управление
- Средства управления
- Мандат
- обязательный
- многих
- Май..
- методы
- минимальный
- ML
- модель
- Модули
- БОЛЕЕ
- много
- с разными
- имя
- родной
- натуральный
- Необходимость
- необходимый
- сеть
- сетей
- нейронной сети
- Новые
- следующий
- нет
- ноутбук
- of
- .
- on
- с открытым исходным кодом
- работать
- операционный
- против
- Опция
- or
- заказ
- организации
- Другое
- внешний
- внешнюю
- за
- собственный
- пакет
- пакеты
- параметры
- часть
- путь
- Разрешения
- Часть
- Платформа
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- игры
- После
- предпочитать
- Подготовить
- предыдущий
- политикой конфиденциальности.
- частная
- процесс
- обработка
- производит
- Производство
- Профиль
- обеспечивать
- при условии
- что такое варган?
- Push
- положил
- Питон
- pytorch
- быстро
- готовый
- причина
- получение
- уменьшить
- снижает
- регулируемых брокеров
- регулируемые отрасли
- удаленные
- хранилище
- обязательный
- требуется
- ресурс
- Полезные ресурсы
- относительно
- ограничение
- Ограничения
- ограничительный
- Роли
- условиями,
- Run
- Бег
- работает
- sagemaker
- Ученые
- SDK
- Во-вторых
- Раздел
- безопасность
- посмотреть
- семя
- отправка
- Услуги
- набор
- несколько
- общие
- КОРАБЛЬ
- должен
- показанный
- Шоу
- просто
- простой
- просто
- So
- Решение
- Решения
- специалист
- Спорт
- стек
- и политические лидеры
- Шаг
- Шаги
- По-прежнему
- магазин
- Строгий
- студия
- стиль
- подсети
- подсеть
- такие
- поставляется
- поставка
- поддержка
- Поддержанный
- шаблон
- Терминал
- который
- Ассоциация
- их
- Их
- Там.
- Эти
- они
- этой
- три
- Через
- в
- инструменты
- Торчвидение
- трафик
- Обучение
- переведите
- правда
- стараться
- два
- недобросовестный
- URL
- использование
- используемый
- пользователей
- через
- Наши ценности
- проверить
- с помощью
- Виртуальный
- видимый
- Путь..
- способы
- we
- Web
- веб-сервисы
- когда
- который
- в то время как
- Википедия.
- будете
- без
- Работа
- работает
- записывать
- письмо
- YAML
- Ты
- ВАШЕ
- зефирнет
- зоны