Logo Zéphyrnet

Augmentez la productivité sur Amazon SageMaker Studio : présentation des espaces JupyterLab et des outils d'IA générative | Services Web Amazon

Date :

Amazon SageMakerStudio propose un large éventail d'environnements de développement intégrés (IDE) entièrement gérés pour le développement d'apprentissage automatique (ML), notamment JupyterLab, un éditeur de code basé sur Code-OSS (Visual Studio Code Open Source) et RStudio. Il donne accès à l'ensemble d'outils le plus complet pour chaque étape du développement de ML, de la préparation des données à la création, la formation, le déploiement et la gestion des modèles de ML. Vous pouvez lancer JuptyerLab entièrement géré avec SageMaker Distribution préconfiguré en quelques secondes pour travailler avec vos blocs-notes, votre code et vos données. L'interface flexible et extensible de SageMaker Studio vous permet de configurer et d'organiser sans effort les flux de travail ML, et vous pouvez utiliser le compagnon de codage en ligne alimenté par l'IA pour créer, déboguer, expliquer et tester rapidement du code.

Dans cet article, nous examinons de plus près la mise à jour de SageMaker Studio et son IDE JupyterLab, conçus pour augmenter la productivité des développeurs ML. Nous présentons le concept d'espaces et expliquons comment les espaces JupyterLab permettent une personnalisation flexible des ressources de calcul, de stockage et d'exécution pour améliorer l'efficacité de votre flux de travail ML. Nous discutons également de notre passage à un modèle d'exécution localisé dans JupyterLab, ce qui se traduit par une expérience de codage plus rapide, plus stable et plus réactive. De plus, nous couvrons l'intégration transparente d'outils d'IA générative tels que Chuchoteur de code Amazon et Jupyter AI dans SageMaker Studio JupyterLab Spaces, illustrant comment ils permettent aux développeurs d'utiliser l'IA pour l'assistance au codage et la résolution innovante de problèmes.

Présentation des espaces dans SageMaker Studio

Le nouveau système d’ Interface Web de SageMaker Studio agit comme un centre de commande pour lancer votre IDE préféré et accéder à votre Amazon Sage Maker des outils pour créer, former, régler et déployer des modèles. En plus de JupyterLab et RStudio, SageMaker Studio comprend désormais un éditeur de code entièrement géré basé sur Code-OSS (Visual Studio Code Open Source). JupyterLab et Code Editor peuvent être lancés à l'aide d'un espace de travail flexible appelé Spaces.

Un espace est une représentation de configuration d'un IDE SageMaker, tel que JupyterLab ou Code Editor, conçue pour persister, qu'une application (IDE) associée à l'espace soit activement en cours d'exécution ou non. Un espace représente une combinaison d'une instance de calcul, d'un stockage et d'autres configurations d'exécution. Avec Spaces, vous pouvez créer et faire évoluer le calcul et le stockage de votre IDE au fur et à mesure, personnaliser les environnements d'exécution, ainsi que suspendre et reprendre le codage à tout moment et en tout lieu. Vous pouvez créer plusieurs de ces espaces, chacun configuré avec une combinaison différente de calcul, de stockage et d'exécution.

Lorsqu'un Espace est créé, il est équipé d'un Boutique de blocs élastiques Amazon (AmazonEBS) le volume, qui est utilisé pour stocker les fichiers, données, caches et autres artefacts des utilisateurs. Il est attaché à une instance de calcul ML chaque fois qu'un espace est exécuté. Le volume EBS garantit que les fichiers utilisateur, les données, le cache et les états de session sont systématiquement restaurés à chaque redémarrage de l'espace. Il est important de noter que ce volume EBS reste persistant, que l'espace soit en cours d'exécution ou arrêté. Il continuera à persister jusqu'à ce que l'espace soit supprimé.

De plus, nous avons introduit la fonctionnalité de système de fichiers « apportez votre propre système de fichiers » pour les utilisateurs qui souhaitent partager des environnements et des artefacts entre différents espaces, utilisateurs ou même domaines. Cela vous permet d'équiper en option vos Espaces avec votre propre Système de fichiers Amazon Elastic (Amazon EFS), facilitant le partage de ressources entre différents espaces de travail.

Créer un espace

