Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Värdkodserver på Amazon SageMaker

Maskininlärningsteam (ML) behöver flexibiliteten att välja sin integrerade utvecklingsmiljö (IDE) när de arbetar med ett projekt. Det låter dig få en produktiv utvecklarupplevelse och förnya dig i snabb takt. Du kan till och med använda flera IDE inom ett projekt. Amazon SageMaker låter ML-team välja att arbeta från helt hanterade, molnbaserade miljöer inom Amazon SageMaker Studio, SageMaker Notebook-instanser, eller från din lokala dator med hjälp av lokalt läge.

SageMaker ger Jupyter och RStudio en enklicksupplevelse för att bygga, träna, felsöka, distribuera och övervaka ML-modeller. I det här inlägget kommer vi också att dela en lösning för värdskap kodserver på SageMaker.

Med kodserver kan användare köra VS-kod på fjärrdatorer och få åtkomst till den i en webbläsare. För ML-team ger värd för kodserver på SageMaker minimala förändringar av en lokal utvecklingsupplevelse, och låter dig koda var som helst, på skalbar molnberäkning. Med VS Code kan du även använda inbyggda Conda-miljöer med AWS-optimerade TensorFlow och PyTorch, hanterade Git-repositories, lokalt läge och andra funktioner från SageMaker för att påskynda din leverans. För IT-administratörer låter det dig standardisera och påskynda tillhandahållandet av hanterade, säkra IDE:er i molnet, för att snabbt integrera och aktivera ML-team i sina projekt.

Lösningsöversikt

I det här inlägget tar vi upp installation för både Studio-miljöer (Alternativ A) och anteckningsbokinstanser (Alternativ B). För varje alternativ går vi igenom en manuell installationsprocess som ML-team kan köra i sin miljö och en automatiserad installation som IT-administratörer kan ställa in för dem via AWS-kommandoradsgränssnitt (AWS CLI).

Följande diagram illustrerar arkitekturöversikten för att vara värd för kodserver på SageMaker.

Vår lösning påskyndar installationen och installationen av kodserver i din miljö. Det fungerar för både JupyterLab 3 (rekommenderas) och JupyterLab 1 som körs i Studio och SageMaker notebook-instanser. Den är gjord av skalskript som gör följande baserat på alternativet.

För Studio (alternativ A) gör skalskriptet följande:

För SageMaker notebook-instanser (alternativ B) gör skalskriptet följande:

  • Installerar kodserver.
  • Lägger till en kodservergenväg på Jupyters anteckningsbok-filmeny och JupyterLab-startprogrammet för snabb åtkomst till IDE.
  • Skapar en dedikerad Conda-miljö för att hantera beroenden.
  • Installerar Python och Hamnarbetare tillägg på IDE.

I följande avsnitt går vi igenom lösningsinstallationsprocessen för alternativ A och alternativ B. Se till att du har tillgång till Studio eller en anteckningsbok-instans.

Alternativ A: Värdkodserver på Studio

För att vara värd för en kodserver på Studio, utför följande steg:

  1. Välja Systemterminal i din Studio launcher.
    ml-10244-studio-terminal-klick
  2. För att installera kodserverlösningen, kör följande kommandon i din systemterminal:
    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

    Kommandona bör ta några sekunder att slutföra.

  3. Ladda om webbläsarsidan, där du kan se en Kodserver knappen i din Studio launcher.
    ml-10244-kod-server-knapp
  4. Välja Kodserver för att öppna en ny webbläsarflik som låter dig komma åt kodservern från din webbläsare.
    Python-tillägget är redan installerat och du kan börja arbeta i ditt ML-projekt.ml-10244-vscode

Du kan öppna din projektmapp i VS Code och välja den förbyggda Conda-miljön för att köra dina Python-skript.

ml-10244-vscode-conda

Automatisera kodserverinstallationen för användare i en Studio-domän

Som IT-administratör kan du automatisera installationen för Studio-användare genom att använda en livscykelskonfiguration. Det kan göras för alla användares profiler under en Studio-domän eller för specifika. Ser Anpassa Amazon SageMaker Studio med hjälp av livscykelkonfigurationer för mer detaljer.

För det här inlägget skapar vi en livscykelkonfiguration från installera-kodserver skript och bifoga det till en befintlig Studio-domän. Installationen görs för alla användarprofiler i domänen.

