Повышение продуктивности на Amazon SageMaker Studio Введение JupyterLab Spaces и инструменты генеративного искусственного интеллекта

Увеличение эффективности на Amazon SageMaker Studio Введение JupyterLab Spaces и инструменты генеративного искусственного интеллекта для повышения продуктивности

Amazon SageMaker Studio предлагает широкий набор полностью управляемых интегрированных сред разработки (IDE) для разработки машинного обучения (ML), включая JupyterLab, редактор кода на основе Code-OSS (Visual Studio Code Open Source) и RStudio. Он предоставляет доступ к самому полному набору инструментов для каждого этапа разработки ML, от подготовки данных до создания, обучения, развертывания и управления моделями ML. Вы можете запустить полностью управляемый JuptyerLab с предварительно настроенным распределением SageMaker за секунды, чтобы работать с вашими блокнотами, кодом и данными. Гибкий и расширяемый интерфейс SageMaker Studio позволяет легко настраивать и организовывать рабочие потоки ML, и вы можете использовать интегрированный помощник по написанию кода на основе AI для быстрого создания, отладки, объяснения и тестирования кода.

В этом посте мы более подробно рассмотрим обновленную SageMaker Studio и ее среду разработки JupyterLab, разработанную для повышения производительности разработчиков ML. Мы представим концепцию Spaces и объясним, как Spaces в JupyterLab позволяют гибко настраивать вычислительные, хранилище и временные ресурсы для повышения эффективности рабочего процесса ML. Мы также обсудим наш переход к локальной модели выполнения в JupyterLab, что привело к более быстрому, стабильному и отзывчивому опыту программирования. Кроме того, мы рассмотрим безшовную интеграцию генеративных инструментов искусственного интеллекта, таких как Amazon CodeWhisperer и Jupyter AI в рамках Spaces в SageMaker Studio JupyterLab, иллюстрируя, как они позволяют разработчикам использовать ИИ для помощи в написании кода и инновационного решения проблем.

Представляем Spaces в SageMaker Studio

Новый веб-интерфейс SageMaker Studio выступает в качестве командного центра для запуска предпочитаемой вами среды разработки и доступа к инструментам Amazon SageMaker для создания, обучения, настройки и развертывания моделей. В дополнение к JupyterLab и RStudio, SageMaker Studio теперь включает полностью управляемый редактор кода на основе Code-OSS (Visual Studio Code Open Source). Оба JupyterLab и редактор кода могут быть запущены с использованием гибкого рабочего пространства, называемого Spaces.

Space – это конфигурационное представление IDE SageMaker, таких как JupyterLab или редактор кода, способного сохраняться независимо от того, запущено ли приложение (IDE), связанное со Space, или нет. Space представляет собой комбинацию вычислительного экземпляра, хранилища и других конфигураций времени выполнения. С помощью Spaces вы можете создавать и масштабировать вычислительные и хранилище для вашей среды разработки по мере необходимости, настраивать среды выполнения и приостанавливать и возобновлять программирование в любой момент из любого места. Вы можете запускать несколько таких Spaces, каждый из которых настроен с различными комбинациями вычислительных, хранилищных и временных ресурсов.

При создании Space он оснащается BlokStore (Amazon EBS), который используется для хранения файлов, данных, кэшей и других артефактов пользователей. Он присоединяется к вычислительному экземпляру ML, когда Space запускается. Объем EBS гарантирует, что файлы пользователей, данные, кэш и состояния сессии будут надежно восстанавливаться при каждом перезапуске Space. Важно отметить, что этот объем EBS остается постоянным, независимо от того, работает ли Space или находится в остановленном состоянии. Он будет сохраняться до удаления Space.

Кроме того, мы представили функцию собственной файловой системы для пользователей, которые хотят обмениваться средами и артефактами между разными Spaces, пользователями или даже доменами. Это позволяет дополнительно оснащать ваши Spaces вашей собственной системой файлов Amazon Elastic (Amazon EFS), облегчая обмен ресурсами между различными рабочими пространствами.

Создание пространства