Créer et lancer un nouvel espace est désormais simple et rapide. Il suffit de quelques secondes pour configurer un nouvel espace avec des instances de lancement rapide et moins de 60 secondes pour exécuter un espace. Les espaces sont équipés de paramètres prédéfinis pour le calcul et le stockage, gérés par les administrateurs. Les administrateurs de SageMaker Studio peuvent établir des préréglages au niveau du domaine pour les configurations de calcul, de stockage et d'exécution. Cette configuration vous permet de lancer rapidement un nouvel espace avec un minimum d'effort, en quelques clics seulement. Vous avez également la possibilité de modifier les configurations de calcul, de stockage ou d'exécution d'un espace pour une personnalisation plus poussée.

Il est important de noter que la création d'un espace nécessite la mise à jour du rôle d'exécution du domaine SageMaker avec une stratégie comme dans l'exemple suivant. Vous devez accorder à vos utilisateurs les autorisations pour les espaces privés et les profils d'utilisateurs nécessaires pour accéder à ces espaces privés. Pour des instructions détaillées, reportez-vous à Donnez à vos utilisateurs l'accès à des espaces privés.

{
  "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"
          ]
        }
      }
    },
  ]
}

Pour créer un espace, procédez comme suit :

  1. Dans SageMaker Studio, choisissez laboratoire jupyter sur le Applications menu.
  2. Selectionnez Créer un espace JupyterLab.
  3. Pour Nom, saisissez un nom pour votre espace.
  4. Selectionnez Créer de l'espace.
  5. Selectionnez Espace d'exécution pour lancer votre nouvel Espace avec les préréglages par défaut ou mettre à jour la configuration en fonction de vos besoins.

Reconfigurer un espace

Les espaces sont conçus pour permettre aux utilisateurs de passer de manière transparente entre différents types de calcul selon leurs besoins. Vous pouvez commencer par créer un nouvel espace avec une configuration spécifique, composée principalement de calcul et de stockage. Si vous devez passer à un autre type de calcul avec un nombre de vCPU supérieur ou inférieur, plus ou moins de mémoire ou une instance basée sur GPU à tout moment de votre flux de travail, vous pouvez le faire facilement. Après avoir arrêté le Space, vous pouvez modifier ses paramètres à l'aide de l'interface utilisateur ou API via l'interface SageMaker Studio mise à jour, puis redémarrez l'espace. SageMaker Studio gère automatiquement le provisionnement de votre espace existant vers la nouvelle configuration, ne nécessitant aucun effort supplémentaire de votre part.

Effectuez les étapes suivantes pour modifier un espace existant :

  1. Sur la page de détails de l'espace, choisissez Arrêter l'espace.
  2. Reconfigurez le calcul, le stockage ou le runtime.
  3. Selectionnez Espace d'exécution pour relancer l'espace.

Votre espace de travail sera mis à jour avec le nouveau type d'instance de stockage et de calcul que vous avez demandé.

La nouvelle architecture SageMaker Studio JupyterLab

