Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Host code-server op Amazon SageMaker

Machine learning-teams (ML) hebben de flexibiliteit nodig om hun geïntegreerde ontwikkelomgeving (IDE) te kiezen wanneer ze aan een project werken. Hiermee kunt u een productieve ontwikkelaarservaring hebben en snel innoveren. U kunt zelfs meerdere IDE's binnen een project gebruiken. Amazon Sage Maker laat ML-teams ervoor kiezen om te werken vanuit volledig beheerde, cloudgebaseerde omgevingen binnen Amazon SageMaker Studio, SageMaker Notebook-instanties, of vanaf uw lokale computer met lokale modus.

SageMaker biedt Jupyter en RStudio met één klik een ervaring voor het bouwen, trainen, debuggen, implementeren en bewaken van ML-modellen. In dit bericht delen we ook een oplossing voor hosting code server op SageMaker.

Met code-server kunnen gebruikers uitvoeren VS-code op externe machines en open het in een webbrowser. Voor ML-teams biedt het hosten van code-server op SageMaker minimale wijzigingen in een lokale ontwikkelingservaring en stelt u in staat om overal te coderen, op schaalbare cloudcomputing. Met VS Code kunt u ook ingebouwde Conda-omgevingen gebruiken met AWS-geoptimaliseerde TensorFlow en PyTorch, beheerde Git-repositories, lokale modus en andere functies van SageMaker om uw levering te versnellen. Voor IT-beheerders stelt het u in staat om de levering van beheerde, veilige IDE's in de cloud te standaardiseren en te versnellen, om ML-teams snel aan boord te krijgen en in hun projecten in te schakelen.

Overzicht oplossingen

In dit bericht behandelen we de installatie voor zowel Studio-omgevingen (optie A) als notebook-instanties (optie B). Voor elke optie doorlopen we een handmatig installatieproces dat ML-teams in hun omgeving kunnen uitvoeren, en een geautomatiseerde installatie die IT-beheerders voor hen kunnen instellen via de AWS-opdrachtregelinterface (AWS CLI).

Het volgende diagram illustreert het architectuuroverzicht voor het hosten van code-server op SageMaker.

Onze oplossing versnelt de installatie en configuratie van code-server in uw omgeving. Het werkt voor zowel JupyterLab 3 (aanbevolen) als JupyterLab 1 die worden uitgevoerd in Studio- en SageMaker-notebookinstanties. Het is gemaakt van shell-scripts die het volgende doen op basis van de optie.

Voor Studio (optie A) doet het shellscript het volgende:

Voor SageMaker-notebookinstanties (optie B) doet het shellscript het volgende:

  • Installeert codeserver.
  • Voegt een code-server-snelkoppeling toe aan het Jupyter-notebookbestandsmenu en JupyterLab-opstartprogramma voor snelle toegang tot de IDE.
  • Creëert een speciale Conda-omgeving voor het beheren van afhankelijkheden.
  • Installeert de Python en havenarbeider extensies op de IDE.

In de volgende secties lopen we door het installatieproces van de oplossing voor optie A en optie B. Zorg ervoor dat u toegang hebt tot Studio of een notebook-instantie.

Optie A: Host code-server op Studio

Voer de volgende stappen uit om codeserver op Studio te hosten:

  1. Kies Systeemterminal in uw Studio-opstartprogramma.
    ml-10244-studio-terminal-klik
  2. Om de code-server-oplossing te installeren, voert u de volgende opdrachten uit in uw systeemterminal:
    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

    Het duurt een paar seconden voordat de opdrachten zijn voltooid.

  3. Laad de browserpagina opnieuw, waar u een Codeserver knop in uw Studio-opstartprogramma.
    ml-10244-code-server-knop
  4. Kies Codeserver om een ​​nieuw browsertabblad te openen, zodat u vanuit uw browser toegang hebt tot de codeserver.
    De Python-extensie is al geïnstalleerd en u kunt aan de slag in uw ML-project.ml-10244-vscode

U kunt uw projectmap openen in VS Code en de vooraf gebouwde Conda-omgeving selecteren om uw Python-scripts uit te voeren.

ml-10244-vscode-conda

Automatiseer de code-serverinstallatie voor gebruikers in een Studio-domein

Als IT-beheerder kunt u de installatie voor Studio-gebruikers automatiseren door een levenscyclus configuratie. Het kan worden gedaan voor alle gebruikersprofielen onder een Studio-domein of voor specifieke. Zien Pas Amazon SageMaker Studio aan met behulp van levenscyclusconfiguraties voor meer details.

Voor dit bericht maken we een levenscyclusconfiguratie van de install-codeserver script en koppel het aan een bestaand Studio-domein. De installatie wordt gedaan voor alle gebruikersprofielen in het domein.

