Сегодня мы рады объявить о поддержке Code Editor, новой интегрированной среды разработки (IDE) в Amazon SageMaker Studio. Редактор кода основан на Код-OSS, Visual Studio Code с открытым исходным кодом и обеспечивает доступ к знакомой среде и инструментам популярной IDE, которую знают и любят разработчики машинного обучения (ML), полностью интегрированной с более широким набором функций SageMaker Studio. Редактор кода позволяет вам выбирать из тысяч расширений, совместимых с VS Code, доступных в Галерея расширений Open-VSX для дальнейшего улучшения опыта разработки ваших команд. Вы также можете максимизировать производительность своей команды, используя бесшовную интеграцию с сервисами AWS с помощью набора инструментов AWS для Visual Studio Code, включая помощника по программированию на базе искусственного интеллекта AWS — Amazon CodeWhisperer.
Как и во всех приложениях IDE в SageMaker Studio, разработчики и инженеры машинного обучения могут выбирать базовые вычисления по требованию и заменять их в соответствии со своими потребностями без потери данных. Кроме того, ваши команды могут управлять контролем версий своей кодовой базы и сотрудничать между командами благодаря встроенной интеграции GitHub и сократить время написания кода, используя самые популярные платформы машинного обучения прямо из коробки с предварительно настроенными Распространение Amazon SageMaker изображение контейнера.
Начало работы с редактором кода в Amazon SageMaker Studio
Ваш ИТ-администратор может настроить новый домен SageMaker Studio или перенести существующий на новую версию SageMaker Studio, включающую редактор кода. Дополнительные сведения см. в разделе «Включение в домен Amazon SageMaker с помощью быстрой настройки». Затем вы можете запустить редактор кода простым щелчком мыши в среде Amazon SageMaker Studio.
- После настройки домена запустите новый интерфейс SageMaker Studio с консоли или по заранее подписанному URL-адресу, предоставленному вашим администратором. Вы можете найти IDE-редактор кода как в разделе «Приложения» на левой боковой панели, так и в разделе «Обзор», как показано на следующем снимке экрана:
- На странице сведений о редакторе кода выберите Создать пространство редактора кода. Затем введите имя своего пространства и выберите Создайте пространство:
- На странице сведений о пространстве редактора кода выберите базовую конфигурацию, включая:
- Базовый тип инстанса Amazon Elastic Compute Cloud (Amazon EC2).
- Размер тома Amazon Elastic Block Storage (Amazon EBS) (он может варьироваться от 5 ГБ до 16 ТБ).
- Используемый образ контейнера (при запуске у вас будет образ дистрибутива SageMaker как для ЦП, так и для графического процессора).
- Сценарий конфигурации жизненного цикла, который нужно запустить, если вы хотите настроить свою среду при создании приложения.
- Общая эластичная файловая система Amazon (Amazon EFS) для монтирования в вашем пространстве редактора кода (это должно быть настроено вашим администратором при подготовке вашего домена).
- После предоставления сведений о конфигурации пространства выберите Запустить пространство для обеспечения ваших космических ресурсов.
Если вы выбрали быстрый запуск экземпляр с дистрибутивом SageMaker по умолчанию в виде изображения, место в вашем редакторе кода станет доступно менее чем через минуту. Если вы добавили в пространство конфигурации жизненного цикла, установка зависимостей из этого сценария может занять дополнительное время.
После того как ваши ресурсы будут выделены, на странице сведений о пространстве отобразится Открыть редактор кода кнопка.
- Выбирать Открыть редактор кода для запуска IDE.
Редактор кода IDE откроется в новой вкладке браузера.
Возможности редактора кода
Редактор кода включает в себя уникальный набор функций, позволяющих повысить продуктивность вашей команды ML:
- Полностью управляемая инфраструктура – IDE редактора кода работает в полностью управляемой инфраструктуре. Amazon SageMaker обеспечивает актуальность инстансов с помощью последних исправлений и обновлений безопасности.
- Набирайте ресурсы вверх и вниз – С помощью редактора кода вы можете легко изменить базовые ресурсы (например, тип экземпляра, размер тома EBS), на которых работает редактор кода. Это полезно для разработчиков, которые хотят запускать рабочие нагрузки с меняющимися потребностями в вычислительных ресурсах, памяти и хранилище.
- SageMaker предоставил изображения – Редактор кода предварительно настроен с помощью Распространение SageMaker в качестве изображения по умолчанию. Этот образ контейнера содержит все самые популярные платформы машинного обучения, поддерживаемые SageMaker, а также SageMaker Python SDK, бото3и другие установленные библиотеки AWS и обработки данных. Это значительно сокращает время, затрачиваемое на настройку среды, и снижает сложность управления зависимостями пакетов в проекте машинного обучения.
- Интеграция Amazon CodeWhisperer – Редактор кода также оснащен возможностями генеративного искусственного интеллекта на базе Amazon CodeWhisperer. Эта встроенная интеграция позволяет повысить производительность за счет генерации предложений по коду в среде IDE.
- Интеграция с другими сервисами AWS – Вы получаете встроенную интеграцию с корзинами Amazon Simple Storage Service (S3), репозиториями Amazon Elastic Container Registry (ECR), Amazon RedShift, Amazon CloudWatch и т. д. с помощью набора инструментов AWS для VS Code, который упрощает разработку в облаке.
Детали архитектуры
Запуская редактор кода в SageMaker Studio, вы создаете новое приложение, которое запускается как контейнер в экземпляре EC2 того типа, который вы выбрали при настройке пространства редактора кода. SageMaker Studio обеспечивает предоставление базовых ресурсов для вас в учетной записи, управляемой службой. На следующей схеме изображена упрощенная версия архитектуры приложения Code Editor IDE:
Для данного профиля пользователя вы можете запустить несколько пространств редактора кода с различными типами экземпляров ML (включая экземпляры ускоренных вычислений). Каждое пространство определяет размер подключенного тома EBS, тип экземпляра и тип приложения, запускаемого в пространстве (например, редактор кода). Когда пользователи запускают пространство, предоставляется базовый экземпляр EC2 и редактор кода SageMaker Studio. приложение создается экземпляр на основе выбранного образа контейнера. Том EBS сохраняется во время циклов запуска/остановки среды IDE. приложение. Если пользователи останавливают приложение «Редактор кода» (например, чтобы сэкономить на вычислительных затратах), вычислительные ресурсы останавливаются, но том EBS сохраняется и повторно подключается к экземпляру при перезапуске.
Все приложения редактора кода работают изолированно; Если вам необходимо совместно использовать данные между приложениями, вы можете подключить общий диск Amazon Elastic File System (EFS).
Чтобы ваша IDE редактора кода могла использовать предустановленное расширение AWS Toolkit для VS Code и использовать интегрированные сервисы AWS, такие как Amazon CodeWhisperer, или источники данных, такие как Amazon S3 и Amazon Redshift, вам необходимо убедиться, что:
- Роль исполнителя вашего профиля пользователя SageMaker Studio имеет соответствующие разрешения на использование сервисов, с которыми вы хотите работать.
- У вас есть способ связаться с этими службами, если у вас есть домен SageMaker Studio в режиме только VPC. Дополнительные сведения о требованиях к использованию сервисов AWS в домене Studio в режиме «только VPC» см. в разделе «Подключение блокнотов SageMaker Studio в VPC к внешним ресурсам».
Обзор решения
В следующих разделах мы расскажем, как разработать пример проекта машинного обучения с помощью редактора кода в Amazon SageMaker Studio. Мы развернем модель большого языка (LLM) Mistral-7B в конечной точке Amazon SageMaker в реальном времени, используя встроенный контейнер от HuggingFace. В этом примере редактор кода может использоваться командой инженеров машинного обучения, которой необходимы расширенные функции IDE для отладки кода и развертывания конечной точки. Вы можете найти пример кода в этот Репозиторий GitHub. Мы покажем, как структурировать код для упрощения совместной работы между членами команды, как использовать AWS Toolkit for VS Code и Amazon Code Whisperer для ускорения разработки, а также как развернуть модель Mistral-7B на конечной точке SageMaker. Давайте рассмотрим некоторые распространенные задачи разработчиков в IDE.
Взаимодействие с сервисами AWS непосредственно из вашей IDE.
В комплект редактора кода входит набор инструментов AWS для Visual Studio Code, который обеспечивает интеграцию с другими сервисами AWS во время вашего проекта. На основании разрешения AWS Identity and Access Management (IAM) вашего профиля пользователя SageMaker Studio вы можете взаимодействовать с данными в корзинах Amazon S3, находить образы контейнеров в Amazon ECR, визуализировать журналы Amazon CloudWatch для вашей конечной точки SageMaker и пользоваться другими функциями. для запуска сквозного проекта машинного обучения из вашей IDE.
Структурируйте свой репозиторий кода для упрощения совместной работы.
Вы можете структурировать свой репозиторий проектов, чтобы максимизировать производительность вашей команды. Например, вы можете настроить один репозиторий, стремясь обеспечить баланс между общими Соглашения проекта Python и потребности вашей команды в сотрудничестве.
Ваш репозиторий кода может содержать .vscode
папка со всеми необходимыми файлами для стандартизации зависимостей, расширений и конфигураций для разных членов команды. Для справки обратитесь к следующей анимации.
Вы можете поделиться зависимостями между членами команды через requirements.txt
файл. Вы также можете указать config.yaml
файл, чтобы поделиться примитивами запуска для вашей конечной точки SageMaker. Ваш сеанс редактора кода будет использовать те же зависимости и конфигурацию, что и члены вашей команды, и позволит вам быстро разрабатывать и отлаживать код вывода и конечную точку.
Разрабатывайте и отлаживайте свой код в IDE.
В следующем примере мы покажем, как вы можете разрабатывать и отлаживать свои inference.py
скрипт, который будет использоваться в вашей конечной точке SageMaker:
Создавайте код и тестовые примеры с помощью Amazon CodeWhisperer
Являясь частью набора инструментов AWS в вашем редакторе кода, Amazon CodeWhisperer позволяет вам выполнять работу быстрее и безопаснее с помощью помощника по программированию на базе искусственного интеллекта. Он может предоставлять вам рекомендации по коду в режиме реального времени, оптимизирован для использования с сервисами AWS и оснащен встроенной функцией сканирования безопасности. В нашем примере мы используем Amazon CodeWhisperer для генерации целой строки и полного функционального кода для развертывания и тестирования вашей конечной точки SageMaker.
Развертывание вашего LLM в конечной точке SageMaker
Вы можете развернуть свою модель на конечной точке SageMaker из своей IDE и отслеживать ее состояние непосредственно из SageMaker Studio.
Когда вы масштабируете свой проект ML до готового к эксплуатации приложения, редактор кода и набор инструментов AWS позволят вам управлять и отслеживать ресурсы вашего приложения LLM во время его создания, развертывания и запуска.
Заключение
Редактор кода доступен во всех регионах AWS, где доступен Amazon SageMaker Studio (кроме GovCloud), и вы платите только за базовые вычислительные ресурсы и ресурсы хранения в SageMaker или других сервисах AWS в зависимости от вашего использования.
Чтобы начать работу с редактором кода в Amazon SageMaker Studio, вы можете использовать уровень бесплатного пользования AWS с 250 часами экземпляра ml.t3.medium в Amazon SageMaker Studio в месяц в течение первых 2 месяцев. Более подробную информацию см. в разделе «Цены на Amazon SageMaker».
Об авторах
Эрик Пенья — старший технический менеджер по продуктам в группе платформ искусственного интеллекта AWS, работающий над интерактивным машинным обучением Amazon SageMaker. В настоящее время он занимается интеграцией IDE в SageMaker Studio. Он получил степень MBA в Массачусетском технологическом институте Слоана и помимо работы любит играть в баскетбол и футбол.
Викеш Пандей — специалист по архитектуре решений в области машинного обучения в AWS, помогающий клиентам из финансовой отрасли разрабатывать и создавать решения на основе генеративного искусственного интеллекта и машинного обучения. Помимо работы Викеш любит пробовать разные кухни и заниматься спортом на свежем воздухе.
Бруно Пистоне — специалист по архитектуре решений AI/ML в AWS, базирующийся в Милане. Он работает с крупными клиентами, помогая им глубоко понять их технические потребности и разрабатывать решения в области искусственного интеллекта и машинного обучения, которые максимально эффективно используют облако AWS и стек машинного обучения Amazon. Его опыт включает комплексное машинное обучение, индустриализацию машинного обучения и генеративный искусственный интеллект. Ему нравится проводить время со своими друзьями и исследовать новые места, а также путешествовать по новым направлениям.
Джузеппе Анджело Порчелли является главным специалистом по архитектуре решений машинного обучения в Amazon Web Services. Имея несколько лет разработки программного обеспечения и опыт машинного обучения, он работает с клиентами любого размера, чтобы понять их бизнес и технические потребности и разрабатывать решения искусственного интеллекта и машинного обучения, которые наилучшим образом используют облако AWS и стек машинного обучения Amazon. Он работал над проектами в различных областях, включая MLOps, компьютерное зрение и NLP, с использованием широкого набора сервисов AWS. В свободное время Джузеппе любит играть в футбол.
Софиан Хамити — специалист по архитектуре решений AI/ML в AWS. Он помогает клиентам из разных отраслей ускорить внедрение искусственного интеллекта и машинного обучения, помогая им создавать и внедрять комплексные решения машинного обучения.