L'équipe SageMaker Studio continue d'inventer et de simplifier son expérience de développeur avec la sortie d'une nouvelle expérience SageMaker Studio JupyterLab entièrement gérée. La nouvelle expérience SageMaker Studio JupyterLab combine le meilleur des deux mondes : l'évolutivité et la flexibilité de SageMaker Studio Classique (voir l'annexe à la fin de cet article) avec la stabilité et la familiarité de l'open source JupyterLab. Pour comprendre la conception de cette nouvelle expérience JupyterLab, examinons le schéma d'architecture suivant. Cela nous aidera à mieux comprendre l'intégration et les fonctionnalités de cette nouvelle plateforme JupyterLab Spaces.

En résumé, nous sommes passés à une architecture localisée. Dans cette nouvelle configuration, les processus du serveur Jupyter et du noyau fonctionnent côte à côte dans un seul conteneur Docker, hébergé sur la même instance de calcul ML. Ces instances ML sont provisionnées lorsqu'un espace est en cours d'exécution et liées à un volume EBS créé lors de la création initiale de l'espace.

Cette nouvelle architecture apporte plusieurs avantages ; nous en discutons certains dans les sections suivantes.

Latence réduite et stabilité accrue

SageMaker Studio est passé à un modèle d'exécution local, s'éloignant du modèle divisé précédent où le code était stocké sur un montage EFS et exécuté à distance sur une instance ML via une passerelle de noyau distante. Dans la configuration précédente, Kernel Gateway, un serveur Web sans tête, permettait les opérations du noyau via la communication à distance avec les noyaux Jupyter via HTTPS/WSS. Les actions des utilisateurs telles que l'exécution de code, la gestion de blocs-notes ou l'exécution de commandes de terminal ont été traitées par une application Kernel Gateway sur une instance ML distante, Kernel Gateway facilitant ces opérations via ZeroMQ (ZMQ) dans un conteneur Docker. Le diagramme suivant illustre cette architecture.

L'architecture JupyterLab mise à jour exécute toutes les opérations du noyau directement sur l'instance locale. Cette approche locale du serveur Jupyter offre généralement des performances améliorées et une architecture simple. Il minimise la latence et la complexité du réseau, simplifie l'architecture pour faciliter le débogage et la maintenance, améliore l'utilisation des ressources et s'adapte à des modèles de messagerie plus flexibles pour une variété de charges de travail complexes.

Essentiellement, cette mise à niveau rapproche beaucoup les notebooks et le code en cours d’exécution des noyaux, réduisant considérablement la latence et améliorant la stabilité.

Contrôle amélioré sur le stockage provisionné

SageMaker Studio Classic utilisait à l'origine Amazon EFS pour fournir un stockage de fichiers persistant et partagé pour les répertoires personnels des utilisateurs au sein de l'environnement SageMaker Studio. Cette configuration vous permet de stocker de manière centralisée des blocs-notes, des scripts et d'autres fichiers de projet, accessibles dans toutes vos sessions et instances SageMaker Studio.

Avec la dernière mise à jour de SageMaker Studio, on passe du stockage basé sur Amazon EFS à une solution basée sur Amazon EBS. Les volumes EBS, provisionnés avec SageMaker Studio Spaces, sont Tomes GP3 conçu pour offrir des performances de base cohérentes de 3,000 XNUMX IOPS, quelle que soit la taille du volume. Ce nouveau stockage Amazon EBS offre des performances supérieures pour les tâches gourmandes en E/S telles que la formation de modèles, le traitement des données, le calcul haute performance et la visualisation des données. Cette transition donne également aux administrateurs de SageMaker Studio une meilleure visibilité et un meilleur contrôle sur l'utilisation du stockage par les profils utilisateur au sein d'un domaine ou dans SageMaker. Vous pouvez maintenant définir la valeur par défaut (DefaultEbsVolumeSizeInGb) et maximum (MaximumEbsVolumeSizeInGb) tailles de stockage pour les espaces JupyterLab dans chaque profil utilisateur.

En plus de performances améliorées, vous avez la possibilité de redimensionner de manière flexible le volume de stockage attaché à l'instance de calcul ML de votre Space en modifiant votre paramètre Space à l'aide de l'interface utilisateur ou de l'action API de votre interface SageMaker Studio, sans nécessiter aucune action d'administration. Cependant, notez que vous ne pouvez modifier la taille du volume EBS que dans une seule direction : après avoir augmenté la taille du volume EBS de l'espace, vous ne pourrez plus la réduire.

SageMaker Studio offre désormais un contrôle élevé du stockage provisionné pour les administrateurs :

  • Les administrateurs de SageMaker Studio peuvent gérer les tailles de volume EBS pour les profils utilisateur. Ces volumes JupyterLab EBS peuvent varier d'un minimum de 5 Go à un maximum de 16 To. L'extrait de code suivant montre comment créer ou mettre à jour un profil utilisateur avec les paramètres d'espace par défaut et maximum :
    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 profile
    aws --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 propose désormais une fonctionnalité de marquage automatique améliorée pour les ressources Amazon EBS, étiquetant automatiquement les volumes créés par les utilisateurs avec des informations sur le domaine, l'utilisateur et l'espace. Cette avancée simplifie l'analyse de la répartition des coûts pour les ressources de stockage, aidant ainsi les administrateurs à gérer et à attribuer les coûts plus efficacement. Il est également important de noter que ces volumes EBS sont hébergés dans le compte de service, vous n'aurez donc pas de visibilité directe. Néanmoins, l'utilisation du stockage et les coûts associés sont directement liés à l'ARN du domaine, à l'ARN du profil utilisateur et à l'ARN de l'espace, ce qui facilite une allocation simple des coûts.
  • Les administrateurs peuvent également contrôler le chiffrement des volumes EBS d'un espace, au repos, à l'aide de clés gérées par le client (CMK).

Location partagée avec système de fichiers EFS à emporter

Les flux de travail ML sont généralement collaboratifs, nécessitant un partage efficace des données et du code entre les membres de l'équipe. Le nouveau SageMaker Studio améliore cet aspect collaboratif en vous permettant de partager des données, du code et d'autres artefacts via un serveur partagé. apportez votre propre système de fichiers EFS. Ce lecteur EFS peut être configuré indépendamment de SageMaker ou peut être une ressource Amazon EFS existante. Une fois provisionné, il peut être monté de manière transparente sur les profils utilisateur de SageMaker Studio. Cette fonctionnalité n'est pas limitée aux profils utilisateur au sein d'un seul domaine : elle peut s'étendre à plusieurs domaines, à condition qu'ils se trouvent dans la même région.

L'exemple de code suivant vous montre comment créer un domaine et y attacher un volume EFS existant à l'aide de son fs-id. Les volumes EFS peuvent être attachés à un domaine au niveau racine ou préfixe, comme le démontrent les commandes suivantes :

# create a domain with and attach an existing EFS volume at root level
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"}}]"
 
# create a domain with and attach an existing EFS volume at file system prefix leve
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"}}]"

# update an existing domain with your own EFS
aws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx 
    --default-user-settings 
    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

Lorsqu'un montage EFS est rendu disponible dans un domaine et ses profils utilisateur associés, vous pouvez choisir de l'attacher à un nouvel espace. Cela peut être effectué à l'aide de l'interface utilisateur de SageMaker Studio ou d'une action API, comme indiqué dans l'exemple suivant. Il est important de noter que lorsqu'un espace est créé avec un système de fichiers EFS provisionné au niveau du domaine, l'espace hérite de ses propriétés. Cela signifie que si le système de fichiers est provisionné au niveau racine ou préfixe au sein du domaine, ces paramètres s'appliqueront automatiquement à l'espace créé par les utilisateurs du domaine.

# attach an a preconfigured EFS to a space
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"}}]")

