Generativ dataintelligens

Accelerer ML-arbejdsgange med Amazon SageMaker Studio Local Mode og Docker-understøttelse | Amazon Web Services

Dato:

Vi er glade for at kunne annoncere to nye funktioner i Amazon SageMaker Studio der vil fremskynde iterativ udvikling for maskinlæringsudøvere (ML): Local Mode og Docker-understøttelse. ML-modeludvikling involverer ofte langsomme iterationscyklusser, da udviklere skifter mellem kodning, træning og implementering. Hvert trin kræver, at man venter på, at fjernberegningsressourcer starter op, hvilket forsinker validering af implementeringer og får feedback på ændringer.

Med Local Mode kan udviklere nu træne og teste modeller, fejlfinde kode og validere ende-til-ende-pipelines direkte på deres SageMaker Studio-notebook-instans uden behov for at opbygge eksterne computerressourcer. Dette reducerer iterationscyklussen fra minutter ned til sekunder, hvilket øger udviklerproduktiviteten. Docker-understøttelse i SageMaker Studio-notebooks gør det muligt for udviklere uden besvær at bygge Docker-containere og få adgang til forudbyggede containere, hvilket giver et ensartet udviklingsmiljø på tværs af teamet og undgår tidskrævende opsætning og afhængighedsstyring.

Local Mode og Docker support tilbyder en strømlinet arbejdsgang til validering af kodeændringer og prototypemodeller ved hjælp af lokale containere, der kører på en SageMaker Studio notesbog

eksempel. I dette indlæg guider vi dig gennem opsætning af lokal tilstand i SageMaker Studio, kørsel af et prøvetræningsjob og implementering af modellen på en Amazon SageMaker endepunkt fra en SageMaker Studio notesbog.

SageMaker Studio lokal tilstand

SageMaker Studio introducerer Local Mode, der gør det muligt for dig at køre SageMaker træning, inferens, batch transformation og behandlingsjob direkte på din JupyterLab, Code Editor eller SageMaker Studio Classic notebook-instanser uden at kræve fjernberegningsressourcer. Fordelene ved at bruge lokal tilstand omfatter:

  • Øjeblikkelig validering og test af arbejdsgange direkte i integrerede udviklingsmiljøer (IDE'er)
  • Hurtigere iteration gennem lokale kørsler for mindre opgaver for at inspicere output og identificere problemer tidligt
  • Forbedret udvikling og fejlfindingseffektivitet ved at eliminere ventetiden på fjerntræningsjob
  • Øjeblikkelig feedback på kodeændringer, før du kører hele opgaver i skyen

Følgende figur illustrerer arbejdsgangen ved hjælp af lokal tilstand på SageMaker.

Workflow ved hjælp af lokal tilstand på SageMaker

Indstil for at bruge lokal tilstand instance_type='local' når du kører SageMaker Python SDK-job såsom træning og inferens. Dette vil køre dem på de forekomster, der bruges af dine SageMaker Studio IDE'er i stedet for at klargøre cloud-ressourcer.

Selvom visse funktioner såsom distribueret træning kun er tilgængelige i skyen, fjerner Local Mode behovet for at skifte kontekst for hurtige iterationer. Når du er klar til at drage fordel af SageMakers fulde kraft og skala, kan du problemfrit køre dit workflow i skyen.

Docker-understøttelse i SageMaker Studio

SageMaker Studio gør det nu også muligt at bygge og køre Docker-containere lokalt på din SageMaker Studio-notebook-instans. Denne nye funktion giver dig mulighed for at bygge og validere Docker-billeder i SageMaker Studio, før du bruger dem til SageMaker-træning og konklusioner.

Følgende diagram illustrerer Docker-orkestreringsarkitekturen på højt niveau i SageMaker Studio.

Docker-orkestreringsarkitektur på højt niveau i SageMaker Studio

Med Docker-understøttelse i SageMaker Studio kan du:

  • Byg Docker-containere med integrerede modeller og afhængigheder direkte i SageMaker Studio
  • Eliminer behovet for eksterne Docker-byggeprocesser for at forenkle billedoprettelse
  • Kør containere lokalt for at validere funktionalitet, før du implementerer modeller til produktion
  • Genbrug lokale containere, når de implementeres til SageMaker til træning og hosting

Selvom nogle avancerede Docker-funktioner som multi-container og brugerdefinerede netværk ikke understøttes i skrivende stund, er kerneopbygnings- og kørselsfunktionaliteten tilgængelig for at accelerere udviklingen af ​​containere til workflows med bring your own container (BYOC).

Forudsætninger

For at bruge lokal tilstand i SageMaker Studio-applikationer skal du opfylde følgende forudsætninger:

  • Til at trække billeder fra Amazon Elastic Container Registry (Amazon ECR), den konto, der er vært for ECR-billedet, skal give adgangstilladelse til brugerens Identitets- og adgangsstyring (IAM) rolle. Domænets rolle skal også tillade Amazon ECR-adgang.
  • For at aktivere lokal tilstand og docker-funktioner skal du indstille EnableDockerAccess parameter til sand for domænets DockerSettings ved hjælp af AWS kommandolinjegrænseflade (AWS CLI). Dette giver brugere i domænet mulighed for at bruge lokal tilstand og Docker-funktioner. Som standard er Local Mode og Docker deaktiveret i SageMaker Studio. Alle eksisterende SageMaker Studio-apps skal genstartes for at Docker-tjenesteopdateringen kan træde i kraft. Følgende er et eksempel på AWS CLI-kommando til opdatering af et SageMaker Studio-domæne:
aws sagemaker --region <REGION> 
update-domain --domain-id <DOMAIN-ID> 
--domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:CompleteLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:InitiateLayerUpload",
        "ecr:BatchCheckLayerAvailability",
        "ecr:PutImage"
      ],
      "Resource": "arn:aws:ecr:us-east-2:123456789012:repository/<repositoryname>"
    },
    {
      "Effect": "Allow",
      "Action": "ecr:GetAuthorizationToken",
      "Resource": "*"
    }
  ]
}

Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand

