Zephyrnet-logo

Verhoog de productiviteit op Amazon SageMaker Studio: maak kennis met JupyterLab Spaces en generatieve AI-tools | Amazon-webservices

Datum:

Amazon SageMaker Studio biedt een brede reeks volledig beheerde geïntegreerde ontwikkelomgevingen (IDE's) voor de ontwikkeling van machine learning (ML), waaronder JupyterLab, Code Editor gebaseerd op Code-OSS (Visual Studio Code Open Source) en RStudio. Het biedt toegang tot de meest uitgebreide set tools voor elke stap van de ML-ontwikkeling, van het voorbereiden van gegevens tot het bouwen, trainen, implementeren en beheren van ML-modellen. U kunt binnen enkele seconden het volledig beheerde JuptyerLab starten met vooraf geconfigureerde SageMaker Distribution om met uw notebooks, code en gegevens te werken. Met de flexibele en uitbreidbare interface van SageMaker Studio kunt u moeiteloos ML-workflows configureren en indelen, en u kunt de AI-aangedreven inline coderingspartner gebruiken om snel code te schrijven, debuggen, uit te leggen en te testen.

In dit bericht gaan we dieper in op de bijgewerkte SageMaker Studio en de JupyterLab IDE, ontworpen om de productiviteit van ML-ontwikkelaars te verhogen. We introduceren het concept van Spaces en leggen uit hoe JupyterLab Spaces flexibele aanpassingen van reken-, opslag- en runtime-bronnen mogelijk maakt om de efficiëntie van uw ML-workflow te verbeteren. We bespreken ook onze verschuiving naar een gelokaliseerd uitvoeringsmodel in JupyterLab, wat resulteert in een snellere, stabielere en responsievere codeerervaring. Daarnaast behandelen we de naadloze integratie van generatieve AI-tools zoals Amazon Code Whisperer en Jupyter AI binnen SageMaker Studio JupyterLab Spaces, wat illustreert hoe ze ontwikkelaars in staat stellen AI te gebruiken voor codeerondersteuning en innovatieve probleemoplossing.

Introductie van spaties in SageMaker Studio

De nieuwe SageMaker Studio webgebaseerde interface fungeert als commandocentrum voor het starten van uw favoriete IDE en toegang tot uw Amazon Sage Maker tools om modellen te bouwen, trainen, afstemmen en implementeren. Naast JupyterLab en RStudio bevat SageMaker Studio nu een volledig beheerde Code Editor op basis van Code-OSS (Visual Studio Code Open Source). Zowel JupyterLab als Code Editor kunnen worden gestart met behulp van een flexibele werkruimte genaamd Spaces.

Een Space is een configuratierepresentatie van een SageMaker IDE, zoals JupyterLab of Code Editor, ontworpen om te blijven bestaan, ongeacht of een applicatie (IDE) die aan de Space is gekoppeld actief actief is of niet. Een spatie vertegenwoordigt een combinatie van een rekeninstantie, opslag en andere runtimeconfiguraties. Met Spaces kunt u de rekenkracht en opslag voor uw IDE gaandeweg op- en afschalen, runtime-omgevingen aanpassen en het coderen altijd en overal pauzeren en hervatten. U kunt meerdere van dergelijke Spaces opzetten, elk geconfigureerd met een andere combinatie van rekenkracht, opslag en runtimes.

Wanneer een ruimte wordt gemaakt, wordt deze uitgerust met een Amazon elastische blokwinkel (Amazone EBS) volume, dat wordt gebruikt om bestanden, gegevens, caches en andere artefacten van gebruikers op te slaan. Het wordt aan een ML-rekeninstantie gekoppeld wanneer een Space wordt uitgevoerd. Het EBS-volume zorgt ervoor dat gebruikersbestanden, gegevens, cache en sessiestatussen consistent worden hersteld wanneer de Space opnieuw wordt opgestart. Belangrijk is dat dit EBS-volume persistent blijft, ongeacht of de Space actief of gestopt is. Het blijft bestaan ​​totdat de ruimte wordt verwijderd.

Daarnaast hebben we de 'bring-your-own'-bestandssysteemfunctie geïntroduceerd voor gebruikers die omgevingen en artefacten willen delen met verschillende Spaces, gebruikers of zelfs domeinen. Hierdoor kunt u uw Spaces optioneel uitrusten met uw eigen Spaces Amazon elastisch bestandssysteem (Amazon EFS) mount, waardoor het delen van bronnen tussen verschillende werkruimten wordt vergemakkelijkt.

Een ruimte creëren

Het maken en lanceren van een nieuwe Space is nu snel en eenvoudig. Het duurt slechts een paar seconden om een ​​nieuwe Space in te stellen met snelle startinstanties en minder dan 60 seconden om een ​​Space uit te voeren. Ruimtes zijn uitgerust met vooraf gedefinieerde instellingen voor rekenkracht en opslag, beheerd door beheerders. SageMaker Studio-beheerders kunnen voorinstellingen op domeinniveau instellen voor reken-, opslag- en runtime-configuraties. Met deze opstelling kunt u snel en met minimale inspanning een nieuwe ruimte starten, met slechts een paar klikken. U hebt ook de mogelijkheid om de computer-, opslag- of runtime-configuraties van een Space te wijzigen voor verdere aanpassingen.

Het is belangrijk op te merken dat het maken van een Space vereist dat de uitvoeringsrol van het SageMaker-domein wordt bijgewerkt met een beleid zoals in het volgende voorbeeld. U moet uw gebruikers machtigingen verlenen voor privéruimtes en gebruikersprofielen die nodig zijn om toegang te krijgen tot deze privéruimtes. Voor gedetailleerde instructies, zie Geef uw gebruikers toegang tot privéruimtes.

{
  "Version": "2012-10-17",
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:space/${sagemaker:DomainId}/*",
      "Condition": {
        "ArnLike": {
          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:$AWS Region:$111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:{{Region}}:{{AccountId}}:app/${sagemaker:DomainId}/*",
      "Condition": {
        "ArnLike": {
          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:${aws:Region}:${aws:PrincipalAccount}:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    },
  ]
}

Om een ​​ruimte aan te maken, voert u de volgende stappen uit:

  1. Kies in SageMaker Studio jupyter lab op de Toepassingen menu.
  2. Kies Creëer JupyterLab-ruimte.
  3. Voor Naam, voer een naam in voor uw ruimte.
  4. Kies Creëer ruimte.
  5. Kies Voer ruimte uit om uw nieuwe Space te starten met standaardvoorinstellingen of de configuratie bij te werken op basis van uw vereisten.

Een ruimte opnieuw configureren

Ruimtes zijn zo ontworpen dat gebruikers indien nodig naadloos kunnen overstappen tussen verschillende rekentypen. U kunt beginnen met het maken van een nieuwe Space met een specifieke configuratie, die voornamelijk bestaat uit rekenkracht en opslag. Als u op enig moment in uw workflow moet overschakelen naar een ander rekentype met een hoger of lager vCPU-aantal, meer of minder geheugen of een GPU-gebaseerde instantie, kunt u dit eenvoudig doen. Nadat u de Space hebt gestopt, kunt u de instellingen ervan wijzigen met behulp van de gebruikersinterface of API via de bijgewerkte SageMaker Studio-interface en start vervolgens de Space opnieuw op. SageMaker Studio zorgt automatisch voor de inrichting van uw bestaande ruimte naar de nieuwe configuratie, zonder dat u daarvoor extra inspanning hoeft te doen.

Voer de volgende stappen uit om een ​​bestaande ruimte te bewerken:

  1. Kies op de pagina met ruimtedetails Houd ruimte tegen.
  2. Configureer de rekenkracht, opslag of runtime opnieuw.
  3. Kies Voer ruimte uit om de ruimte opnieuw te lanceren.

Uw werkruimte wordt bijgewerkt met het nieuwe opslag- en rekeninstantietype dat u heeft aangevraagd.

De nieuwe SageMaker Studio JupyterLab-architectuur

Het SageMaker Studio-team blijft zijn ontwikkelaarservaring uitvinden en vereenvoudigen met de release van een nieuwe, volledig beheerde SageMaker Studio JupyterLab-ervaring. De nieuwe SageMaker Studio JupyterLab-ervaring combineert het beste van twee werelden: de schaalbaarheid en flexibiliteit van SageMaker Studio Klassiek (zie de bijlage aan het einde van dit bericht) met de stabiliteit en bekendheid van het open source JupyterLab. Om het ontwerp van deze nieuwe JupyterLab-ervaring te begrijpen, gaan we dieper in op het volgende architectuurdiagram. Dit zal ons helpen de integratie en functies van dit nieuwe JupyterLab Spaces-platform beter te begrijpen.

Samenvattend zijn we overgegaan op een gelokaliseerde architectuur. In deze nieuwe opzet werken de Jupyter-server- en kernelprocessen naast elkaar in één enkele Docker-container, gehost op dezelfde ML-rekeninstantie. Deze ML-instanties worden ingericht wanneer een Space actief is, en gekoppeld aan een EBS-volume dat is gemaakt toen de Space voor het eerst werd gemaakt.

Deze nieuwe architectuur brengt verschillende voordelen met zich mee; we bespreken enkele hiervan in de volgende paragrafen.

Verminderde latentie en verhoogde stabiliteit

SageMaker Studio is overgestapt op een lokaal uitvoeringsmodel, waarbij de code werd opgeslagen op een EFS-mount en op afstand werd uitgevoerd op een ML-instantie via een externe Kernel Gateway. In de eerdere opzet maakte Kernel Gateway, een headless webserver, kernelbewerkingen mogelijk via externe communicatie met Jupyter-kernels via HTTPS/WSS. Gebruikersacties zoals het uitvoeren van code, het beheren van notebooks of het uitvoeren van terminalopdrachten werden verwerkt door een Kernel Gateway-app op een externe ML-instantie, waarbij Kernel Gateway deze bewerkingen faciliteerde via ZeroMQ (ZMQ) binnen een Docker-container. Het volgende diagram illustreert deze architectuur.

De bijgewerkte JupyterLab-architectuur voert alle kernelbewerkingen rechtstreeks uit op de lokale instantie. Deze lokale Jupyter Server-aanpak biedt doorgaans verbeterde prestaties en een eenvoudige architectuur. Het minimaliseert de latentie en netwerkcomplexiteit, vereenvoudigt de architectuur voor eenvoudiger debuggen en onderhoud, verbetert het gebruik van bronnen en biedt flexibelere berichtenpatronen voor een verscheidenheid aan complexe workloads.

In wezen brengt deze upgrade actieve notebooks en code veel dichter bij de kernels, waardoor de latentie aanzienlijk wordt verminderd en de stabiliteit wordt vergroot.

Verbeterde controle over ingerichte opslag

SageMaker Studio Classic gebruikte oorspronkelijk Amazon EFS om permanente, gedeelde bestandsopslag te bieden voor de thuismappen van gebruikers binnen de SageMaker Studio-omgeving. Met deze opstelling kunt u notitieboekjes, scripts en andere projectbestanden centraal opslaan, toegankelijk voor al uw SageMaker Studio-sessies en -instanties.

Met de nieuwste update van SageMaker Studio is er een verschuiving van Amazon EFS-gebaseerde opslag naar een Amazon EBS-gebaseerde oplossing. De EBS-volumes, voorzien van SageMaker Studio Spaces, zijn dat wel GP3-volumes ontworpen om consistente basisprestaties van 3,000 IOPS te leveren, onafhankelijk van de volumegrootte. Deze nieuwe Amazon EBS-opslag biedt hogere prestaties voor I/O-intensieve taken zoals modeltraining, gegevensverwerking, high-performance computing en datavisualisatie. Deze transitie geeft SageMaker Studio-beheerders ook meer inzicht in en controle over het opslaggebruik door gebruikersprofielen binnen een domein of binnen SageMaker. U kunt nu de standaardinstelling instellen (DefaultEbsVolumeSizeInGb) en maximaal (MaximumEbsVolumeSizeInGb) opslaggroottes voor JupyterLab Spaces binnen elk gebruikersprofiel.

Naast verbeterde prestaties heeft u de mogelijkheid om het opslagvolume dat is gekoppeld aan de ML-computerinstantie van uw Space, flexibel te vergroten of verkleinen door uw Space-instelling te bewerken met behulp van de UI- of API-actie van uw SageMaker Studio-interface, zonder dat hiervoor enige beheeractie nodig is. Houd er echter rekening mee dat u de EBS-volumegroottes slechts in één richting kunt bewerken. Nadat u de EBS-volumegrootte van de Space hebt vergroot, kunt u deze niet meer verlagen.

SageMaker Studio biedt nu verhoogde controle over ingerichte opslag voor beheerders:

  • SageMaker Studio-beheerders kunnen de EBS-volumegroottes voor gebruikersprofielen beheren. Deze JupyterLab EBS volumes kunnen variëren van minimaal 5 GB tot maximaal 16 TB. Het volgende codefragment laat zien hoe u een gebruikersprofiel maakt of bijwerkt met standaard- en maximale ruimte-instellingen:
    aws --region $REGION sagemaker create-user-profile 
    --domain-id $DOMAIN_ID 
    --user-profile-name $USER_PROFILE_NAME 
    --user-settings '{
        "SpaceStorageSettings": {
            "DefaultEbsStorageSettings":{
                "DefaultEbsVolumeSizeInGb":5,
                "MaximumEbsVolumeSizeInGb":100
            }
        }
    }'
    
    
    # alternatively to update an existing user profile
    aws --region $REGION sagemaker update-user-profile 
    --domain-id $DOMAIN_ID 
    --user-profile-name $USER_PROFILE_NAME 
    --user-settings '{
        "SpaceStorageSettings": {
            "DefaultEbsStorageSettings":{
                "DefaultEbsVolumeSizeInGb":25,
                "MaximumEbsVolumeSizeInGb":100 
            }
        }
    }'

  • SageMaker Studio biedt nu een verbeterde autotagging-functie voor Amazon EBS-bronnen, waarbij door gebruikers gemaakte volumes automatisch worden gelabeld met domein-, gebruikers- en ruimte-informatie. Deze vooruitgang vereenvoudigt de analyse van de kostentoewijzing voor opslagbronnen, waardoor beheerders de kosten effectiever kunnen beheren en toewijzen. Het is ook belangrijk op te merken dat deze EBS-volumes worden gehost binnen het serviceaccount, zodat u geen direct inzicht heeft. Niettemin zijn het opslaggebruik en de bijbehorende kosten direct gekoppeld aan het domein ARN, het gebruikersprofiel ARN en Space ARN, waardoor een eenvoudige kostentoewijzing mogelijk wordt.
  • Beheerders kunnen ook de codering van de EBS-volumes van een ruimte in rust beheren met behulp van door de klant beheerde sleutels (CMK).

Gedeelde huur met uw eigen EFS-bestandssysteem

ML-workflows zijn doorgaans collaboratief en vereisen een efficiënte uitwisseling van gegevens en code tussen teamleden. De nieuwe SageMaker Studio verbetert dit samenwerkingsaspect doordat u gegevens, code en andere artefacten kunt delen via een gedeelde breng je eigen EFS-bestandssysteem. Deze EFS-schijf kan onafhankelijk van SageMaker worden ingesteld of kan een bestaande Amazon EFS-bron zijn. Nadat het is ingericht, kan het naadloos worden gemonteerd op SageMaker Studio-gebruikersprofielen. Deze functie is niet beperkt tot gebruikersprofielen binnen één domein; deze kan zich over domeinen uitstrekken, zolang ze zich binnen dezelfde regio bevinden.

De volgende voorbeeldcode laat zien hoe u een domein maakt en er een bestaand EFS-volume aan koppelt met behulp van het bijbehorende fs-id. EFS-volumes kunnen op root- of prefixniveau aan een domein worden gekoppeld, zoals de volgende opdrachten laten zien:

# create a domain with and attach an existing EFS volume at root level
aws sagemaker create-domain --domain-name "myDomain" 
 --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM 
 --default-user-settings 
 "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"
 
# create a domain with and attach an existing EFS volume at file system prefix leve
aws sagemaker create-domain --domain-name "myDomain" 
 --vpc-id {VPC_ID} --subnet-ids {SUNBET_IDS} --auth-mode IAM 
 --default-user-settings 
 "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678", FileSystemPath="/my/custom/path"}}]"

# update an existing domain with your own EFS
aws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx 
    --default-user-settings 
    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

Wanneer een EFS-koppeling beschikbaar wordt gemaakt in een domein en de bijbehorende gebruikersprofielen, kunt u ervoor kiezen deze aan een nieuwe ruimte te koppelen. Dit kan worden gedaan met behulp van de gebruikersinterface van SageMaker Studio of een API-actie, zoals weergegeven in het volgende voorbeeld. Het is belangrijk op te merken dat wanneer een ruimte wordt gemaakt met een EFS-bestandssysteem dat is ingericht op domeinniveau, de ruimte de eigenschappen ervan overneemt. Dit betekent dat als het bestandssysteem op root- of prefixniveau binnen het domein is ingericht, deze instellingen automatisch van toepassing zijn op de ruimte die door de domeingebruikers is gecreëerd.

# attach an a preconfigured EFS to a space
aws sagemaker create-space 
--space-name byofs-space --domain-id "myDomain" 
--ownership-settings "OwnerUserProfileName={USER_PROFILE_NAME}" 
--space-sharing-settings "SharingType=Private" 
--space-settings 
"AppType=JupyterLab,CustomFileSystems=[{EFSFileSystem={FileSystemId="fs-12345678"}}]")

Nadat u het aan een Space hebt gekoppeld, kunt u al uw bestanden vinden die zich boven het door de beheerder ingerichte koppelpunt bevinden. Deze bestanden zijn te vinden in het mappad /mnt/custom-file-system/efs/fs-12345678.

EFS-mounts maken het eenvoudig om artefacten te delen tussen de Space van een gebruiker of tussen meerdere gebruikers of tussen domeinen, waardoor het ideaal is voor collaboratieve werklasten. Met deze functie kunt u het volgende doen:

  • Gegevens delen – EFS-mounts zijn ideaal voor het opslaan van grote datasets die cruciaal zijn voor datawetenschappelijke experimenten. Eigenaren van gegevenssets kunnen deze koppelingen laden met trainings-, validatie- en testgegevenssets, waardoor ze toegankelijk worden voor gebruikersprofielen binnen een domein of over meerdere domeinen. SageMaker Studio-beheerders kunnen ook bestaande applicatie-EFS-mounts integreren terwijl ze voldoen aan het beveiligingsbeleid van de organisatie. Dit wordt gedaan door middel van flexibele montage op prefixniveau. Als productie- en testgegevens bijvoorbeeld op dezelfde EFS-mount zijn opgeslagen (zoals fs-12345678:/data/prod and fs-12345678:/data/test), montage /data/test op de gebruikersprofielen van het SageMaker-domein geeft gebruikers alleen toegang tot de testdataset. Deze opstelling maakt analyse of modeltraining mogelijk, terwijl de productiegegevens veilig en ontoegankelijk blijven.
  • Code delen – EFS-mounts vergemakkelijken het snel delen van codeartefacten tussen gebruikersprofielen. In scenario's waarin gebruikers snel codevoorbeelden moeten delen of moeten samenwerken aan een gemeenschappelijke codebasis zonder de complexiteit van frequente git push/pull-opdrachten, zijn gedeelde EFS-mounts zeer nuttig. Ze bieden een handige manier om codeartefacten in uitvoering te delen binnen een team of tussen verschillende teams in SageMaker Studio.
  • Deel ontwikkelomgevingen – Gedeelde EFS-mounts kunnen ook dienen als middel om sandbox-omgevingen snel onder gebruikers en teams te verspreiden. EFS-mounts bieden een solide alternatief voor het delen van Python-omgevingen zoals conda of virtualenv over meerdere werkruimten. Deze aanpak omzeilt de noodzaak van distributie requirements.txt or environment.yml bestanden, wat vaak kan leiden tot de repetitieve taak van het creëren of opnieuw creëren van omgevingen voor verschillende gebruikersprofielen.

Deze functies verbeteren de samenwerkingsmogelijkheden binnen SageMaker Studio aanzienlijk, waardoor teams moeiteloos efficiënt kunnen samenwerken aan complexe ML-projecten. Bovendien deelt Code Editor op basis van Code-OSS (Visual Studio Code Open Source) dezelfde architecturale principes als de bovengenoemde JupyterLab-ervaring. Deze afstemming brengt verschillende voordelen met zich mee, zoals verminderde latentie, verbeterde stabiliteit en verbeterde administratieve controle, en maakt gebruikerstoegang tot gedeelde werkruimten, vergelijkbaar met die aangeboden in JupyterLab Spaces.

Generatieve AI-aangedreven tools op JupyterLab Spaces

Generatieve AI, een snel evoluerend veld in kunstmatige intelligentie, gebruikt algoritmen om nieuwe inhoud zoals tekst, afbeeldingen en code te creëren op basis van uitgebreide bestaande gegevens. Deze technologie heeft een revolutie teweeggebracht in het coderen door routinetaken te automatiseren, complexe codestructuren te genereren en intelligente suggesties te bieden, waardoor de ontwikkeling wordt gestroomlijnd en creativiteit en probleemoplossing bij het programmeren worden bevorderd. Als onmisbaar hulpmiddel voor ontwikkelaars verbetert generatieve AI de productiviteit en stimuleert innovatie in de technologie-industrie. SageMaker Studio verbetert deze ontwikkelaarservaring met vooraf geïnstalleerde tools zoals Amazon CodeWhisperer en Jupyter AI, waarbij gebruik wordt gemaakt van generatieve AI om de ontwikkelingslevenscyclus te versnellen.

Amazon Code Whisperer

Amazon CodeWhisperer is een programmeerassistent die de productiviteit van ontwikkelaars verbetert door middel van realtime code-aanbevelingen en oplossingen. Als een door AWS beheerde AI-service is deze naadloos geïntegreerd in de SageMaker Studio JupyterLab IDE. Deze integratie maakt Amazon CodeWhisperer een vloeiende en waardevolle toevoeging aan de workflow van een ontwikkelaar.

Amazon CodeWhisperer blinkt uit in het verhogen van de efficiëntie van ontwikkelaars door veelvoorkomende codeertaken te automatiseren, effectievere codeerpatronen voor te stellen en de foutopsporingstijd te verkorten. Het dient als een essentieel hulpmiddel voor zowel beginnende als doorgewinterde codeerders en biedt inzicht in best practices, versnelt het ontwikkelingsproces en verbetert de algehele kwaliteit van code. Als je Amazon CodeWhisperer wilt gaan gebruiken, zorg er dan voor dat de Automatische suggesties hervatten functie is geactiveerd. U kunt codesuggesties handmatig oproepen met behulp van sneltoetsen.

U kunt ook een opmerking schrijven waarin u de beoogde codefunctie beschrijft en beginnen met coderen; Amazon CodeWhisperer zal suggesties gaan geven.

Houd er rekening mee dat hoewel Amazon CodeWhisperer vooraf is geïnstalleerd, u de codewhisperer:GenerateRecommendations toestemming als onderdeel van de uitvoeringsrol om codeaanbevelingen te ontvangen. Voor meer details, zie CodeWhisperer gebruiken met Amazon SageMaker Studio. Wanneer u Amazon CodeWhisperer gebruikt, kan AWS, voor serviceverbeteringsdoeleinden, gegevens over uw gebruik en inhoud opslaan. Om u af te melden voor de Amazon CodeWhisperer beleid voor het delen van gegevens, kunt u navigeren naar de omgeving optie in het bovenste menu en navigeer vervolgens naar Instellingen-editor en uitschakelen Deel gebruiksgegevens met Amazon CodeWhisperer vanuit het instellingenmenu van Amazon CodeWhisperer.

Jupyter AI

Jupyter AI is een open source-tool die generatieve AI naar Jupyter-notebooks brengt en een robuust en gebruiksvriendelijk platform biedt voor het verkennen van generatieve AI-modellen. Het verbetert de productiviteit in JupyterLab en Jupyter Notebooks door functies te bieden zoals de %%ai-magie voor het creëren van een generatieve AI-speeltuin in notebooks, een native chat-UI in JupyterLab voor interactie met AI als gespreksassistent, en ondersteuning voor een breed scala aan grote talen model (LLM)-aanbieders zoals AI21, Anthropic, Cohere en Hugging Face of beheerde services zoals Amazonebodem en SageMaker-eindpunten. Deze integratie biedt efficiëntere en innovatievere methoden voor data-analyse, ML en coderingstaken. U kunt bijvoorbeeld communiceren met een domeinbewuste LLM met behulp van de Jupyternaut-chatinterface voor hulp bij processen en workflows, of voorbeeldcode genereren via CodeLlama, gehost op SageMaker-eindpunten. Dit maakt het een waardevol hulpmiddel voor ontwikkelaars en datawetenschappers.

Jupyter AI biedt een uitgebreide keuze van taalmodellen die direct uit de doos klaar zijn voor gebruik. Daarnaast worden aangepaste modellen ook ondersteund via SageMaker-eindpunten, wat flexibiliteit en een breed scala aan opties voor gebruikers biedt. Het biedt ook ondersteuning voor het insluiten van modellen, zodat u inline vergelijkingen en tests kunt uitvoeren en zelfs ad hoc Retrieval Augmented Generation (RAG)-apps kunt bouwen of testen.

Jupyter AI kan fungeren als uw chatassistent en u helpen met codevoorbeelden, antwoorden op vragen geven en nog veel meer.

U kunt Jupyter AI's gebruiken %%ai magic om voorbeeldcode in uw notebook te genereren, zoals weergegeven in de volgende schermafbeelding.

JupyterLab 4.0

Het JupyterLab-team heeft versie 4.0 uitgebracht, met aanzienlijke verbeteringen op het gebied van prestaties, functionaliteit en gebruikerservaring. Gedetailleerde informatie over deze release is beschikbaar in de officiële versie JupyterLab-documentatie.

Deze versie, nu standaard in SageMaker Studio JupyterLab, introduceert geoptimaliseerde prestaties voor het verwerken van grote notebooks en snellere bewerkingen, dankzij verbeteringen zoals CSS-regeloptimalisatie en de adoptie van CodeMirror 6 en MathJax 3. Belangrijke verbeteringen omvatten een geüpgradede teksteditor met betere toegankelijkheid en aanpassing , een nieuwe extensiemanager voor eenvoudige installatie van Python-extensies, en verbeterde documentzoekmogelijkheden met geavanceerde functies. Bovendien brengt versie 4.0 UI-verbeteringen, toegankelijkheidsverbeteringen en updates voor ontwikkeltools, en zijn bepaalde functies teruggezet naar JupyterLab 3.6.

Conclusie

De verbeteringen in SageMaker Studio, vooral met de nieuwe JupyterLab-ervaring, markeren een aanzienlijke sprong voorwaarts in de ML-ontwikkeling. De bijgewerkte gebruikersinterface van SageMaker Studio, met de integratie van JupyterLab, Code Editor en RStudio, biedt een ongeëvenaarde, gestroomlijnde omgeving voor ML-ontwikkelaars. De introductie van JupyterLab Spaces biedt flexibiliteit en gemak bij het aanpassen van computer- en opslagbronnen, waardoor de algehele efficiëntie van ML-workflows wordt verbeterd. De verschuiving van een externe kernelarchitectuur naar een gelokaliseerd model in JupyterLab verhoogt de stabiliteit aanzienlijk en verlaagt de opstartlatentie. Dit resulteert in een snellere, stabielere en responsievere codeerervaring. Bovendien geeft de integratie van generatieve AI-tools zoals Amazon CodeWhisperer en Jupyter AI in JupyterLab ontwikkelaars nog meer mogelijkheden, waardoor je AI kunt gebruiken voor codeerondersteuning en innovatieve probleemoplossing. De verbeterde controle over de ingerichte opslag en de mogelijkheid om code en gegevens moeiteloos te delen via zelfbeheerde EFS-mounts vergemakkelijken samenwerkingsprojecten enorm. Ten slotte onderstreept de release van JupyterLab 4.0 binnen SageMaker Studio deze verbeteringen en biedt geoptimaliseerde prestaties, betere toegankelijkheid en een gebruiksvriendelijkere interface, waardoor de rol van JupyterLab als hoeksteen van efficiënte en effectieve ML-ontwikkeling in het moderne technologielandschap wordt versterkt.

Probeer SageMaker Studio JupyterLab Spaces eens met onze snelle onboard-functie, waarmee u binnen enkele minuten een nieuw domein voor individuele gebruikers kunt opzetten. Deel uw mening in de commentarensectie!

Bijlage: Kernelgateway-architectuur van SageMaker Studio Classic

A SageMaker-klassieker domein is een logische samenvoeging van een EFS-volume, een lijst met gebruikers die geautoriseerd zijn om toegang te krijgen tot het domein, en configuraties met betrekking tot beveiliging, applicaties, netwerken en meer. In de SageMaker Studio Classic-architectuur van SageMaker heeft elke gebruiker binnen het SageMaker-domein een afzonderlijk gebruikersprofiel. Dit profiel omvat specifieke details zoals de rol van de gebruiker en zijn Posix-gebruikers-ID in het EFS-volume, naast andere unieke gegevens. Gebruikers hebben toegang tot hun individuele gebruikersprofiel via een speciale Jupyter Server-app, verbonden via HTTPS/WSS in hun webbrowser. SageMaker Studio Classic maakt gebruik van een externe kernelarchitectuur die een combinatie van Jupyter Server- en Kernel Gateway-app-typen gebruikt, waardoor notebookservers kunnen communiceren met kernels op externe hosts. Dit betekent dat de Jupyter-kernels niet op de host van de notebookserver werken, maar binnen Docker-containers op afzonderlijke hosts. In wezen wordt uw notebook opgeslagen in de EFS-thuismap en wordt code op afstand uitgevoerd op een ander Amazon Elastic Compute-cloud (Amazon EC2) -instantie, die een vooraf gebouwde Docker-container bevat die is uitgerust met ML-bibliotheken zoals PyTorch, TensorFlow, Scikit-Learn en meer.

De externe kernelarchitectuur in SageMaker Studio biedt opmerkelijke voordelen op het gebied van schaalbaarheid en flexibiliteit. Het heeft echter zijn beperkingen, waaronder een maximum van vier apps per exemplaartype en potentiële knelpunten vanwege talrijke HTTPS/WSS-verbindingen met een algemeen EC2-instantietype. Deze beperkingen kunnen de gebruikerservaring negatief beïnvloeden.

Het volgende architectuurdiagram toont de SageMaker Studio Classic-architectuur. Het illustreert het proces van de gebruiker om verbinding te maken met een Kernel Gateway-app via een Jupyter Server-app, met behulp van de webbrowser van zijn voorkeur.


Over de auteurs

Pranav Murthy is een AI/ML Specialist Solutions Architect bij AWS. Hij richt zich op het helpen van klanten bij het bouwen, trainen, implementeren en migreren van machine learning (ML)-workloads naar SageMaker. Hij werkte eerder in de halfgeleiderindustrie en ontwikkelde grote computer vision (CV) en natuurlijke taalverwerkingsmodellen (NLP) om halfgeleiderprocessen te verbeteren met behulp van de modernste ML-technieken. In zijn vrije tijd houdt hij van schaken en reizen. Je kunt Pranav vinden op LinkedIn.

Kunal Jha is senior productmanager bij AWS. Hij richt zich op het bouwen van Amazon SageMaker Studio als de beste keuze in zijn klasse voor end-to-end ML-ontwikkeling. In zijn vrije tijd houdt Kunal van skiën en het verkennen van de Pacific Northwest. Je kunt hem vinden op LinkedIn.

Majisha Namath Parambath is een senior software-ingenieur bij Amazon SageMaker. Ze werkt al meer dan 8 jaar bij Amazon en werkt momenteel aan het verbeteren van de end-to-end-ervaring van Amazon SageMaker Studio.

Bharat Nandamuri is een Senior Software Engineer die werkt aan Amazon SageMaker Studio. Hij heeft een passie voor het bouwen van grootschalige backend-services met de nadruk op engineering voor ML-systemen. Buiten zijn werk houdt hij van schaken, wandelen en films kijken.

Derek Lause is een software-ingenieur bij AWS. Hij streeft ernaar om waarde aan klanten te leveren via Amazon SageMaker Studio en Notebook Instances. In zijn vrije tijd brengt Derek graag tijd door met familie en vrienden en houdt hij van wandelen. Je kunt Derek vinden op LinkedIn.

spot_img

Laatste intelligentie

spot_img