Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Kör anteckningsböcker som batchjobb i Amazon SageMaker Studio Lab

Nyligen, den Amazon SageMaker Studio lanserade ett enkelt sätt att köra bärbara datorer som batch-jobb som kan köras på ett återkommande schema. Amazon SageMaker Studio Lab stöder även den här funktionen, vilket gör att du kan köra anteckningsböcker som du utvecklar i SageMaker Studio Lab i ditt AWS-konto. Detta gör att du snabbt kan skala dina experiment med maskininlärning (ML) med större datauppsättningar och kraftfullare instanser, utan att behöva lära dig något nytt eller ändra en rad kod.

I det här inlägget går vi igenom engångsförutsättningen för att ansluta din Studio Lab-miljö till ett AWS-konto. Efter det går vi igenom stegen för att köra anteckningsböcker som ett batchjobb från Studio Lab.

Lösningsöversikt

Studio Lab inkorporerade samma tillägg som Studio, som är baserat på Jupyter open-source tillägg för schemalagda anteckningsböcker. Det här tillägget har ytterligare AWS-specifika parametrar, som beräkningstypen. I Studio Lab kopieras en schemalagd anteckningsbok först till en Amazon enkel lagringstjänst (Amazon S3) i ditt AWS-konto och kör sedan vid den schemalagda tiden med den valda beräkningstypen. När jobbet är klart skrivs utdata till en S3-skopa och AWS-beräkningen stoppas helt, vilket förhindrar pågående kostnader.

Förutsättningar

För att använda Studio Lab anteckningsbok-jobb behöver du administrativ åtkomst till AWS-kontot som du ska ansluta till (eller hjälp från någon med denna åtkomst). I resten av det här inlägget antar vi att du är AWS-administratör, om så inte är fallet, be din administratör eller kontoägare att granska dessa steg med dig.

Skapa en utföranderoll för SageMaker

Vi måste se till att AWS-kontot har en AWS identitets- och åtkomsthantering (IAM) SageMaker exekveringsroll. Den här rollen används av SageMaker-resurser inom kontot och ger åtkomst från SageMaker till andra resurser i AWS-kontot. I vårt fall körs våra anteckningsbok-jobb med dessa behörigheter. Om SageMaker har använts tidigare i det här kontot kan en roll redan existera, men den kanske inte har alla behörigheter som krävs. Så låt oss gå vidare och göra en ny.

Följande steg behöver bara göras en gång, oavsett hur många SageMaker Studio Lab-miljöer som kommer åt detta AWS-konto.

  1. Välj på IAM-konsolen roller i navigeringsfönstret.
  2. Välja Skapa roll.
  3. För Typ av betrodd enhet, Välj AWS-tjänst.
  4. För Användningsfall för andra AWS-tjänsterväljer SageMaker.
  5. Välja SageMaker – Utförande.
  6. Välja Nästa.
  7. Granska behörigheterna och välj sedan Nästa.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  8. För Rollnamn, ange ett namn (för det här inlägget använder vi sagemaker-execution-role-notebook-jobs).
  9. Välja Skapa roll.
  10. Anteckna rollen ARN.

Rollen ARN kommer att vara i form av arn:aws:iam::[account-number]:role/service-role/[role-name] och krävs i Studio Lab-installationen.

Skapa en IAM-användare

För att en Studio Lab-miljö ska få åtkomst till AWS måste vi skapa en IAM-användare inom AWS och ge den nödvändiga behörigheter. Vi måste sedan skapa en uppsättning åtkomstnycklar för den användaren och tillhandahålla dem till Studio Lab-miljön.

Detta steg bör upprepas för varje SageMaker Studio Lab-miljö som kommer åt detta AWS-konto.

Observera att administratörer och AWS-kontoägare bör se till att i största möjliga utsträckning, väl utformade säkerhetsrutiner följs. Till exempel bör användarbehörigheter alltid begränsas, och åtkomstnycklar bör roteras regelbundet för att minimera effekten av kompromiss med autentiseringsuppgifter.

I den här bloggen visar vi hur man använder AmazonSageMakerFullAccess hanterad politik. Denna policy ger bred åtkomst till Amazon SageMaker som kan gå utöver vad som krävs. Detaljer om AmazonSageMakerFullAccess kan hittas här..