SageMaker Studio JupyterLab og Code Editor (baseret på Code-OSS, Visual Studio Code – Open Source), udvider SageMaker Studio, så du kan skrive, teste, fejlsøge og køre din analyse- og ML-kode ved hjælp af den populære letvægts-IDE. For flere detaljer om, hvordan du kommer i gang med SageMaker Studio IDE'er, se Boost produktiviteten på Amazon SageMaker Studio: Introduktion af JupyterLab Spaces og generative AI-værktøjer , Ny – Code Editor, baseret på Code-OSS VS Code Open Source nu tilgængelig i Amazon SageMaker Studio. Udfør følgende trin:

Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand

  • Opret en ny terminal.  Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand
  • Installer Docker CLI og Docker Compose plugin ved at følge instruktionerne i det følgende GitHub repo. Hvis kædede kommandoer mislykkes, skal du køre kommandoerne én ad gangen.

Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Du skal opdatere SageMaker SDK til den nyeste version.

  • Kør pip install sagemaker -Uq i terminalen.

Kun for Code Editor skal du indstille Python-miljøet til at køre i den aktuelle terminal.

  • I Code Editor, på File-menuen¸ vælg Indstillinger , Indstillinger.

Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand

  • Søg efter og vælg Terminal: Udfør i Fil Dir.

Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand

  • I Code Editor eller JupyterLab skal du åbne scikit_learn_script_mode_local_training_and_serving mappe og kør scikit_learn_script_mode_local_training_and_serving.py fil.

Du kan køre scriptet ved at vælge Kør i Code Editor eller ved at bruge CLI i en JupyterLab-terminal. Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Du vil kunne se, hvordan modellen trænes lokalt. Derefter implementerer du modellen til et SageMaker-slutpunkt lokalt og beregner den gennemsnitlige kvadratiske fejl (RMSE). Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand Kør Python-filer i SageMaker Studio-rum ved hjælp af lokal tilstand

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

Du kan også bruge en notesbog i SageMaker Studio Classic til at køre et mindre træningsjob på CIFAR10 ved hjælp af lokal tilstand, implementer modellen lokalt og udfør inferens.

Konfigurer din notesbog

For at konfigurere notesbogen skal du udføre følgende trin:

  • Åbn SageMaker Studio Classic og klon følgende GitHub repo.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Åbne pytorch_local_mode_cifar10.ipynb notebook in blog/pytorch_cnn_cifar10.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Til Billede, vælg PyTorch 2.1.0 Python 3.10 CPU Optimized.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand Bekræft, at din notesbog viser den korrekte forekomst og kernevalg. Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Åbn en terminal ved at vælge Start Terminal i det aktuelle SageMaker-billede.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Installer Docker CLI og Docker Compose plugin ved at følge instruktionerne i det følgende GitHub repo.