Après l'avoir monté sur un espace, vous pouvez localiser tous vos fichiers situés au-dessus du point de montage fourni par l'administrateur. Ces fichiers se trouvent dans le chemin du répertoire /mnt/custom-file-system/efs/fs-12345678.

Les montages EFS permettent de partager facilement des artefacts entre l'espace d'un utilisateur ou entre plusieurs utilisateurs ou entre domaines, ce qui le rend idéal pour les charges de travail collaboratives. Avec cette fonctionnalité, vous pouvez effectuer les opérations suivantes :

  • Partager des données – Les supports EFS sont idéaux pour stocker de grands ensembles de données cruciaux pour les expériences de science des données. Les propriétaires d'ensembles de données peuvent charger ces montages avec des ensembles de données de formation, de validation et de test, les rendant ainsi accessibles aux profils utilisateur au sein d'un domaine ou sur plusieurs domaines. Les administrateurs de SageMaker Studio peuvent également intégrer les montages EFS d'applications existantes tout en maintenant la conformité aux politiques de sécurité de l'organisation. Cela se fait grâce à un montage flexible au niveau du préfixe. Par exemple, si les données de production et de test sont stockées sur le même support EFS (comme fs-12345678:/data/prod and fs-12345678:/data/test), montage /data/test sur les profils utilisateur du domaine SageMaker accorde aux utilisateurs l'accès uniquement à l'ensemble de données de test. Cette configuration permet l'analyse ou la formation de modèles tout en gardant les données de production sécurisées et inaccessibles.
  • Partager le code – Les montages EFS facilitent le partage rapide des artefacts de code entre les profils utilisateur. Dans les scénarios où les utilisateurs ont besoin de partager rapidement des échantillons de code ou de collaborer sur une base de code commune sans les complexités des commandes git push/pull fréquentes, les montages EFS partagés sont très utiles. Ils offrent un moyen pratique de partager des artefacts de code de travail en cours au sein d'une équipe ou entre différentes équipes dans SageMaker Studio.
  • Partager des environnements de développement – Les montages EFS partagés peuvent également servir de moyen de diffuser rapidement les environnements sandbox parmi les utilisateurs et les équipes. Les montages EFS offrent une alternative solide pour partager des environnements Python comme conda ou virtualenv sur plusieurs espaces de travail. Cette approche évite la nécessité de distribuer requirements.txt or environment.yml fichiers, ce qui peut souvent conduire à la tâche répétitive de création ou de recréation d’environnements sur différents profils d’utilisateurs.

