«Новый редактор кода, основанный на Code-OSS VS Code Open Source, теперь доступен в Amazon SageMaker Studio»

«Новый редактор кода на основе Code-OSS VS Code (с открытым исходным кодом) теперь доступен в Amazon SageMaker Studio»

Сегодня мы рады объявить о поддержке Code Editor, новой интегрированной среды разработки (IDE) в Amazon SageMaker Studio. Code Editor основан на Code-OSS, и предоставляет доступ к привычной среде и инструментам популярной IDE Visual Studio Code (VS Code), которые разработчики машинного обучения (МО) знают и любят, полностью интегрированные с другими функциями SageMaker Studio. Code Editor позволяет выбирать из тысяч совместимых с VS Code расширений, доступных в галерее расширений Open-VSX, чтобы еще больше разнообразить опыт разработки ваших команд. Вы также можете максимизировать производительность своей команды, используя безшовную интеграцию с сервисами AWS через AWS Toolkit для Visual Studio Code, включая помощника по кодированию, Amazon CodeWhisperer, оснащенного искусственным интеллектом AWS.

Как и со всеми приложениями IDE в SageMaker Studio, разработчики и инженеры МО могут выбирать вычислительные ресурсы по требованию и менять их в зависимости от своих потребностей, не теряя данных. Кроме того, ваши команды могут управлять версионированием кодовой базы и сотрудничать между собой благодаря интеграции с GitHub и сэкономить время на создании кода, используя популярные фреймворки МО, встроенные в контейнерное изображение Amazon SageMaker Distribution.

Начало работы с Code Editor на платформе Amazon SageMaker Studio

Ваш администратор IT может настроить новую область SageMaker Studio или перенести существующую в новый интерфейс SageMaker Studio, который включает Code Editor. Дополнительные сведения см. в статье Onboard to Amazon SageMaker Domain using Quick setup. Затем вы можете запустить Code Editor одним щелчком мыши в вашей среде Amazon SageMaker Studio.

  1. После настройки области запустите новый опыт SageMaker Studio из консоли или предварительно подписанного URL-адреса, предоставленного вашим администратором. Вы можете найти IDE Code Editor как в разделе “Приложения” в левой панели, так и в разделе “Обзор”, как показано на следующем скриншоте:
  2. На странице с подробностями Code Editor выберите Создать область Code Editor. Затем введите имя для вашего пространства и выберите Создать пространство:
  3. На странице с подробностями пространства Code Editor выберите конфигурацию вашего пространства, включая:
    1. Тип вычислительного ресурса Amazon Elastic Compute Cloud (Amazon EC2).
    2. Размер тома Amazon Elastic Block Storage (Amazon EBS) (от 5 ГБ до 16 ТБ).
    3. Изображение контейнера для использования (вы получите изображение SageMaker Distribution как для CPU, так и для GPU при запуске).
    4. Скрипт конфигурации жизненного цикла, который следует выполнить в случае необходимости настройки вашей среды при создании приложения.
    5. Общая файловая система Amazon Elastic File System (Amazon EFS) для подключения к вашему пространству Code Editor (это должно быть настроено вашим администратором при создании области).
  4. После предоставления данных конфигурации вашего пространства выберите Запустить пространство, чтобы выделить ресурсы для вашего пространства.

Если вы выбрали моментально запускаемый экземпляр с изображением SageMaker Distribution по умолчанию, ваше пространство Code Editor будет доступно менее чем за минуту. Если вы добавили конфигурации жизненного цикла в пространство, потребуется дополнительное время для установки зависимостей из этого скрипта.

После выделения ваших ресурсов страница деталей пространства покажет кнопку Открыть редактор кода.

  1. Выберите Открыть редактор кода для запуска IDE.

Редактор кода IDE запустится в новой вкладке браузера.

Возможности редактора кода

Редактор кода поставляется с уникальным набором функций, которые увеличивают производительность вашей команды машинного обучения:

  1. Управляемая инфраструктура – Редактор кода IDE работает на полностью управляемой инфраструктуре. Amazon SageMaker заботится о том, чтобы экземпляры были обновлены с последними исправлениями безопасности и обновлениями.
  2. Масштабирование ресурсов – С помощью редактора кода вы можете без проблем изменять базовые ресурсы (например, тип экземпляра, размер тома EBS), на которых работает редактор кода. Это полезно для разработчиков, которые хотят выполнять задачи с изменяющимися вычислительными, памятью и потребностями в хранении.
  3. Изображения, предоставляемые SageMaker – Редактор кода преднастроен с раздачей SageMaker в качестве изображения по умолчанию. Это контейнерное изображение содержит все самые популярные фреймворки машинного обучения, поддерживаемые SageMaker, а также SageMaker Python SDK, boto3 и другие специфические для AWS и науки о данных библиотеки. Это значительно сокращает время, затрачиваемое на настройку среды, и упрощает управление зависимостями пакетов в вашем проекте машинного обучения.
  4. Интеграция Amazon CodeWhisperer – Редактор кода также обладает возможностями по генерации искусственного интеллекта (АИ), основанными на Amazon CodeWhisperer. Эта нативная интеграция позволяет вам повысить производительность, предлагая предложения по коду внутри IDE.
  5. Интеграция с другими службами AWS – Вы получаете нативную интеграцию с Amazon Simple Storage Service (S3) хранилищами, репозиториями Amazon Elastic Container Registry (ECR), Amazon RedShift, Amazon CloudWatch и другими через AWS Toolkit для VS Code, который упрощает разработку в облаке.

Детали архитектуры

