Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Serveur de code hôte sur Amazon SageMaker

Les équipes d'apprentissage automatique (ML) ont besoin de flexibilité pour choisir leur environnement de développement intégré (IDE) lorsqu'elles travaillent sur un projet. Il vous permet d'avoir une expérience de développeur productive et d'innover rapidement. Vous pouvez même utiliser plusieurs IDE dans un projet. Amazon Sage Maker permet aux équipes ML de choisir de travailler à partir d'environnements cloud entièrement gérés au sein de Amazon SageMakerStudio, Instances de bloc-notes SageMaker, ou depuis votre machine locale en utilisant mode local.

SageMaker offre une expérience en un clic à Jupyter et RStudio pour créer, former, déboguer, déployer et surveiller des modèles ML. Dans cet article, nous partagerons également une sur mesure pour l'hébergement serveur de code sur Sage Maker.

Avec code-server, les utilisateurs peuvent exécuter Code VS sur des machines distantes et y accéder dans un navigateur Web. Pour les équipes ML, l'hébergement de code-server sur SageMaker apporte des modifications minimes à une expérience de développement local et vous permet de coder de n'importe où, sur un calcul cloud évolutif. Avec VS Code, vous pouvez également utiliser des environnements Conda intégrés avec TensorFlow et PyTorch optimisés pour AWS, des référentiels Git gérés, le mode local et d'autres fonctionnalités fournies par SageMaker pour accélérer votre livraison. Pour les administrateurs informatiques, il vous permet de standardiser et d'accélérer le provisionnement d'IDE gérés et sécurisés dans le cloud, afin d'intégrer et d'activer rapidement les équipes ML dans leurs projets.

Vue d'ensemble de la solution

Dans cet article, nous couvrons l'installation pour les environnements Studio (option A) et les instances de notebook (option B). Pour chaque option, nous passons en revue un processus d'installation manuelle que les équipes ML peuvent exécuter dans leur environnement, et une installation automatisée que les administrateurs informatiques peuvent configurer pour eux via le Interface de ligne de commande AWS (AWS CLI).

Le schéma suivant illustre la vue d'ensemble de l'architecture pour l'hébergement du serveur de code sur SageMaker.

Notre solution accélère l'installation et la configuration du serveur de code dans votre environnement. Cela fonctionne à la fois pour JupyterLab 3 (recommandé) et JupyterLab 1 qui s'exécutent dans les instances de bloc-notes Studio et SageMaker. Il est composé de scripts shell qui effectuent les opérations suivantes en fonction de l'option.

Pour Studio (option A), le script shell effectue les opérations suivantes :

Pour les instances de bloc-notes SageMaker (option B), le script shell effectue les opérations suivantes :

  • Installe le serveur de code.
  • Ajoute un raccourci de serveur de code dans le menu de fichiers du bloc-notes Jupyter et le lanceur JupyterLab pour un accès rapide à l'IDE.
  • Crée un environnement Conda dédié à la gestion des dépendances.
  • Installe le Python ainsi que le Docker extensions sur l'IDE.

Dans les sections suivantes, nous passons en revue le processus d'installation de la solution pour l'option A et l'option B. Assurez-vous que vous avez accès à Studio ou à une instance de bloc-notes.

Option A : héberger le serveur de code sur Studio

Pour héberger code-server sur Studio, procédez comme suit :

  1. Selectionnez Terminal système dans votre lanceur Studio.
    ml-10244-studio-terminal-clic
  2. Pour installer la solution code-server, exécutez les commandes suivantes dans votre terminal système :
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/studio
     
    chmod +x install-codeserver.sh
    ./install-codeserver.sh
    
    # Note: when installing on JL1, please prepend the nohup command to the install command above and run as follows: 
    # nohup ./install-codeserver.sh

    Les commandes devraient prendre quelques secondes pour se terminer.

  3. Rechargez la page du navigateur, où vous pouvez voir un Serveur de codes bouton dans votre lanceur Studio.
    ml-10244-code-server-bouton
  4. Selectionnez Serveur de codes pour ouvrir un nouvel onglet de navigateur, vous permettant d'accéder à code-server depuis votre navigateur.
    L'extension Python est déjà installée et vous pouvez commencer à travailler dans votre projet ML.ml-10244-vscode

