Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Host code server su Amazon SageMaker

I team di machine learning (ML) hanno bisogno della flessibilità per scegliere il proprio ambiente di sviluppo integrato (IDE) quando lavorano a un progetto. Ti consente di avere un'esperienza di sviluppo produttiva e di innovare rapidamente. Puoi anche utilizzare più IDE all'interno di un progetto. Amazon Sage Maker consente ai team ML di scegliere di lavorare all'interno di ambienti completamente gestiti e basati su cloud Amazon Sage Maker Studio, Istanze del notebook SageMakero dal tuo computer locale utilizzando modalità locale.

SageMaker offre un'esperienza con un clic a Jupyter e RStudio per creare, addestrare, eseguire il debug, distribuire e monitorare i modelli ML. In questo post condivideremo anche a soluzione per l'hosting in codice del server su SageMaker.

Con il server di codice, gli utenti possono eseguire Codice VS. su macchine remote e accedervi in ​​un browser web. Per i team ML, l'hosting di code-server su SageMaker fornisce modifiche minime a un'esperienza di sviluppo locale e consente di codificare da qualsiasi luogo, su cloud computing scalabile. Con VS Code, puoi anche utilizzare ambienti Conda integrati con TensorFlow e PyTorch ottimizzati per AWS, repository Git gestiti, modalità locale e altre funzionalità fornite da SageMaker per accelerare la consegna. Per gli amministratori IT, consente di standardizzare e accelerare il provisioning di IDE gestiti e sicuri nel cloud, per integrare rapidamente e abilitare i team ML nei loro progetti.

Panoramica della soluzione