При запуске редактора кода в SageMaker Studio вы создаете новое приложение, которое работает как контейнер в экземпляре EC2 выбранного вами типа при настройке пространства для редактора кода. SageMaker Studio обрабатывает выделение базовых ресурсов за вас в управляемом сервисном аккаунте. Следующая схема иллюстрирует vereinfachteмамилизацию архитектуры приложения IDE редактора кода:

Для данного профиля пользователя вы можете запустить несколько пространств редактора кода с разными типами экземпляров ML (включая экземпляры ускоренных вычислений). Каждое пространство определяет размер присоединенного тома EBS, тип экземпляра и тип приложения для запуска в пространстве (например, редактор кода). При запуске пространства пользователи создаются экземпляры EC2 и создается экземпляр приложения SageMaker Studio для редактора кода, основанный на выбранном контейнерном изображении. Объем EBS сохраняется между циклами запуска/остановки приложения IDE. Если пользователи останавливают приложение редактора кода (например, чтобы сэкономить на вычислительных затратах), вычислительные ресурсы останавливаются, но объем EBS сохраняется и снова присоединяется к экземпляру при возобновлении работы.

Все приложения Code Editor работают в изолированном режиме; если вам нужно обмениваться данными между приложениями, вы можете подключить общий накопитель Amazon Elastic File System (EFS).

Для использования предустановленного расширения AWS Toolkit for VS Code в Code Editor IDE и интеграции с сервисами AWS, такими как Amazon CodeWhisperer, а также источниками данных, такими как Amazon S3 и Amazon Redshift, убедитесь, что:

  • У профиля пользователя SageMaker Studio есть соответствующие разрешения для использования нужных вам сервисов.
  • У вас есть способ общаться с этими сервисами в случае использования домена SageMaker Studio только в режиме VPC. Подробную информацию о требованиях к использованию сервисов AWS в домене SageMaker Studio только в режиме VPC см. в статье Подключение блокнотов SageMaker Studio к внешним ресурсам через VPC.

Обзор решения

В следующих разделах мы расскажем, как разработать пример проекта машинного обучения с помощью Code Editor в Amazon SageMaker Studio. Мы развернем модель Mistral-7B large language model (LLM) в режиме реального времени на конечной точке Amazon SageMaker с использованием встроенного контейнера от HuggingFace. В этом примере Code Editor может использоваться командой разработки машинного обучения, которая нуждается в расширенных функциях IDE для отладки кода и развертывания конечной точки. Пример кода можно найти в репозитории this GitHub. Мы покажем, как организовать ваш код для удобного сотрудничества между участниками команды, как использовать AWS Toolkit for VS Code и Amazon Code Whisperer для ускорения разработки, а также как развернуть модель Mistral-7B на конечной точке SageMaker. Давайте рассмотрим некоторые обычные задачи разработчика в IDE.

Взаимодействие с сервисами AWS напрямую из вашей IDE

По умолчанию Code Editor поставляется с AWS Toolkit for Visual Studio Code, который предоставляет вам интегрированный доступ к другим сервисам AWS в процессе работы над проектом. На основе разрешений IAM вашего профиля пользователя SageMaker Studio вы можете работать с данными в ваших бакетах Amazon S3, находить контейнерные образы в Amazon ECR, визуализировать логи Amazon CloudWatch для вашей конечной точки SageMaker и воспользоваться другими функциями для запуска проекта машинного обучения от начала до конца непосредственно из вашей IDE.

Организация репозитория кода для легкого сотрудничества

Вы можете организовать репозиторий вашего проекта, чтобы максимально повысить производительность вашей команды. Например, вы можете создать единый репозиторий, стремясь найти баланс между общими соглашениями о структуре проекта на языке Python и потребностями сотрудничества вашей команды.

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

Вы можете обмениваться зависимостями с другими участниками команды с помощью файла requirements.txt. Вы также можете указать файл config.yaml для обмена основными настройками вашей конечной точки SageMaker. Ваша сессия Code Editor будет использовать те же зависимости и конфигурацию, что и ваши коллеги, и позволит вам быстро разрабатывать, отлаживать и разворачивать ваш код для вывода результатов и конечной точки.

Разработка и отладка кода в IDE

В следующем примере мы покажем, как вы можете разрабатывать и отлаживать свой скрипт inference.py, который будет использоваться в вашем SageMaker эндпоинте:

Генерация кода и тестовых случаев с Amazon CodeWhisperer

Как часть AWS Toolkit в вашем редакторе кода, Amazon CodeWhisperer позволяет вам работать быстрее и безопаснее с помощью искусственно-интеллектного помощника по кодированию. Он может предлагать вам кодовые подсказки в реальном времени, оптимизирован для работы с AWS сервисами и поставляется с встроенным сканированием безопасности. В нашем примере мы используем Amazon CodeWhisperer для генерации кода целых строк и полных функций для развертывания и проверки работы вашего SageMaker эндпоинта

Развертывание вашей модели в SageMaker эндпоинте

Вы можете развернуть свою модель на SageMaker эндпоинте прямо из вашей IDE и отслеживать ее статус непосредственно из SageMaker Studio.

По мере того, как вы масштабируете свой ML проект в готовое к использованию приложение, редактор кода и инструментарий AWS позволят вам управлять и отслеживать ресурсы вашего LLM приложения в процессе его разработки, развертывания и выполнения.

Заключение

Редактор кода доступен во всех регионах AWS, где доступен Amazon SageMaker Studio (кроме GovCloud), и вы платите только за основные вычислительные и хранилищеские ресурсы в рамках SageMaker или других AWS сервисов, в зависимости от использования.

Чтобы начать работу с редактором кода в Amazon SageMaker Studio, вы можете использовать AWS Free Tier – 250 часов экземпляра ml.t3.medium в месяц на Amazon SageMaker Studio в течение первых 2 месяцев. Дополнительные сведения см. В разделе Цены Amazon SageMaker.