Vous pouvez ouvrir votre dossier de projet dans VS Code et sélectionner l'environnement Conda pré-construit pour exécuter vos scripts Python.

ml-10244-vscode-conda

Automatiser l'installation du serveur de code pour les utilisateurs d'un domaine Studio

En tant qu'administrateur informatique, vous pouvez automatiser l'installation pour les utilisateurs de Studio à l'aide d'un configuration du cycle de vie. Cela peut être fait pour tous les profils d'utilisateurs sous un domaine Studio ou pour des profils spécifiques. Voir Personnaliser Amazon SageMaker Studio à l'aide des configurations de cycle de vie pour plus de détails.

Pour cet article, nous créons une configuration de cycle de vie à partir du serveur de code d'installation script et attachez-le à un domaine Studio existant. L'installation est effectuée pour tous les profils utilisateur du domaine.

À partir d'un terminal configuré avec l'AWS CLI et les autorisations appropriées, exécutez les commandes suivantes :

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/studio

LCC_CONTENT=`openssl base64 -A -in install-codeserver.sh`

aws sagemaker create-studio-lifecycle-config 
    --studio-lifecycle-config-name install-codeserver-on-jupyterserver 
    --studio-lifecycle-config-content $LCC_CONTENT 
    --studio-lifecycle-config-app-type JupyterServer 
    --query 'StudioLifecycleConfigArn'

aws sagemaker update-domain 
    --region  
    --domain-id  
    --default-user-settings 
    '{
    "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
    "LifecycleConfigArn": "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver",
    "InstanceType": "system"
    },
    "LifecycleConfigArns": [
    "arn:aws:sagemaker:::studio-lifecycle-config/install-codeserver-on-jupyterserver"
    ]
    }}'

# Make sure to replace ,  and  in the previous commands with
# the Studio domain ID, the AWS region and AWS Account ID you are using respectively.

Après le redémarrage de Jupyter Server, le Serveur de codes apparaît dans votre lanceur Studio.

Option B : héberger le serveur de code sur une instance de bloc-notes SageMaker

Pour héberger code-server sur une instance de bloc-notes SageMaker, procédez comme suit :

  1. Lancez un terminal via Jupyter ou JupyterLab pour votre instance de bloc-notes.
    Si vous utilisez Jupyter, choisissez terminal sur le Nouveauté menu.
    Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  2.  Pour installer la solution code-server, exécutez les commandes suivantes dans votre terminal :
    curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
    tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz
    
    cd amazon-sagemaker-codeserver/install-scripts/notebook-instances
     
    chmod +x install-codeserver.sh
    chmod +x setup-codeserver.sh
    sudo ./install-codeserver.sh
    sudo ./setup-codeserver.sh

    Les installations du serveur de code et des extensions sont persistantes sur l'instance de bloc-notes. Cependant, si vous arrêtez ou redémarrez l'instance, vous devez exécuter la commande suivante pour reconfigurer code-server :

    sudo ./setup-codeserver.sh

    Les commandes devraient prendre quelques secondes pour s'exécuter. Vous pouvez fermer l'onglet du terminal lorsque vous voyez ce qui suit.

    ml-10244-sortie-terminal

  3. Maintenant, rechargez la page Jupyter et vérifiez le Nouveauté menu à nouveau.
    Les Serveur de codes l'option devrait maintenant être disponible.
    Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Vous pouvez également lancer code-server depuis JupyterLab à l'aide d'un bouton de lancement dédié, comme illustré dans la capture d'écran suivante.

ml-10244-jupyterlab-code-serveur-bouton

Choisir Serveur de codes ouvrira un nouvel onglet de navigateur, vous permettant d'accéder au serveur de code depuis votre navigateur. Les extensions Python et Docker sont déjà installées et vous pouvez vous mettre au travail dans votre projet ML.