Fordi du bruger Docker fra SageMaker Studio Classic, skal du fjerne sudo, når du kører kommandoer, fordi terminalen allerede kører under superbruger. For SageMaker Studio Classic afhænger installationskommandoerne af SageMaker Studio app image OS. For eksempel er DLC-baserede rammebilleder Ubuntu-baserede, hvor følgende instruktioner ville fungere. For et Debian-baseret billede som DataScience Images skal du dog følge instruktionerne i det følgende GitHub repo. Hvis kædede kommandoer mislykkes, skal du køre kommandoerne én ad gangen. Du bør se Docker-versionen vist. Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Lad terminalvinduet være åbent, gå tilbage til notesbogen, og start med at køre det celle for celle.

Sørg for at køre cellen med pip install -U sagemaker så du bruger den seneste version af SageMaker Python SDK.

Lokal træning

Når du begynder at køre det lokale SageMaker træningsjob, vil du se følgende loglinjer:

INFO:sagemaker.local.image:'Docker Compose' found using Docker CLI.
INFO:sagemaker.local.local_session:Starting training job

Dette indikerer, at træningen kørte lokalt ved hjælp af Docker.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

Vær tålmodig, mens pytorch-training:2.1-cpu-py310 Docker-billede er trukket. På grund af dens store størrelse (5.2 GB), kan det tage et par minutter.

Docker-billeder vil blive gemt i SageMaker Studio app-instansens rodvolumen, som ikke er tilgængelig for slutbrugere. Den eneste måde at få adgang til og interagere med Docker-billeder er via de eksponerede Docker API-operationer.

Fra et brugerfortrolighedssynspunkt får SageMaker Studio-platformen aldrig adgang til eller gemmer brugerspecifikke billeder.

Når træningen er afsluttet, vil du kunne se følgende succesloglinjer:

8zlz1zbfta-sagemaker-local exited with code 0
Aborting on container exit...
Container 8zlz1zbfta-sagemaker-local  Stopping
Container 8zlz1zbfta-sagemaker-local  Stopped
INFO:sagemaker.local.image:===== Job Complete =====

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

Lokal slutning

Udfør følgende trin:

  • Implementer SageMaker-slutpunktet ved hjælp af SageMaker Local Mode.

Vær tålmodig, mens pytorch-inference:2.1-cpu-py310 Docker-billede er trukket. På grund af dens store størrelse (4.32 GB), kan det tage et par minutter.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Kald SageMaker-slutpunktet udplaceret lokalt ved hjælp af testbillederne.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

Du vil være i stand til at se de forudsagte klasser: frø, skib, bil og fly:

Predicted:  frog ship  car plane

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • Fordi SageMaker Local-slutpunktet stadig er oppe, skal du navigere tilbage til det åbne terminalvindue og liste de kørende containere:

docker ps

Du vil kunne se løbene pytorch-inference:2.1-cpu-py310 container, der understøtter SageMaker-endepunktet.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • For at lukke SageMaker lokale slutpunkt og stoppe den kørende container, fordi du kun kan køre ét lokalt slutpunkt ad gangen, skal du køre oprydningskoden.

Simuler træning og inferens i SageMaker Studio Classic ved hjælp af lokal tilstand

  • For at sikre dig, at Docker-containeren er nede, kan du navigere til det åbnede terminalvindue, køre docker ps og sørge for, at der ikke er nogen kørende containere.
  • Hvis du ser en container køre, så løb docker stop <CONTAINER_ID> at stoppe det.

Tips til brug af SageMaker Local Mode

Hvis du bruger SageMaker for første gang, se Træn maskinlæringsmodeller. For at lære mere om implementering af modeller til slutning med SageMaker, se Implementer modeller til slutninger.

Husk følgende anbefalinger:

  • Udskriv input- og outputfiler og -mapper for at forstå datasæt og modelindlæsning
  • Brug 1-2 epoker og små datasæt til hurtig test
  • Forinstaller afhængigheder i en Dockerfile for at optimere miljøopsætningen
  • Isoler serialiseringskode i slutpunkter til fejlretning

Konfigurer Docker-installation som en livscykluskonfiguration

Du kan definere Docker-installationsprocessen som et Lifecycle Configuration (LCC) script for at forenkle opsætningen, hver gang et nyt SageMaker Studio-rum starter. LCC'er er scripts, som SageMaker kører under begivenheder som rumskabelse. Der henvises til jupyter lab, Kode Editor eller SageMaker Studio Classic LCC-opsætning (ved hjælp af docker installere cli som reference) for at lære mere.