Создание и запуск нового пространства теперь быстрые и простые. Для настройки нового пространства требуется всего несколько секунд с быстрыми экземплярами запуска и менее 60 секунд для запуска пространства. Пространства оснащены предопределенными настройками для вычислений и хранения, управляемыми администраторами. Администраторы SageMaker Studio могут установить предустановленные параметры на уровне домена для вычислений, хранения и конфигураций времени выполнения. Это позволяет вам быстро запустить новое пространство с минимальными усилиями, требующими всего несколько щелчков мыши. У вас также есть возможность настроить вычислительные, хранилищные или конфигурации времени выполнения пространства для дополнительной настройки.

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

{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreatePresignedDomainUrl"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"    },    {      "Sid": "SMStudioAppPermissionsListAndDescribe",      "Effect": "Allow",      "Action": [        "sagemaker:ListApps",        "sagemaker:ListDomains",        "sagemaker:ListUserProfiles",        "sagemaker:ListSpaces",        "sagemaker:DescribeApp",        "sagemaker:DescribeDomain",        "sagemaker:DescribeUserProfile",        "sagemaker:DescribeSpace"      ],      "Resource": "*"    },    {      "Sid": "SMStudioAppPermissionsTagOnCreate",      "Effect": "Allow",      "Action": [        "sagemaker:AddTags"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:*/*",      "Condition": {        "Null": {          "sagemaker:TaggingAction": "false"        }      }    },    {      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "Null": {          "sagemaker:OwnerUserProfileArn": "true"        }      }    },    {      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateSpace",        "sagemaker:UpdateSpace",        "sagemaker:DeleteSpace"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:$AWS Region:$111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private",            "Shared"          ]        }      }    },    {      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",      "Effect": "Allow",      "Action": [        "sagemaker:CreateApp",        "sagemaker:DeleteApp"      ],      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/${sagemaker:DomainId}/*",      "Condition": {        "ArnLike": {          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:${aws:Region}:${aws:PrincipalAccount}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"        },        "StringEquals": {          "sagemaker:SpaceSharingType": [            "Private"          ]        }      }    },  ]}

Для создания пространства выполните следующие шаги:

  1. В SageMaker Studio выберите пункт JupyterLab в меню Приложения.
  2. Выберите Создать пространство JupyterLab.
  3. Для поля Название введите название вашего пространства.
  4. Выберите Создать пространство.
  5. Выберите Запустить пространство, чтобы запустить ваше новое пространство с настройками по умолчанию или обновите конфигурацию в соответствии с вашими требованиями.

Переконфигурация пространства

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

Выполните следующие шаги для редактирования существующего пространства:

  1. На странице сведений о пространстве выберите пункт Остановить пространство.
  2. Переконфигурируйте вычисления, хранилище или время выполнения.
  3. Выберите Запустить пространство, чтобы перезапустить пространство.

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

Новая архитектура SageMaker Studio JupyterLab

Команда SageMaker Studio продолжает совершенствовать и упрощать опыт разработки с выпуском нового полностью управляемого опыта работы с JupyterLab в рамках SageMaker Studio. Новый опыт работы с JupyterLab в SageMaker Studio объединяет лучшие качества двух миров: масштабируемость и гибкость SageMaker Studio Classic (см. приложение в конце этого сообщения) с устойчивостью и знакомой средой разработки JupyterLab с открытым исходным кодом. Чтобы понять дизайн этого нового опыта работы с JupyterLab, давайте рассмотрим следующую схему архитектуры. Это поможет нам лучше понять интеграцию и возможности новой платформы пространств JupyterLab.

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

This new architecture brings several benefits; we discuss some of these in the following sections.

Снижение задержки и повышение стабильности

SageMaker Studio перешел к локальной модели запуска, отказавшись от предыдущей модели, где код хранился на монтировании EFS и запускался удаленно на экземпляре ML через удаленный Kernel Gateway. В предыдущей настройке Kernel Gateway, безголовый веб-сервер, позволял выполнять операции с ядрами через удаленное взаимодействие с ядрами Jupyter по протоколам HTTPS/WSS. Действия пользователя, такие как запуск кода, управление тетрадями или выполнение терминальных команд, обрабатывались приложением Kernel Gateway на удаленном экземпляре ML, а Kernel Gateway обеспечивал эти операции через ZeroMQ (ZMQ) в контейнере Docker. Следующая диаграмма иллюстрирует эту архитектуру.

Обновленная архитектура JupyterLab выполняет все операции с ядрами непосредственно на локальном экземпляре. Этот подход локального Jupyter Server обычно обеспечивает улучшенную производительность и простую архитектуру. Он уменьшает задержку и сложность сети, упрощает архитектуру для более простой отладки и обслуживания, повышает использование ресурсов и позволяет использовать более гибкие шаблоны обмена сообщениями для различных сложных рабочих нагрузок.

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

Улучшенный контроль над предоставленным хранилищем

SageMaker Studio Classic изначально использовал Amazon EFS для предоставления постоянного общего хранилища файлов для пользовательских домашних каталогов в рамках среды SageMaker Studio. Эта настройка позволяет централизованно хранить тетради, скрипты и другие файлы проекта, доступные во всех сеансах и экземплярах SageMaker Studio.

В последнем обновлении SageMaker Studio произошел переход от хранилища на основе Amazon EFS к решению на основе Amazon EBS. Тома EBS, созданные с помощью пространств SageMaker Studio, являются томами GP3, предназначенными для обеспечения постоянной базовой производительности в 3 000 IOPS, независимо от размера тома. Это новое хранилище Amazon EBS обеспечивает более высокую производительность для задач с высокими нагрузками на ввод-вывод, таких как обучение моделей, обработка данных, вычисления высокой производительности и визуализация данных. Этот переход также дает администраторам SageMaker Studio больше возможностей для контроля за использованием хранилища пользователями в пределах домена или для всего SageMaker. Теперь вы можете задавать размеры хранилища по умолчанию (DefaultEbsVolumeSizeInGb) и максимальные размеры (MaximumEbsVolumeSizeInGb) для пространств JupyterLab в каждом пользовательском профиле.

Помимо улучшенной производительности, вы получаете возможность гибко изменять размер тома хранилища, связанного с экземпляром вычислительных ресурсов ML, редактируя настройки пространства через пользовательский интерфейс SageMaker Studio или с помощью действий API, без необходимости административных мероприятий. Однако обратите внимание, что изменять размеры томов EBS можно только в одном направлении – после увеличения размера тома EBS пространства его размер уже нельзя уменьшить.

SageMaker Studio теперь предлагает повышенный контроль над предоставленными хранилищем для администраторов:

  • Администраторы SageMaker Studio могут управлять размерами томов EBS для пользовательских профилей. Тома JupyterLab EBS могут варьироваться от минимального размера 5 ГБ до максимального размера 16 ТБ. В следующем фрагменте кода показано, как создать или обновить пользовательский профиль с настройками пространства хранения по умолчанию и максимальными настройками:

    aws --region $REGION sagemaker create-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":5,            "MaximumEbsVolumeSizeInGb":100        }    }}'# alternatively to update an existing user profileaws --region $REGION sagemaker update-user-profile \--domain-id $DOMAIN_ID \--user-profile-name $USER_PROFILE_NAME \--user-settings '{    "SpaceStorageSettings": {        "DefaultEbsStorageSettings":{            "DefaultEbsVolumeSizeInGb":25,            "MaximumEbsVolumeSizeInGb":100         }    }}'
  • SageMaker Studio теперь предлагает улучшенную функцию автоматической маркировки ресурсов Amazon EBS, автоматически размечая тома, созданные пользователями, информацией о домене, пользователе и пространстве. Это упрощает анализ распределения затрат на хранилище и помогает администраторам более эффективно управлять и атрибутировать затраты. Важно отметить, что эти тома EBS находятся в учетной записи сервиса, поэтому вы не будете иметь прямой видимости. Тем не менее, использование хранилища и связанные с ним затраты прямо связаны с ARN домена, ARN пользовательского профиля и ARN пространства, облегчая простую атрибуцию затрат.

  • Администраторы также могут контролировать шифрование томов EBS пространства в покое с помощью ключей, управляемых клиентом (CMK).

Разделённая аренда с вашей собственной файловой системой EFS

Рабочие процессы машинного обучения обычно являются коллаборативными и требуют эффективного обмена данными и кодом среди членов команды. Новая среда SageMaker Studio усиливает этот коллаборативный аспект, позволяя вам делиться данными, кодом и другими артефактами с помощью общей файловой системы EFS, которую вы предоставляете. Этот диск EFS можно настроить независимо от SageMaker или использовать уже существующий ресурс Amazon EFS. После его предоставления его можно легко примонтировать на профили пользователей SageMaker Studio. Эта функция не ограничена профилями пользователей в одной домене – она может распространяться на домены, находящиеся в одном регионе.

Следующий пример кода показывает, как создать домен и присоединить к нему существующий том EFS, используя его связанный идентификатор fs-id. Тома EFS могут быть присоединены к домену на уровне корневого каталога или префикса, как показывают следующие команды:

# создать домен и присоединить существующий том EFS на уровне корневого каталогаaws sagemaker create-domain --domain-name "myDomain" \ --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM \ --default-user-settings \ "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]" # создать домен и присоединить существующий том EFS на уровне префиксаaws sagemaker create-domain --domain-name "myDomain" \ --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM \ --default-user-settings \ "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678", FileSystemPath="/my/custom/path"}}]"# обновить существующий домен с вашим собственным EFSaws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx \    --default-user-settings \    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

Когда монтирование EFS становится доступным в домене и связанных с ним профилях пользователей, вы можете выбрать, чтобы присоединить его к новому пространству. Это можно сделать с помощью пользовательского интерфейса SageMaker Studio или действия API, как показано в следующем примере. Важно отметить, что когда пространство создаётся с файловой системой EFS, предоставленной на уровне домена, оно наследует его свойства. Это означает, что если файловая система предоставлена на корневом уровне или на уровне префикса внутри домена, эти настройки автоматически применяются к пространству, созданному пользователями домена.

# присоединить преднастроенный EFS к пространствуaws sagemaker create-space \--space-name byofs-space --domain-id "myDomain" \--ownership-settings "OwnerUserProfileName={USER_PROFILE_NAME}" \--space-sharing-settings "SharingType=Private" \--space-settings \"AppType=JupyterLab,CustomFileSystems=[{EFSFileSystem={FileSystemId="fs-12345678"}}]")

После того, как он примонтирован в пространство, вы можете найти все файлы, расположенные над точкой монтирования, предоставленной администратором. Эти файлы можно найти в каталоге /mnt/custom-file-system/efs/fs-12345678.

Монтирование EFS упрощает обмен артефактами между пространствами пользователя или между несколькими пользователями или доменами, что делает его идеальным для коллаборативных рабочих процессов. С помощью этой функции вы можете:

  • Делиться данными – Монтирование EFS идеально подходит для хранения больших наборов данных, необходимых для экспериментов в области науки о данных. Владельцы наборов данных могут загружать эти монтирования с обучающими, валидационными и тестовыми наборами данных, делая их доступными для профилей пользователей в пределах домена или нескольких доменов. Администраторы SageMaker Studio также могут интегрировать существующие монтирования EFS приложений, при соблюдении политик безопасности организации. Это достигается через гибкое монтирование на уровне префикса. Например, если производственные и тестовые данные хранятся на одном монтировании EFS (таком как fs-12345678:/data/prod и fs-12345678:/data/test), монтирование /data/test в профили пользователей домена SageMaker предоставляет пользователям доступ только к тестовому набору данных. Эта настройка позволяет проводить анализ или обучение моделей, при этом обеспечивая безопасность и недоступность производственных данных.
  • Делиться кодом – Монтирование EFS облегчает быстрый обмен артефактами кода между профилями пользователей. В ситуациях, когда пользователям нужно быстро делиться образцами кода или сотрудничать над общей кодовой базой без сложностей частых команд git push/pull, общие монтирования EFS являются чрезвычайно полезными. Они предлагают удобный способ обмена кодовыми артефактами, находящимися в стадии разработки, внутри команды или между различными командами в SageMaker Studio.
  • Делиться средами разработки – Общие монтирования EFS также могут служить средством быстрого распространения сред среди пользователей и команд. Монтирование EFS представляет собой надежную альтернативу для обмена Python-средами, такими как conda или virtualenv, между несколькими рабочими пространствами. Такой подход избавляет от необходимости распространять файлы requirements.txt или environment.yml, что часто приводит к многократному созданию или воссозданию сред различными профилями пользователей.

Эти функции значительно улучшают возможности совместной работы в SageMaker Studio, облегчая эффективное сотрудничество команд в сложных проектах машинного обучения. Кроме того, редактор кода на основе Code-OSS (открытый исходный код Visual Studio Code) имеет те же архитектурные принципы, что и вышеупомянутый опыт работы с JupyterLab. Это сопоставление приносит несколько преимуществ, таких как снижение задержки, улучшенная стабильность и улучшенный административный контроль, а также обеспечивает доступ пользователей к общим рабочим пространствам, подобным тем, которые предлагаются в JupyterLab Spaces.

Инструменты генеративного искусственного интеллекта на JupyterLab Spaces

Генеративный искусственный интеллект – это быстро развивающаяся область искусственного интеллекта, использующая алгоритмы для создания нового контента, такого как текст, изображения и код на основе обширных существующих данных. Эта технология революционизировала программирование, автоматизируя рутинные задачи, генерируя сложные структуры кода и предлагая интеллектуальные рекомендации, тем самым упрощая разработку, стимулируя творчество и способствуя решению проблем в программировании. Как неотъемлемый инструмент для разработчиков, генеративный ИИ повышает производительность и стимулирует инновации в сфере технологий. SageMaker Studio улучшает этот опыт разработчика с помощью предустановленных инструментов, таких как Amazon CodeWhisperer и Jupyter AI, используя генеративный ИИ для ускорения жизненного цикла разработки.

Amazon CodeWhisperer

Amazon CodeWhisperer – это помощник по программированию, повышающий производительность разработчиков путем предоставления рекомендаций и решений по коду в реальном времени. Как сервис управляемого AWS ИИ, он безупречно интегрирован в IDE SageMaker Studio JupyterLab. Эта интеграция делает Amazon CodeWhisperer гибким и ценным дополнением в рабочем процессе разработчика.

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

В качестве альтернативы, вы можете написать комментарий, описывающий предполагаемую функцию кода, и начать писать код; Amazon CodeWhisperer начнет предлагать рекомендации.

Обратите внимание, что, хотя Amazon CodeWhisperer предустановлен, для получения рекомендаций по коду вам необходимо иметь разрешение codewhisperer:GenerateRecommendations в рамках роли выполнения. Подробные сведения см. В разделе Использование CodeWhisperer с Amazon SageMaker Studio. При использовании Amazon CodeWhisperer AWS может хранить данные о вашем использовании и контенте в целях улучшения сервиса. Чтобы отказаться от политики совместного использования данных Amazon CodeWhisperer, вы можете перейти в раздел Настройки в верхнем меню, затем перейти к редактору Настроек и отключить Разрешить передачу данных об использовании Amazon CodeWhisperer в меню настроек Amazon CodeWhisperer.

Jupyter AI

Jupyter AI – это инструмент с открытым исходным кодом, который расширяет возможности использования генеративного искусственного интеллекта в блокнотах Jupyter, предоставляя надежную и удобную платформу для изучения моделей генеративного ИИ. Он повышает производительность в JupyterLab и Jupyter Notebooks, предоставляя такие функции, как магия %%ai для создания игровой площадки генеративного ИИ внутри блокнотов, нативный чат-интерфейс в JupyterLab для взаимодействия с ИИ как разговорным помощником и поддержку широкого спектра больших языковых моделей (ЛЛМ), таких как AI21, Anthropic, Cohere, Hugging Face, или управляемых сервисов, таких как Amazon Bedrock и конечных точек SageMaker. Эта интеграция предлагает более эффективные и инновационные методы анализа данных, машинного обучения и задач программирования. Например, вы можете взаимодействовать с осознаваемой доменом ЛЛМ с помощью чат-интерфейса Jupyternaut для помощи в процессах и рабочих процессах или создавать примеры кода с помощью CodeLlama, размещенного на конечных точках SageMaker. Это делает его ценным инструментом для разработчиков и ученых-исследователей данных.

Jupyter AI предоставляет широкий выбор готовых к использованию моделей языка прямо из коробки. Кроме того, поддерживается создание пользовательских моделей через конечные точки SageMaker, что предлагает гибкость и широкий выбор опций для пользователей. Также предоставляется поддержка встраивания моделей, что позволяет выполнять встроенные сравнения и тестирование, а также создавать или тестировать приложения Retrieval Augmented Generation (RAG).

Jupyter AI может выступать в роли вашего чат-ассистента, помогая вам с примерами кода, предоставляя ответы на вопросы и многое другое.

Вы можете использовать магию %%ai Jupyter AI, чтобы генерировать образцы кода внутри вашего блокнота, как показано на следующем скриншоте.

JupyterLab 4.0

Команда JupyterLab выпустила версию 4.0, включающую значительные улучшения в производительности, функциональности и пользовательском опыте. Подробная информация об этом релизе доступна в официальной документации JupyterLab.

Эта версия, теперь стандартная в SageMaker Studio JupyterLab, вводит оптимизированную производительность для работы с большими блокнотами и более быстрыми операциями благодаря улучшениям, таким как оптимизация CSS-правил и переход к CodeMirror 6 и MathJax 3. Основные улучшения включают обновленный текстовый редактор с лучшей доступностью и настраиваемостью, новый менеджер расширений для установки Python-расширений и улучшенные возможности поиска документов со сложными функциями. Кроме того, версия 4.0 вносит улучшения в пользовательский интерфейс, доступность и инструменты разработки, и некоторые функции были обратно портированы в JupyterLab 3.6.

Заключение

Улучшения SageMaker Studio, особенно с новым опытом JupyterLab, являются значительным прорывом в разработке машинного обучения. Обновленный пользовательский интерфейс SageMaker Studio, с интеграцией JupyterLab, редактора кода и RStudio, предлагает непревзойденную, эффективную среду для разработчиков машинного обучения. Введение JupyterLab Spaces обеспечивает гибкость и простоту настройки вычислительных и хранилищных ресурсов, повышая общую эффективность рабочих процессов машинного обучения. Переход от удаленной архитектуры ядра к локализованной модели в JupyterLab существенно увеличивает стабильность при снижении времени запуска. Это приводит к более быстрому, стабильному и отзывчивому процессу написания кода. Кроме того, интеграция генеративных инструментов искусственного интеллекта, таких как Amazon CodeWhisperer и Jupyter AI в JupyterLab, дополнительно усиливает возможности разработчиков, позволяя использовать искусственный интеллект для помощи в написании кода и решении инновационных задач. Улучшенное управление предоставленным хранилищем и возможность легко обмениваться кодом и данными через самостоятельно управляемые точки монтирования EFS значительно упрощают совместные проекты. Наконец, выпуск JupyterLab 4.0 в SageMaker Studio подчеркивает эти улучшения, предлагая оптимизированную производительность, лучшую доступность и более дружественный интерфейс, тем самым закрепляя роль JupyterLab как основы эффективной разработки машинного обучения в современном технологическом ландшафте.

Попробуйте SageMaker Studio JupyterLab Spaces с помощью нашей быстрой функции входа, которая позволяет создавать новые домены для одного пользователя всего за несколько минут. Поделитесь своими мыслями в разделе комментариев!

Приложение: Архитектура классической ядерной шлюза SageMaker Studio

Домен SageMaker Classic – это логическое объединение тома EFS, списка пользователей, которым разрешен доступ к домену, и конфигураций, связанных с безопасностью, приложениями, сетью и другими. В архитектуре SageMaker Studio Classic каждый пользователь в пределах домена SageMaker имеет отдельный пользовательский профиль. Этот профиль включает в себя специфические данные, такие как роль пользователя и его пользовательский идентификатор Posix в томе EFS. Пользователи получают доступ к своему индивидуальному профилю пользователя через специальное приложение сервера Jupyter, подключенное через HTTPS/WSS в их веб-браузере. SageMaker Studio Classic использует архитектуру удаленного ядра с использованием комбинации типов приложений Jupyter Server и Kernel Gateway, позволяющих серверам блокнотов взаимодействовать с ядрами на удаленных хостах. Это означает, что ядра Jupyter работают не на хосте сервера блокнотов, а в контейнерах Docker на отдельных хостах. Практически ваш блокнот хранится в домашнем каталоге EFS и выполняет код удаленно на другом экземпляре Amazon Elastic Compute Cloud (Amazon EC2), в котором находится предварительно сконфигурированный контейнер Docker с библиотеками машинного обучения, такими как PyTorch, TensorFlow, Scikit-Learn и другие.

Архитектура удаленного ядра в SageMaker Studio предлагает значительные преимущества в терминах масштабируемости и гибкости. Однако у нее есть свои ограничения, включая максимальное количество четырех приложений на тип экземпляра и потенциальные узкие места из-за многочисленных соединений HTTPS/WSS с общим типом экземпляра EC2. Эти ограничения могут негативно сказаться на пользовательском опыте.

Следующая архитектурная диаграмма показывает архитектуру SageMaker Studio Classic. Она иллюстрирует процесс подключения пользователя к приложению ядерного шлюза через приложение сервера Jupyter с использованием предпочтительного веб-браузера.