In questo post, trattiamo l'installazione sia per gli ambienti Studio (opzione A) che per le istanze notebook (opzione B). Per ciascuna opzione, esaminiamo un processo di installazione manuale che i team ML possono eseguire nel loro ambiente e un'installazione automatizzata che gli amministratori IT possono configurare per loro tramite il Interfaccia della riga di comando di AWS (interfaccia a riga di comando dell'AWS).

Il diagramma seguente illustra la panoramica dell'architettura per l'hosting di code server su SageMaker.

La nostra soluzione velocizza l'installazione e la configurazione del server di codice nel tuo ambiente. Funziona sia per JupyterLab 3 (consigliato) che per JupyterLab 1 che vengono eseguiti all'interno di istanze notebook Studio e SageMaker. È composto da script di shell che eseguono le seguenti operazioni in base all'opzione.

Per Studio (opzione A), lo script della shell esegue le seguenti operazioni:

Per le istanze notebook SageMaker (opzione B), lo script della shell esegue le seguenti operazioni:

  • Installa il server di codice.
  • Aggiunge un collegamento al server di codice nel menu dei file del notebook Jupyter e nel programma di avvio di JupyterLab per un rapido accesso all'IDE.
  • Crea un ambiente Conda dedicato per la gestione delle dipendenze.
  • Installa il Python ed docker estensioni sull'IDE.

Nelle sezioni seguenti, esamineremo il processo di installazione della soluzione per l'opzione A e l'opzione B. Assicurati di avere accesso a Studio o a un'istanza notebook.

Opzione A: Host code-server su Studio

Per ospitare code-server su Studio, completare i seguenti passaggi:

  1. Scegli Terminale di sistema nel tuo launcher di Studio.
    ml-10244-studio-terminale-clic
  2. Per installare la soluzione code-server, eseguire i seguenti comandi nel terminale di sistema:
    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

    Il completamento dei comandi dovrebbe richiedere alcuni secondi.

  3. Ricarica la pagina del browser, dove puoi vedere a Server di codice pulsante nel launcher di Studio.
    ml-10244-pulsante-server-codice
  4. Scegli Server di codice per aprire una nuova scheda del browser, che ti consente di accedere al code-server dal tuo browser.
    L'estensione Python è già installata e puoi metterti al lavoro nel tuo progetto ML.ml-10244-vscode

Puoi aprire la cartella del tuo progetto in VS Code e selezionare l'ambiente Conda predefinito per eseguire gli script Python.

ml-10244-vscode-conda

Automatizza l'installazione del code server per gli utenti in un dominio Studio

In qualità di amministratore IT, puoi automatizzare l'installazione per gli utenti di Studio utilizzando a configurazione del ciclo di vita. Può essere fatto per tutti i profili degli utenti sotto un dominio Studio o per quelli specifici. Vedere Personalizza Amazon SageMaker Studio utilizzando le configurazioni del ciclo di vita per ulteriori dettagli.

Per questo post, creiamo una configurazione del ciclo di vita da install-codeserver script e allegalo a un dominio Studio esistente. L'installazione viene eseguita per tutti i profili utente nel dominio.

Da un terminale configurato con l'AWS CLI e le autorizzazioni appropriate, esegui i seguenti comandi:

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.

Dopo il riavvio di Jupyter Server, il Server di codice viene visualizzato nel programma di avvio di Studio.

Opzione B: host code-server su un'istanza notebook SageMaker

Per ospitare code-server su un'istanza notebook SageMaker, completare i seguenti passaggi:

  1. Avvia un terminale tramite Jupyter o JupyterLab per la tua istanza notebook.
    Se usi Jupyter, scegli terminal sul New menu.
    Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  2.  Per installare la soluzione code-server, esegui i seguenti comandi nel tuo terminale:
    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

    Le installazioni del server di codice e delle estensioni sono persistenti nell'istanza notebook. Tuttavia, se si interrompe o si riavvia l'istanza, è necessario eseguire il comando seguente per riconfigurare il server del codice:

    sudo ./setup-codeserver.sh

    L'esecuzione dei comandi dovrebbe richiedere alcuni secondi. Puoi chiudere la scheda del terminale quando vedi quanto segue.

    ml-10244-uscita-terminale

  3. Ora ricarica la pagina di Jupyter e controlla il New menu di nuovo.
    I Server di codice l'opzione dovrebbe ora essere disponibile.
    Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Puoi anche avviare code-server da JupyterLab utilizzando un pulsante di avvio dedicato, come mostrato nella schermata seguente.

ml-10244-jupyterlab-pulsante-server-di-codici

La scelta di Server di codice si aprirà una nuova scheda del browser, che ti consentirà di accedere al server del codice dal tuo browser. Le estensioni Python e Docker sono già installate e puoi iniziare a lavorare nel tuo progetto ML.

ml-10244-notebook-vscode

Automatizza l'installazione del code server su un'istanza notebook

In qualità di amministratore IT, puoi automatizzare l'installazione del server di codice con a configurazione del ciclo di vita in esecuzione alla creazione dell'istanza e automatizzare l'installazione con una in esecuzione all'avvio dell'istanza.

Qui creiamo un'istanza notebook di esempio e una configurazione del ciclo di vita utilizzando il file CLI AWS. on-create la configurazione viene eseguita install-codeservere on-start corre setup-codeserver.

Da un terminale configurato con l'AWS CLI e le autorizzazioni appropriate, esegui i seguenti comandi:

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'installazione del code server è ora automatizzata per l'istanza notebook.

Conclusione

Con in codice del server ospitato su SageMaker, i team ML possono eseguire VS Code su cloud scalabile, codice da qualsiasi luogo e accelerare la consegna del progetto ML. Per gli amministratori IT, consente loro di standardizzare e accelerare il provisioning di IDE gestiti e sicuri nel cloud, per integrare rapidamente e abilitare i team ML nei loro progetti.

In questo post, abbiamo condiviso una soluzione che puoi utilizzare per installare rapidamente code-server su istanze Studio e notebook. Abbiamo condiviso un processo di installazione manuale che i team ML possono eseguire autonomamente e un'installazione automatizzata che gli amministratori IT possono configurare per loro.

Per approfondire le tue conoscenze, visita AWSsome SageMaker su GitHub per trovare tutte le risorse pertinenti e aggiornate necessarie per lavorare con SageMaker.


Informazioni sugli autori

Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Giuseppe Angelo Porcelli è un Principal Machine Learning Specialist Solutions Architect per Amazon Web Services. Con diversi anni di ingegneria del software e background ML, lavora con clienti di qualsiasi dimensione per comprendere a fondo le loro esigenze aziendali e tecniche e progettare soluzioni di intelligenza artificiale e machine learning che sfruttino al meglio il cloud AWS e lo stack Amazon Machine Learning. Ha lavorato a progetti in diversi domini, tra cui MLOps, Computer Vision, NLP e coinvolgendo un'ampia serie di servizi AWS. Nel tempo libero Giuseppe si diverte a giocare a calcio.

Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Sofian Hamiti è un Solutions Architect specializzato in AI / ML presso AWS. Aiuta i clienti di tutti i settori ad accelerare il loro percorso AI / ML aiutandoli a creare e rendere operative soluzioni di machine learning end-to-end.

Host code-server su Amazon SageMaker PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Eric Pena è un Senior Technical Product Manager nel team AWS Artificial Intelligence Platforms, che lavora su Amazon SageMaker Interactive Machine Learning. Attualmente si concentra sulle integrazioni IDE su SageMaker Studio. Ha conseguito un MBA presso il MIT Sloan e al di fuori del lavoro si diverte a giocare a basket ea calcio.

Timestamp:

Di più da Apprendimento automatico di AWS