Konfigurer Docker-installation som en livscykluskonfiguration

Konfigurer Docker-installation som en livscykluskonfiguration

Byg og test brugerdefinerede Docker-billeder i SageMaker Studio-rum

I dette trin installerer du Docker inde i JupyterLab (eller Code Editor) app-rummet og bruger Docker til at bygge, teste og udgive brugerdefinerede Docker-billeder med SageMaker Studio-rum. Rum bruges til at administrere lager- og ressourcebehovet for nogle SageMaker Studio-applikationer. Hvert mellemrum har et 1:1 forhold til en forekomst af en applikation. Hver understøttet applikation, der oprettes, får sin egen plads. For at lære mere om SageMaker-rum, se Boost produktiviteten på Amazon SageMaker Studio: Introduktion af JupyterLab Spaces og generative AI-værktøjer. Sørg for at sørge for en ny plads med mindst 30 GB lagerplads for at tillade tilstrækkelig lagerplads til Docker-billeder og artefakter.

Installer Docker i et rum

For at installere Docker CLI og Docker Compose plugin inde i et JupyterLab-rum skal du køre kommandoerne i følgende GitHub repo. SageMaker Studio understøtter kun Docker version 20.10.X.

Byg Docker-billeder

For at bekræfte, at Docker er installeret og fungerer i dit JupyterLab-rum, skal du køre følgende kode:

# to verify docker service
sagemaker-user@default:~$ docker version
Client: Docker Engine - Community
Version:           24.0.7
API version:       1.41 (downgraded from 1.43)
Go version:        go1.20.10
Git commit:        afdd53b
Built:             Thu Oct 26 09:07:41 2023
OS/Arch:           linux/amd64
Context:           default

Server:
Engine:
Version:          20.10.25
API version:      1.41 (minimum version 1.12)
Go version:       go1.20.10
Git commit:       5df983c
Built:            Fri Oct 13 22:46:59 2023
OS/Arch:          linux/amd64
Experimental:     false
containerd:
Version:          1.7.2
GitCommit:        0cae528dd6cb557f7201036e9f43420650207b58
runc:
Version:          1.1.7
GitCommit:        f19387a6bec4944c770f7668ab51c4348d9c2f38
docker-init:
Version:          0.19.0
GitCommit:        de40ad0

For at bygge et brugerdefineret Docker-billede inde i et JupyterLab (eller Code Editor)-rum skal du udføre følgende trin:

  • Opret en tom Dockerfile:

touch Dockerfile

  • Rediger Dockerfilen med følgende kommandoer, som opretter et simpelt flask-webserverbillede fra basispython:3.10.13-bullseye-billedet hostet på Docker-hub:
# Use the specified Python base image
FROM python:3.10.13-bullseye

# Create a code dir
RUN mkdir /code/

# Set the working directory in the container
WORKDIR /code

# Upgrade pip and install required packages
RUN python3 -m pip install --upgrade pip && 
python3 -m pip install flask

# Copy the app.py file to the container
COPY app.py /code/

# Set the command to run the app
ENTRYPOINT ["python", "app.py"]

Den følgende kode viser indholdet af et eksempel på en kolbeapplikationsfil app.py:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello():
return jsonify({"response": "Hello"})

if __name__ == '__main__':
app.run(host='0.0.0.0', port=6006)

Derudover kan du opdatere reference Dockerfile-kommandoer til at inkludere pakker og artefakter efter eget valg.

  • Byg et Docker-billede ved hjælp af referencen Dockerfile:

docker build --network sagemaker --tag myflaskapp:v1 --file ./Dockerfile .

Medtag --network sagemaker i din docker build-kommando, ellers vil bygningen mislykkes. Containere kan ikke køres i Docker-standardbroen eller tilpassede Docker-netværk. Containere køres i samme netværk som SageMaker Studio-applikationscontaineren. Brugere kan kun bruge sagemaker til netværksnavnet.

  • Når din build er færdig, skal du validere, om billedet eksisterer. Tag bygningen igen som et ECR-billede og tryk. Hvis du støder på tilladelsesproblemer, skal du køre kommandoen aws ecr get-login-password... og prøve at køre Docker push/pull igen:
sagemaker-user@default:~$ docker image list
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
myflaskapp      v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ docker tag myflaskapp:v1 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED          SIZE
123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp     latest    d623f1538f20   27 minutes ago   489MB
myflaskapp                                                  v1        d623f1538f20   27 minutes ago   489MB