Ces fonctionnalités améliorent considérablement les capacités collaboratives de SageMaker Studio, permettant aux équipes de travailler ensemble efficacement sur des projets ML complexes. De plus, l'éditeur de code basé sur Code-OSS (Visual Studio Code Open Source) partage les mêmes principes architecturaux que l'expérience JupyterLab susmentionnée. Cet alignement apporte plusieurs avantages, tels qu'une latence réduite, une stabilité améliorée et un contrôle administratif amélioré, et permet aux utilisateurs d'accéder à des espaces de travail partagés, similaires à ceux proposés dans JupyterLab Spaces.

Outils basés sur l'IA générative sur JupyterLab Spaces

L'IA générative, un domaine de l'intelligence artificielle en évolution rapide, utilise des algorithmes pour créer de nouveaux contenus tels que du texte, des images et du code à partir de nombreuses données existantes. Cette technologie a révolutionné le codage en automatisant les tâches de routine, en générant des structures de code complexes et en proposant des suggestions intelligentes, rationalisant ainsi le développement et favorisant la créativité et la résolution de problèmes en programmation. En tant qu'outil indispensable pour les développeurs, l'IA générative améliore la productivité et stimule l'innovation dans l'industrie technologique. SageMaker Studio améliore cette expérience de développeur avec des outils préinstallés comme Amazon CodeWhisperer et Jupyter AI, utilisant l'IA générative pour accélérer le cycle de vie de développement.

Chuchoteur de code Amazon

Amazon CodeWhisperer est un assistant de programmation qui améliore la productivité des développeurs grâce à des recommandations et des solutions de code en temps réel. En tant que service d'IA géré par AWS, il est parfaitement intégré à l'IDE SageMaker Studio JupyterLab. Cette intégration fait d'Amazon CodeWhisperer un ajout fluide et précieux au flux de travail d'un développeur.

Amazon CodeWhisperer excelle dans l'augmentation de l'efficacité des développeurs en automatisant les tâches de codage courantes, en suggérant des modèles de codage plus efficaces et en réduisant le temps de débogage. Il constitue un outil essentiel pour les codeurs débutants et chevronnés, fournissant un aperçu des meilleures pratiques, accélérant le processus de développement et améliorant la qualité globale du code. Pour commencer à utiliser Amazon CodeWhisperer, assurez-vous que le Reprendre les suggestions automatiques la fonction est activée. Vous pouvez appeler manuellement des suggestions de code en utilisant raccourcis clavier.

Vous pouvez également rédiger un commentaire décrivant la fonction de code souhaitée et commencer à coder ; Amazon CodeWhisperer commencera à fournir des suggestions.

Notez que même si Amazon CodeWhisperer est préinstallé, vous devez disposer du codewhisperer:GenerateRecommendations autorisation dans le cadre du rôle d’exécution pour recevoir des recommandations de code. Pour plus de détails, reportez-vous à Utilisation de CodeWhisperer avec Amazon SageMaker Studio. Lorsque vous utilisez Amazon CodeWhisperer, AWS peut, à des fins d'amélioration du service, stocker des données sur votre utilisation et votre contenu. Pour vous désinscrire d'Amazon CodeWhisperer politique de partage de données, vous pouvez accéder au Paramètres option dans le menu supérieur, puis accédez à Éditeur de paramètres et désactiver Partager des données d'utilisation avec Amazon CodeWhisperer dans le menu des paramètres d'Amazon CodeWhisperer.

IA Jupyter