Voer de volgende opdrachten uit vanaf een terminal die is geconfigureerd met de AWS CLI en de juiste machtigingen:

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.

Nadat Jupyter Server opnieuw is opgestart, Codeserver knop verschijnt in uw Studio-opstartprogramma.

Optie B: Host code-server op een SageMaker notebook-instantie

Voer de volgende stappen uit om codeserver te hosten op een SageMaker-notebookinstantie:

  1. Start een terminal via Jupyter of JupyterLab voor uw notebook-instantie.
    Als u Jupyter gebruikt, kiest u: terminal op de New menu.
    Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  2.  Om de code-server-oplossing te installeren, voert u de volgende opdrachten uit in uw 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

    De codeserver- en extensie-installaties zijn permanent op de notebookinstantie. Als u de instantie echter stopt of opnieuw start, moet u de volgende opdracht uitvoeren om de codeserver opnieuw te configureren:

    sudo ./setup-codeserver.sh

    Het duurt een paar seconden voordat de opdrachten zijn uitgevoerd. U kunt het terminaltabblad sluiten wanneer u het volgende ziet.

    ml-10244-terminal-uitgang

  3. Laad nu de Jupyter-pagina opnieuw en controleer de New menu opnieuw.
    De Codeserver optie zou nu beschikbaar moeten zijn.
    Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

U kunt de codeserver ook starten vanuit JupyterLab met behulp van een speciale opstartknop, zoals weergegeven in de volgende schermafbeelding.

ml-10244-jupyterlab-code-server-knop

Het kiezen van Codeserver opent een nieuw browsertabblad, waarmee u toegang krijgt tot de codeserver vanuit uw browser. De Python- en Docker-extensies zijn al geïnstalleerd en u kunt aan de slag in uw ML-project.

ml-10244-notebook-vscode

Automatiseer de codeserverinstallatie op een notebookinstantie

Als IT-beheerder kunt u de installatie van de codeserver automatiseren met een levenscyclus configuratie draaien bij het maken van een instantie, en de installatie automatiseren met één die wordt uitgevoerd bij het starten van de instantie.

Hier maken we een voorbeeld van een notebook-instantie en levenscyclusconfiguratie met behulp van de AWS CLI. De on-create configuratie wordt uitgevoerd install-codeserver en on-start loopt setup-codeserver.

Voer de volgende opdrachten uit vanaf een terminal die is geconfigureerd met de AWS CLI en de juiste machtigingen:

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.

De code-serverinstallatie is nu geautomatiseerd voor de notebookinstantie.

Conclusie

met code server gehost op SageMaker, kunnen ML-teams VS Code uitvoeren op schaalbare cloudcomputing, overal coderen en hun ML-projectlevering versnellen. Voor IT-beheerders stelt het hen in staat om de levering van beheerde, veilige IDE's in de cloud te standaardiseren en te versnellen, om ML-teams snel aan boord te krijgen en in hun projecten in te schakelen.

In dit bericht hebben we een oplossing gedeeld die u kunt gebruiken om snel code-server te installeren op zowel Studio- als notebook-instanties. We hebben een handmatig installatieproces gedeeld dat ML-teams zelfstandig kunnen uitvoeren, en een geautomatiseerde installatie die IT-beheerders voor hen kunnen instellen.

Ga voor meer informatie naar AWSommige SageMaker op GitHub om alle relevante en actuele bronnen te vinden die nodig zijn om met SageMaker te werken.


Over de auteurs

Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Giuseppe Angelo Porcelli is een Principal Machine Learning Specialist Solutions Architect voor Amazon Web Services. Met meerdere jaren software-engineering en ML-achtergrond, werkt hij met klanten van elke omvang om hun zakelijke en technische behoeften grondig te begrijpen en AI- en Machine Learning-oplossingen te ontwerpen die optimaal gebruik maken van de AWS Cloud en de Amazon Machine Learning-stack. Hij heeft gewerkt aan projecten in verschillende domeinen, waaronder MLOps, Computer Vision, NLP, en met een breed scala aan AWS-services. In zijn vrije tijd voetbalt Giuseppe graag.

Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Sofia Hamiti is een AI / ML-specialist Solutions Architect bij AWS. Hij helpt klanten in verschillende bedrijfstakken hun AI / ML-traject te versnellen door hen te helpen bij het bouwen en operationaliseren van end-to-end machine learning-oplossingen.

Hostcodeserver op Amazon SageMaker PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Erik Pena is een Senior Technical Product Manager in het AWS Artificial Intelligence Platforms-team en werkt aan Amazon SageMaker Interactive Machine Learning. Momenteel richt hij zich op IDE-integraties op SageMaker Studio. Hij heeft een MBA-diploma van MIT Sloan en buiten zijn werk speelt hij graag basketbal en voetbal.

Tijdstempel:

Meer van AWS-machine learning