sagemaker-user@default:~$ aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

sagemaker-user@default:~$ docker push 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:latest

Test Docker-billeder

At have Docker installeret inde i et JupyterLab (eller Code Editor) SageMaker Studio-rum giver dig mulighed for at teste forudbyggede eller brugerdefinerede Docker-billeder som containere (eller containeriserede applikationer). I dette afsnit bruger vi docker run-kommandoen til at klargøre Docker-containere i et SageMaker Studio-rum til at teste containeriserede arbejdsbelastninger som REST-webtjenester og Python-scripts. Udfør følgende trin:

sagemaker-user@default:~$ docker image list
REPOSITORY                                                  TAG       IMAGE ID       CREATED       SIZE

  • Hvis testbilledet ikke findes, skal du køre docker pull for at trække billedet ind på din lokale maskine:

sagemaker-user@default:~$ docker pull 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

  • Hvis du støder på godkendelsesproblemer, skal du køre følgende kommandoer:

aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

  • Opret en container for at teste din arbejdsbyrde:

docker run --network sagemaker 123456789012.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1

Dette opretter en ny containerinstans og kører applikationen defineret ved hjælp af Dockers ENTRYPOINT:

sagemaker-user@default:~$ docker run --network sagemaker 905418447590.dkr.ecr.us-east-2.amazonaws.com/myflaskapp:v1
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6006
* Running on http://169.255.255.2:6006

  • For at teste, om dit webendepunkt er aktivt, skal du navigere til URL'en https://<sagemaker-space-id>.studio.us-east-2.sagemaker.aws/jupyterlab/default/proxy/6006/.

Du bør se et JSON-svar svarende til følgende skærmbillede.

Konfigurer Docker-installation som en livscykluskonfiguration

Ryd op

For at undgå at pådrage sig unødvendige gebyrer skal du slette de ressourcer, du oprettede, mens du kørte eksemplerne i dette indlæg:

  1. I dit SageMaker Studio-domæne skal du vælge Studio Classic i navigationsruden, og vælg derefter Stands.
  2. I dit SageMaker Studio-domæne skal du vælge jupyter lab or Kode Editor i navigationsruden, vælg din app, og vælg derefter Stands.

Konklusion

SageMaker Studio Local Mode og Docker-understøttelse giver udviklere mulighed for at bygge, teste og iterere på ML-implementeringer hurtigere uden at forlade deres arbejdsområde. Ved at give øjeblikkelig adgang til testmiljøer og -output optimerer disse funktioner arbejdsgange og forbedrer produktiviteten. Prøv SageMaker Studio Local Model og Docker-support ved hjælp af vores hurtig ombord funktion, som giver dig mulighed for at oprette et nyt domæne for enkeltbrugere inden for få minutter. Del dine tanker i kommentarfeltet!


Om forfatterne

Shweta SinghShweta Singh er Senior Product Manager i Amazon SageMaker Machine Learning (ML) platformteamet hos AWS, der leder SageMaker Python SDK. Hun har arbejdet i flere produktroller i Amazon i over 5 år. Hun har en Bachelor of Science grad i Computer Engineering og Masters of Science i Financial Engineering, begge fra New York University

Eitan SelaEitan Sela er en generativ AI og Machine Learning Specialist Solutions Architect fra AWS. Han arbejder med AWS-kunder for at yde vejledning og teknisk assistance, og hjælper dem med at bygge og drive Generative AI og Machine Learning-løsninger på AWS. I sin fritid nyder Eitan at jogge og læse de seneste maskinlæringsartikler.

Pranav MurthyPranav Murthy er AI/ML Specialist Solutions Architect hos AWS. Han fokuserer på at hjælpe kunder med at opbygge, træne, implementere og migrere maskinlæring (ML) arbejdsbelastninger til SageMaker. Han har tidligere arbejdet i halvlederindustrien med at udvikle modeller for store computervision (CV) og naturlig sprogbehandling (NLP) for at forbedre halvlederprocesser ved hjælp af avancerede ML-teknikker. I sin fritid nyder han at spille skak og rejse. Du kan finde Pranav på LinkedIn.

Mufaddal RohawalaMufaddal Rohawala er softwareingeniør hos AWS. Han arbejder på SageMaker Python SDK-biblioteket for Amazon SageMaker. I sin fritid holder han af at rejse, udendørs aktiviteter og er fodboldfan.

spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?