IA Jupyter est un outil open source qui apporte l'IA générative aux notebooks Jupyter, offrant une plate-forme robuste et conviviale pour explorer les modèles d'IA générative. Il améliore la productivité dans JupyterLab et Jupyter Notebooks en fournissant des fonctionnalités telles que la magie %%ai pour créer un terrain de jeu d'IA génératif dans les notebooks, une interface utilisateur de chat native dans JupyterLab pour interagir avec l'IA en tant qu'assistant conversationnel et la prise en charge d'un large éventail de langages étendus. des fournisseurs de modèles (LLM) comme AI21, Anthropic, Cohere et Hugging Face ou des services gérés comme Socle amazonien et les points de terminaison SageMaker. Cette intégration offre des méthodes plus efficaces et innovantes pour les tâches d'analyse de données, de ML et de codage. Par exemple, vous pouvez interagir avec un LLM prenant en charge le domaine à l'aide de l'interface de discussion Jupyternaut pour obtenir de l'aide sur les processus et les flux de travail ou générer un exemple de code via CodeLlama, hébergé sur les points de terminaison SageMaker. Cela en fait un outil précieux pour les développeurs et les data scientists.

Jupyter AI fournit un vaste sélection de modèles linguistiques prêts à l’emploi dès la sortie de la boîte. De plus, les modèles personnalisés sont également pris en charge via les points de terminaison SageMaker, offrant une flexibilité et un large éventail d'options aux utilisateurs. Il prend également en charge l'intégration de modèles, vous permettant d'effectuer des comparaisons et des tests en ligne et même de créer ou de tester des applications ad hoc de génération augmentée de récupération (RAG).

Jupyter AI peut agir comme votre assistant de chat, vous aidant avec des exemples de code, vous fournissant des réponses à vos questions et bien plus encore.

Vous pouvez utiliser l'IA de Jupyter %%ai magic pour générer un exemple de code dans votre bloc-notes, comme indiqué dans la capture d'écran suivante.

JupyterLab 4.0

L'équipe JupyterLab a publié la version 4.0, présentant des améliorations significatives en termes de performances, de fonctionnalités et d'expérience utilisateur. Des informations détaillées sur cette version sont disponibles dans le site officiel Documentation JupyterLab.

Cette version, désormais standard dans SageMaker Studio JupyterLab, introduit des performances optimisées pour la gestion des blocs-notes volumineux et des opérations plus rapides, grâce à des améliorations telles que l'optimisation des règles CSS et l'adoption de CodeMirror 6 et MathJax 3. Les principales améliorations incluent un éditeur de texte mis à niveau avec une meilleure accessibilité et personnalisation. , un nouveau gestionnaire d'extensions pour une installation facile des extensions Python et des capacités de recherche de documents améliorées avec des fonctionnalités avancées. De plus, la version 4.0 apporte des améliorations de l'interface utilisateur, des améliorations d'accessibilité et des mises à jour des outils de développement, et certaines fonctionnalités ont été rétroportées vers JupyterLab 3.6.

Conclusion

Les avancées de SageMaker Studio, notamment avec la nouvelle expérience JupyterLab, marquent un pas en avant significatif dans le développement du ML. L'interface utilisateur SageMaker Studio mise à jour, avec son intégration de JupyterLab, Code Editor et RStudio, offre un environnement rationalisé sans précédent pour les développeurs ML. L'introduction de JupyterLab Spaces offre flexibilité et facilité dans la personnalisation des ressources de calcul et de stockage, améliorant ainsi l'efficacité globale des flux de travail ML. Le passage d'une architecture de noyau distant à un modèle localisé dans JupyterLab augmente considérablement la stabilité tout en réduisant la latence de démarrage. Cela se traduit par une expérience de codage plus rapide, plus stable et plus réactive. De plus, l'intégration d'outils d'IA générative comme Amazon CodeWhisperer et Jupyter AI dans JupyterLab donne davantage de pouvoir aux développeurs, vous permettant d'utiliser l'IA pour l'assistance au codage et la résolution de problèmes innovante. Le contrôle amélioré du stockage provisionné et la possibilité de partager du code et des données sans effort via des montages EFS autogérés facilitent grandement les projets collaboratifs. Enfin, la sortie de JupyterLab 4.0 dans SageMaker Studio souligne ces améliorations, offrant des performances optimisées, une meilleure accessibilité et une interface plus conviviale, renforçant ainsi le rôle de JupyterLab en tant que pierre angulaire du développement de ML efficace et efficient dans le paysage technologique moderne.