Kör följande kommandon från en terminal konfigurerad med AWS CLI och lämpliga behörigheter:

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.

Efter att Jupyter Server har startat om, Kodserver visas i din Studio-startprogram.

Alternativ B: Värdkodserver på en SageMaker-anteckningsbokinstans

För att vara värd för kodserver på en SageMaker notebook-instans, utför följande steg:

  1. Starta en terminal via Jupyter eller JupyterLab för din notebook-instans.
    Om du använder Jupyter, välj terminal Nya meny.
    Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  2.  För att installera kodserverlösningen, kör följande kommandon i din 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

    Kodserver- och tilläggsinstallationerna är beständiga på notebook-instansen. Men om du stoppar eller startar om instansen måste du köra följande kommando för att konfigurera om kodservern:

    sudo ./setup-codeserver.sh

    Kommandona bör ta några sekunder att köra. Du kan stänga terminalfliken när du ser följande.

    ml-10244-terminal-utgång

  3. Ladda nu om Jupyter-sidan och kontrollera Nya meny igen.
    Smakämnen Kodserver alternativet bör nu vara tillgängligt.
    Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Du kan också starta kodserver från JupyterLab med en dedikerad startknapp, som visas i följande skärmdump.

ml-10244-jupyterlab-kodserver-knapp

Välja Kodserver kommer att öppna en ny webbläsarflik som låter dig komma åt kodservern från din webbläsare. Python- och Docker-tilläggen är redan installerade, och du kan börja arbeta i ditt ML-projekt.

ml-10244-notebook-vscode

Automatisera kodserverinstallationen på en notebook-instans

Som IT-administratör kan du automatisera kodserverinstallationen med en livscykelskonfiguration körs vid skapande av instanser och automatisera installationen med en körning vid instansstart.

Här skapar vi ett exempel på en anteckningsbokförekomst och livscykelkonfiguration med hjälp av AWS CLI. De on-create config körs installera-kodserveroch on-start kör setup-kodserver.

Kör följande kommandon från en terminal konfigurerad med AWS CLI och lämpliga behörigheter:

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.

Kodserverinstallationen är nu automatiserad för notebook-instansen.

Slutsats

Med kodserver Hosted på SageMaker kan ML-team köra VS Code på skalbar molnberäkning, kod från var som helst och påskynda leveransen av ML-projekt. För IT-administratörer tillåter det dem att standardisera och påskynda tillhandahållandet av hanterade, säkra IDE:er i molnet, för att snabbt integrera och aktivera ML-team i sina projekt.

I det här inlägget delade vi en lösning som du kan använda för att snabbt installera kodserver på både Studio- och notebook-instanser. Vi delade en manuell installationsprocess som ML-team kan köra på egen hand och en automatiserad installation som IT-administratörer kan konfigurera för dem.

För att gå längre i dina lärdomar, besök AWSome SageMaker på GitHub för att hitta alla relevanta och uppdaterade resurser som behövs för att arbeta med SageMaker.


Om författarna

Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Giuseppe Angelo Porcelli är en huvudsaklig maskininlärningsspecialistlösningsarkitekt för Amazon Web Services. Med flera års mjukvaruutveckling och ML-bakgrund arbetar han med kunder av alla storlekar för att på djupet förstå deras affärsbehov och tekniska behov och designa AI- och Machine Learning-lösningar som utnyttjar AWS Cloud och Amazon Machine Learning-stacken på bästa sätt. Han har arbetat med projekt inom olika domäner, inklusive MLOps, Computer Vision, NLP och involverat en bred uppsättning AWS-tjänster. På fritiden tycker Giuseppe om att spela fotboll.

Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sofian Hamiti är en AI / ML-specialist Solutions Solutions på AWS. Han hjälper kunder i olika branscher att påskynda sin AI / ML-resa genom att hjälpa dem att bygga och operationella helhetslösningar för maskininlärning.

Värdkodserver på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Erik Pena är Senior Technical Product Manager i AWS Artificial Intelligence Platforms-teamet och arbetar med Amazon SageMaker Interactive Machine Learning. Han fokuserar för närvarande på IDE-integrationer på SageMaker Studio. Han har en MBA-examen från MIT Sloan och utanför jobbet tycker han om att spela basket och fotboll.

Tidsstämpel:

Mer från AWS maskininlärning