Även om Studio Lab använder företagssäkerhet, bör det noteras att Studio Labs användaruppgifter inte utgör en del av ditt AWS-konto och därför till exempel inte är föremål för ditt AWS-lösenord eller MFA-policyer.

För att begränsa behörigheterna så mycket som möjligt skapar vi en användarprofil specifikt för denna åtkomst.

  1. Välj på IAM-konsolen användare i navigeringsfönstret.
  2. Välja Lägg till användare.
  3. För Användarnamn, ange ett namn. Det är bra att använda ett namn som är länkat till en enskild person som kommer att använda det här kontot; detta hjälper om du granskar granskningsloggar.
  4. För Välj AWS-åtkomststyp, Välj Åtkomstnyckel – Programmatisk åtkomst.
  5. Välja Nästa: Behörigheter.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  6. Välja Bifoga befintliga policyer direkt.
  7. Sök efter och välj AmazonSageMakerFullAccess.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  8. Sök efter och välj AmazonEventBridgeFullAccess.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  9. Välja Nästa: Taggar.
  10. Välja Nästa: Granska.
  11. Bekräfta dina policyer och välj sedan Skapa användare.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Den sista sidan av processen för att skapa en användare bör visa dig användarens åtkomstnycklar. Lämna den här fliken öppen eftersom vi inte kan navigera tillbaka hit och vi behöver dessa uppgifter.
  12. Öppna en ny webbläsarflik i Studio Lab.
  13. Fil meny, välj Ny LauncherOch välj sedan terminal.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  14. På kommandoraden anger du följande kod:
    aws configure

  15. Ange följande kod:
    1. Ange värdena från IAM-konsolsidan för ditt åtkomstnyckel-ID och hemliga åtkomstnyckel.
    2. För Default region name, stiga på us-west-2.
    3. Lämna Default output format as text.
      (studiolab) studio-lab-user@default:~$ aws configure 
      AWS Access Key ID []: 01234567890
      AWS Secret Access Key []: ABCDEFG1234567890ABCDEFG
      Default region name []: us-west-2
      Default output format [text]: 
      
      (studiolab) studio-lab-user@default:~$

Grattis, din Studio Lab-miljö bör nu vara konfigurerad för att komma åt AWS-kontot. För att testa anslutningen, utfärda följande kommando:

aws sts get-caller-identity

Detta kommando bör returnera information om den IAM-användare som du har konfigurerat att använda.

Skapa ett anteckningsboksjobb

Anteckningsbok-jobb skapas med Jupyter-anteckningsböcker i Studio Lab. Om din anteckningsbok körs i Studio Lab kan den köras som ett anteckningsbokjobb (med fler resurser och tillgång till AWS-tjänster). Det finns dock ett par saker att titta på.

Om du har installerat paket för att få din anteckningsbok att fungera, lägg till kommandon för att ladda dessa paket i en cell överst i din anteckningsbok. Genom att använda en &-symbol i början av varje rad kommer koden att skickas till kommandoraden för att köras. I följande exempel använder den första cellen pip för att installera PyTorch-bibliotek:

%%capture
%pip install torch
%pip install torchvision

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vår anteckningsbok kommer att generera en tränad PyTorch-modell. Med vår vanliga kod sparar vi modellen i filsystemet i Studio Labs.

När vi kör detta som ett anteckningsbok-jobb måste vi spara modellen någonstans där vi kan komma åt den efteråt. Det enklaste sättet att göra detta är att spara modellen i Amazon S3. Vi skapade en S3-hink för att spara våra modeller och använder en annan kommandoradscell för att kopiera objektet till hinken.

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vi använder AWS-kommandoradsgränssnitt (AWS CLI) här för att kopiera objektet. Vi skulle också kunna använda AWS SDK för Python (Boto3) om vi ville ha en mer sofistikerad eller automatiserad kontroll av filnamnet. För närvarande kommer vi att se till att vi ändrar filnamnet varje gång vi kör anteckningsboken så att modellerna inte skrivs över.