Essayez SageMaker Studio JupyterLab Spaces en utilisant notre fonctionnalité intégrée rapide, qui vous permet de créer un nouveau domaine pour des utilisateurs uniques en quelques minutes. Partagez vos réflexions dans la section commentaires !

Annexe : Architecture de passerelle du noyau de SageMaker Studio Classic

A SageMaker Classique Le domaine est une agrégation logique d'un volume EFS, d'une liste d'utilisateurs autorisés à accéder au domaine et de configurations liées à la sécurité, aux applications, à la mise en réseau, etc. Dans l'architecture SageMaker Studio Classic de SageMaker, chaque utilisateur du domaine SageMaker possède un profil utilisateur distinct. Ce profil englobe des détails spécifiques tels que le rôle de l'utilisateur et son identifiant Posix dans le volume EFS, entre autres données uniques. Les utilisateurs accèdent à leur profil utilisateur individuel via une application Jupyter Server dédiée, connectée via HTTPS/WSS dans leur navigateur Web. SageMaker Studio Classic utilise une architecture de noyau distant utilisant une combinaison de types d'applications Jupyter Server et Kernel Gateway, permettant aux serveurs de notebooks d'interagir avec les noyaux sur des hôtes distants. Cela signifie que les noyaux Jupyter ne fonctionnent pas sur l'hôte du serveur de notebook, mais dans des conteneurs Docker sur des hôtes distincts. Essentiellement, votre ordinateur portable est stocké dans le répertoire personnel EFS et exécute le code à distance sur un autre Cloud de calcul élastique Amazon (Amazon EC2), qui héberge un conteneur Docker prédéfini équipé de bibliothèques ML telles que PyTorch, TensorFlow, Scikit-Learn, etc.

L'architecture du noyau distant de SageMaker Studio offre des avantages notables en termes d'évolutivité et de flexibilité. Cependant, il a ses limites, notamment un maximum de quatre applications par type d'instance et des goulots d'étranglement potentiels dus aux nombreuses connexions HTTPS/WSS à un type d'instance EC2 commun. Ces limitations pourraient affecter négativement l’expérience utilisateur.

Le diagramme d'architecture suivant décrit l'architecture de SageMaker Studio Classic. Il illustre le processus de connexion de l'utilisateur à une application Kernel Gateway via une application Jupyter Server, à l'aide de son navigateur Web préféré.


À propos des auteurs

Pranav Murthy est un architecte de solutions spécialisé en IA/ML chez AWS. Il s'efforce d'aider les clients à créer, former, déployer et migrer des charges de travail d'apprentissage automatique (ML) vers SageMaker. Il a auparavant travaillé dans l'industrie des semi-conducteurs en développant de grands modèles de vision par ordinateur (CV) et de traitement du langage naturel (NLP) pour améliorer les processus de semi-conducteurs à l'aide de techniques de pointe de ML. Pendant son temps libre, il aime jouer aux échecs et voyager. Vous pouvez trouver Pranav sur LinkedIn.

Kunal Jha est chef de produit senior chez AWS. Il se concentre sur la création d'Amazon SageMaker Studio comme le meilleur choix pour le développement de ML de bout en bout. Dans ses temps libres, Kunal aime skier et explorer le nord-ouest du Pacifique. Vous pouvez le retrouver sur LinkedIn.

Majisha Namath Parambath est ingénieur logiciel senior chez Amazon SageMaker. Elle travaille chez Amazon depuis plus de 8 ans et travaille actuellement à l'amélioration de l'expérience de bout en bout d'Amazon SageMaker Studio.

Bharat Nandamuri est un ingénieur logiciel senior travaillant sur Amazon SageMaker Studio. Il est passionné par la création de services backend à grande échelle, en mettant l'accent sur l'ingénierie des systèmes ML. En dehors du travail, il aime jouer aux échecs, faire de la randonnée et regarder des films.

Derek Lause est ingénieur logiciel chez AWS. Il s'engage à offrir de la valeur aux clients via Amazon SageMaker Studio et Notebook Instances. Dans ses temps libres, Derek aime passer du temps avec sa famille et ses amis et faire de la randonnée. Vous pouvez retrouver Derek sur LinkedIn.

spot_img

Dernières informations

spot_img