ml-10244-notebook-vscode

Automatiser l'installation du serveur de code sur une instance de notebook

En tant qu'administrateur informatique, vous pouvez automatiser l'installation du serveur de code avec un configuration du cycle de vie s'exécutant à la création de l'instance et automatisez la configuration avec une exécution au démarrage de l'instance.

Ici, nous créons un exemple d'instance de bloc-notes et de configuration de cycle de vie à l'aide de CLI AWSL’ on-create la configuration s'exécute serveur de code d'installationet on-start fonctionne serveur de code de configuration.

À partir d'un terminal configuré avec l'AWS CLI et les autorisations appropriées, exécutez les commandes suivantes :

curl -LO https://github.com/aws-samples/amazon-sagemaker-codeserver/releases/download/v0.1.5/amazon-sagemaker-codeserver-0.1.5.tar.gz
tar -xvzf amazon-sagemaker-codeserver-0.1.5.tar.gz

cd amazon-sagemaker-codeserver/install-scripts/notebook-instances

aws sagemaker create-notebook-instance-lifecycle-config 
    --notebook-instance-lifecycle-config-name install-codeserver 
    --on-start Content=$((cat setup-codeserver.sh || echo "")| base64) 
    --on-create Content=$((cat install-codeserver.sh || echo "")| base64)

aws sagemaker create-notebook-instance 
    --notebook-instance-name  
    --instance-type  
    --role-arn  
    --lifecycle-config-name install-codeserver

# Make sure to replace , ,
# and  in the previous commands with the appropriate values.

L'installation du serveur de code est désormais automatisée pour l'instance de bloc-notes.

Conclusion

Avec serveur de code hébergées sur SageMaker, les équipes ML peuvent exécuter VS Code sur un calcul cloud évolutif, coder de n'importe où et accélérer la livraison de leur projet ML. Pour les administrateurs informatiques, cela leur permet de normaliser et d'accélérer le provisionnement d'IDE gérés et sécurisés dans le cloud, afin d'intégrer et d'activer rapidement les équipes ML dans leurs projets.

Dans cet article, nous avons partagé une solution que vous pouvez utiliser pour installer rapidement code-server sur les instances de Studio et de notebook. Nous avons partagé un processus d'installation manuelle que les équipes ML peuvent exécuter elles-mêmes, et une installation automatisée que les administrateurs informatiques peuvent configurer pour eux.

Pour aller plus loin dans vos apprentissages, visitez AWSome SageMaker sur GitHub pour trouver toutes les ressources pertinentes et à jour nécessaires pour travailler avec SageMaker.


À propos des auteurs

Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Giuseppe Angelo Porcelli est un architecte principal de solutions spécialisées en apprentissage automatique pour Amazon Web Services. Avec plusieurs années d'expérience en ingénierie logicielle et en ML, il travaille avec des clients de toutes tailles pour comprendre en profondeur leurs besoins commerciaux et techniques et concevoir des solutions d'IA et d'apprentissage automatique qui tirent le meilleur parti du cloud AWS et de la pile Amazon Machine Learning. Il a travaillé sur des projets dans différents domaines, notamment MLOps, Computer Vision, NLP, et impliquant un large éventail de services AWS. Pendant son temps libre, Giuseppe aime jouer au football.

Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Sofiane Hamiti est un architecte de solutions spécialisé en IA / ML chez AWS. Il aide les clients de tous les secteurs à accélérer leur parcours AI / ML en les aidant à créer et à opérationnaliser des solutions d'apprentissage automatique de bout en bout.

Hébergez le serveur de code sur Amazon SageMaker PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Eric Péna est chef de produit technique senior au sein de l'équipe des plateformes d'intelligence artificielle AWS, travaillant sur Amazon SageMaker Interactive Machine Learning. Il se concentre actuellement sur les intégrations IDE sur SageMaker Studio. Il est titulaire d'un MBA du MIT Sloan et, en dehors du travail, aime jouer au basket et au football.

Horodatage:

Plus de Apprentissage automatique AWS