Nu är vi redo att skapa anteckningsboken.

  1. Välj (högerklicka) anteckningsbokens namn och välj sedan Skapa anteckningsbokjobb.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Om det här menyalternativet saknas kan du behöva uppdatera din Studio Lab-miljö. För att göra detta, öppna Terminal från startprogrammet och kör följande kod:
    conda deactivate && conda env remove —name studiolab

  2. Starta sedan om din JupyterLab-instans genom att välja Amazon SageMaker Studio Lab från toppmenyn och välj sedan Starta om JupyterLab.Alternativt, gå till projektsidan och stäng av och starta om körtiden.
  3. Skapa jobb sida, för Beräkningstyp, välj den beräkningstyp som passar ditt jobb.

    För mer information om de olika typerna av beräkningskapacitet, inklusive kostnad, se Amazon SageMaker Prissättning (välja Prissättning på begäran och navigera till Utbildning flik. Du kan också behöva kontrollera kvottillgängligheten för beräkningstypen i ditt AWS-konto. För mer information om tjänstekvoter, se: AWS tjänstekvoter.För det här exemplet har vi valt en ml.p3.2xlarge-instans, som erbjuder 8 vCPU, 61 GB minne och en Tesla V100 GPU.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

    Om det inte finns några varningar på den här sidan bör du vara redo att gå. Om det finns varningar, kontrollera att rätt roll ARN är specificerad i Ytterligare alternativ. Den här rollen bör matcha ARN för SageMaker-exekveringsrollen som vi skapade tidigare. ARN:n är i formatet arn:aws:iam::[account-number]:role/service-role/[role-name].

    Det finns andra alternativ tillgängliga inom Ytterligare alternativ; till exempel kan du välja en viss bild och kärna som kanske redan har den konfiguration du behöver utan att behöva installera ytterligare bibliotek.

  4. Om du vill köra den här anteckningsboken enligt ett schema, välj Kör enligt ett schema och ange hur ofta du vill att jobbet ska köras.Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Vi vill att den här anteckningsboken ska köras en gång, så vi väljer Spring nu.
  5. Välja Skapa.
    Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Anteckningsbok jobb lista

Smakämnen Anteckningsbok jobb sidan listar alla jobb som körs för närvarande och de som kördes tidigare. Du kan hitta den här listan från startprogrammet (välj, Fil, Ny Launcher), sedan Välj Anteckningsbok jobb i Övriga sektion.

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

När anteckningsboken är klar kommer du att se statusen ändras till Completed (Använd Ladda om alternativ om det behövs). Du kan sedan välja nedladdningsikonen för att komma åt utdatafilerna.

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

När filerna har laddats ner kan du granska anteckningsboken tillsammans med kodutgången och utdataloggen. I vårt fall, eftersom vi lagt till kod för att tajma körningen av träningscellen, kan vi se hur lång tid träningsjobbet tog – 16 minuter och 21 sekunder, vilket är mycket snabbare än om koden hade körts inne i Studio Lab (1 timme , 38 minuter, 55 sekunder). Faktum är att hela anteckningsboken gick på 1,231 20 sekunder (drygt 1.30 minuter) till en kostnad av under $XNUMX (USD).

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

W kan nu öka antalet epoker och justera hyperparametrarna för att förbättra modellens förlustvärde och skicka in ytterligare ett anteckningsbokjobb.

Slutsats

I det här inlägget visade vi hur man använder Studio Lab-anteckningsboksjobb för att skala ut koden vi utvecklade i Studio Lab och köra den med fler resurser i ett AWS-konto.

Genom att lägga till AWS-referenser till vår Studio Lab-miljö kan vi inte bara komma åt anteckningsboksjobb, utan vi kan också komma åt andra resurser från ett AWS-konto direkt från våra Studio Lab-anteckningsböcker. Ta en titt på AWS SDK för Python.

Denna extra förmåga hos Studio Lab lyfter gränserna för de typer och storlekar av projekt du kan uppnå. Låt oss veta vad du bygger med denna nya förmåga!


Om författarna

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Mike Chambers är en Developer Advocate för AI och ML på AWS. Han har tillbringat de senaste 7 åren med att hjälpa byggare att lära sig moln, säkerhet och ML. Mike kommer ursprungligen från Storbritannien och är en passionerad tedrickare och legobyggare.

Kör bärbara datorer som batchjobb i Amazon SageMaker Studio Lab PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Michele Monclova är en huvudproduktchef på AWS i SageMaker-teamet. Hon är en infödd New Yorker och Silicon Valley-veteran. Hon brinner för innovationer som förbättrar vår livskvalitet.

Tidsstämpel:

Mer från AWS maskininlärning