Aumenta la produttività su Amazon SageMaker Studio presentazione di JupyterLab Spaces e strumenti di intelligenza artificiale generativa

Migliora la produttività su Amazon SageMaker Studio presentazione di JupyterLab Spaces e strumenti di intelligenza artificiale generativa

Amazon SageMaker Studio offre un ampio set di ambienti di sviluppo integrati completamente gestiti (IDE) per lo sviluppo di machine learning (ML), tra cui JupyterLab, Code Editor basato su Code-OSS (Visual Studio Code Open Source) e RStudio. Fornisce accesso al set più completo di strumenti per ogni fase dello sviluppo di ML, dalla preparazione dei dati alla creazione, formazione, distribuzione e gestione dei modelli di ML. Puoi lanciare JupyterLab completamente gestito con la Distribuzione SageMaker preconfigurata in pochi secondi per lavorare con i tuoi notebook, codice e dati. L’interfaccia flessibile ed estensibile di SageMaker Studio ti consente di configurare e organizzare senza sforzo i flussi di lavoro di ML, e puoi utilizzare un compagno di codifica con intelligenza artificiale per scrivere, eseguire il debug, spiegare e testare rapidamente il codice.

In questo articolo, approfondiamo SageMaker Studio aggiornato e il suo ambiente di sviluppo integrato JupyterLab, progettato per aumentare la produttività degli sviluppatori di ML. Introduciamo il concetto di Spazi e spieghiamo come i JupyterLab Spaces consentano una personalizzazione flessibile delle risorse di calcolo, archiviazione ed esecuzione per migliorare l’efficienza dei flussi di lavoro di ML. Discutiamo anche del nostro passaggio a un modello di esecuzione localizzato in JupyterLab, che offre un’esperienza di codifica più rapida, stabile e reattiva. Inoltre, copriamo l’integrazione senza soluzione di continuità di strumenti di intelligenza artificiale generativa come Amazon CodeWhisperer e Jupyter AI all’interno di SageMaker Studio JupyterLab Spaces, illustrando come permettano agli sviluppatori di utilizzare l’intelligenza artificiale per l’assistenza alla codifica e la risoluzione innovativa dei problemi.

Introduzione agli Spazi in SageMaker Studio

La nuova interfaccia basata sul web di SageMaker Studio funge da centro di comando per lanciare il tuo IDE preferito e accedere agli strumenti di Amazon SageMaker per creare, formare, ottimizzare e distribuire modelli. Oltre a JupyterLab e RStudio, SageMaker Studio include ora un Code Editor completamente gestito basato su Code-OSS (Visual Studio Code Open Source). Sia JupyterLab che Code Editor possono essere avviati utilizzando un workspace flessibile chiamato Spazi.

Uno Spazio è una rappresentazione di configurazione di un IDE SageMaker, come JupyterLab o Code Editor, progettata per essere persistente indipendentemente dal fatto che un’applicazione (IDE) associata allo Spazio sia in esecuzione o meno. Uno Spazio rappresenta una combinazione di istanza di calcolo, archiviazione e altre configurazioni di runtime. Con gli Spazi, puoi creare e scalare le risorse di calcolo e archiviazione per il tuo IDE in base alle tue esigenze, personalizzare gli ambienti di esecuzione e mettere in pausa e riprendere la codifica in qualsiasi momento e da qualsiasi luogo. Puoi avviare più Spazi di questo tipo, ognuno configurato con una diversa combinazione di calcolo, archiviazione ed esecuzione.

Quando viene creato uno Spazio, viene dotato di un volume del Amazon Elastic Block Store (Amazon EBS), che viene utilizzato per archiviare i file, i dati, la cache e altri artefatti degli utenti. Viene collegato a un’istanza di calcolo di ML ogni volta che viene eseguito uno Spazio. Il volume EBS garantisce che i file degli utenti, i dati, la cache e lo stato della sessione vengano ripristinati in modo coerente ogni volta che lo Spazio viene riavviato. Importante, questo volume EBS rimane persistente, che lo Spazio sia in stato di esecuzione o in stato di arresto. Rimarrà persistente fino a quando lo Spazio non verrà eliminato.

Inoltre, abbiamo introdotto la funzionalità di file system di proprietà per gli utenti che desiderano condividere ambienti e artefatti tra diversi Spazi, utenti o anche domini. Questo ti consente di dotare facoltativamente i tuoi Spazi del tuo mount del Amazon Elastic File System (Amazon EFS), facilitando la condivisione di risorse tra diversi spazi di lavoro.

Creazione di uno Spazio

Creare e lanciare un nuovo Spazio è ora rapido e semplice. Ci vogliono solo pochi secondi per configurare un nuovo Spazio con istanze di lancio veloci e meno di 60 secondi per eseguire uno Spazio. Gli Spazi sono dotati di impostazioni predefinite per il calcolo e lo storage, gestite dagli amministratori. Gli amministratori di SageMaker Studio possono stabilire preset a livello di dominio per le configurazioni di calcolo, storage e runtime. Questa configurazione consente di lanciare rapidamente un nuovo spazio con il minimo sforzo, richiedendo solo alcuni clic. Hai anche la possibilità di modificare le configurazioni di calcolo, storage o runtime di uno Spazio per una personalizzazione ulteriore.

È importante notare che la creazione di uno Spazio richiede l’aggiornamento del ruolo di esecuzione del dominio SageMaker con una policy come l’esempio seguente. È necessario concedere agli utenti le autorizzazioni per gli spazi privati e i profili utente necessari per accedere a questi spazi privati. Per istruzioni dettagliate, fare riferimento a Concedere l’accesso degli utenti a spazi privati.

{  "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"          ]        }      }    },  ]}

Per creare uno spazio, seguire i seguenti passaggi:

  1. In SageMaker Studio, scegliere JupyterLab nel menu Applicazioni.
  2. Scegliere Crea spazio JupyterLab.
  3. Per Nome, inserire un nome per il proprio Spazio.
  4. Scegliere Crea spazio.
  5. Scegliere Esegui spazio per avviare il proprio nuovo Spazio con le impostazioni predefinite o aggiornare la configurazione in base alle proprie esigenze.

Riconfigurare uno Spazio

Gli Spazi sono progettati per consentire agli utenti di passare senza soluzione di continuità tra diversi tipi di calcolo secondo necessità. Si può iniziare creando un nuovo Spazio con una configurazione specifica, principalmente basata sul calcolo e sulla memoria. Se si ha bisogno di passare a un diverso tipo di calcolo con un conteggio di vCPU superiore o inferiore, più o meno memoria, o un’istanza basata su GPU in qualsiasi momento nel workflow, si può farlo facilmente. Dopo aver fermato lo Spazio, si possono modificare le impostazioni utilizzando sia l’interfaccia utente (UI) sia l’API tramite l’interfaccia aggiornata di SageMaker Studio e quindi riavviare lo Spazio. SageMaker Studio si occupa automaticamente della fornitura dello Spazio esistente alla nuova configurazione, senza alcuno sforzo supplementare da parte dell’utente.

Seguire i seguenti passaggi per modificare uno spazio esistente:

  1. Nella pagina dei dettagli dello spazio, scegliere Ferma spazio.
  2. Riconfigurare il calcolo, lo storage o l’ambiente di esecuzione.
  3. Scegliere Esegui spazio per riavviare lo spazio.

Il proprio spazio di lavoro verrà aggiornato con il nuovo tipo di storage e di istanza di calcolo richiesti.

La nuova architettura di SageMaker Studio JupyterLab

Il team di SageMaker Studio continua a inventare e semplificare la propria esperienza di sviluppo con il rilascio di una nuova esperienza SageMaker Studio JupyterLab completamente gestita. La nuova esperienza SageMaker Studio JupyterLab combina il meglio di entrambi i mondi: la scalabilità e la flessibilità di SageMaker Studio Classic (vedere l’appendice alla fine di questo articolo) con la stabilità e la familiarità del JupyterLab open source. Per comprendere il design di questa nuova esperienza JupyterLab, approfondiamo il seguente diagramma di architettura. Ciò ci aiuterà a comprendere meglio l’integrazione e le funzionalità di questa nuova piattaforma JupyterLab Spaces.

In sintesi, si è passati a un’architettura localizzata. In questa nuova configurazione, server Jupyter e processi kernel operano all’interno di un singolo container Docker, ospitato sulla stessa istanza di calcolo ML. Queste istanze ML vengono allocate quando uno Spazio è in esecuzione, e associate a un volume EBS creato al momento della creazione dello Spazio.

Questa nuova architettura porta diversi vantaggi; ne discutiamo alcuni delle sezioni seguenti.

Riduzione della latenza e aumento della stabilità

SageMaker Studio ha fatto la transizione a un modello di esecuzione locale, abbandonando il modello precedente in cui il codice era archiviato su un mount EFS ed eseguito in remoto su un’istanza ML tramite il Kernel Gateway remoto. Nella configurazione precedente, Kernel Gateway, un server web senza interfaccia, consentiva operazioni kernel tramite comunicazione remota con i kernel Jupyter tramite HTTPS/WSS. Azioni dell’utente come l’esecuzione del codice, la gestione dei notebook o l’esecuzione di comandi del terminale venivano elaborate da un’app Kernel Gateway su un’istanza ML remota, con Kernel Gateway che facilitava queste operazioni tramite ZeroMQ (ZMQ) all’interno di un container Docker. Il seguente diagramma illustra questa architettura.

L’architettura aggiornata di JupyterLab esegue tutte le operazioni kernel direttamente sull’istanza locale. Questo approccio locale di Jupyter Server fornisce tipicamente prestazioni migliorate e un’architettura più semplice. Riduce al minimo la latenza e la complessità della rete, semplifica l’architettura per una facile risoluzione dei problemi e la manutenzione, migliora l’utilizzo delle risorse e si adatta a modelli di messaggistica più flessibili per una varietà di carichi di lavoro complessi.

In sostanza, questo aggiornamento porta l’esecuzione dei notebook e del codice molto più vicino ai kernel, riducendo significativamente la latenza e aumentando la stabilità.

Miglior controllo dello storage assegnato

SageMaker Studio Classic originariamente utilizzava Amazon EFS per fornire uno storage di file persistente e condiviso per le home directory degli utenti all’interno dell’ambiente di SageMaker Studio. Questa configurazione consente di archiviare in modo centralizzato i notebook, gli script e altri file di progetto, accessibili attraverso tutte le sessioni e le istanze di SageMaker Studio.

Con l’ultimo aggiornamento di SageMaker Studio, c’è un passaggio da uno storage basato su Amazon EFS a una soluzione basata su Amazon EBS. I volumi EBS, forniti con SageMaker Studio Spaces, sono volumi GP3 progettati per fornire una prestazione di base costante di 3.000 IOPS, indipendentemente dalla dimensione del volume. Questo nuovo storage di Amazon EBS offre prestazioni più elevate per attività intensiva di I/O come training di modelli, elaborazione dei dati, calcolo ad alte prestazioni e visualizzazione dei dati. Questa transizione offre anche ai gestori di SageMaker Studio una maggiore visibilità e controllo sull’uso dello storage da parte dei profili utente all’interno di un dominio o in tutto SageMaker. Ora è possibile impostare dimensioni di storage predefinite (DefaultEbsVolumeSizeInGb) e massime (MaximumEbsVolumeSizeInGb) per gli spazi di JupyterLab all’interno di ogni profilo utente.

Oltre alle prestazioni migliorate, è possibile ridimensionare in modo flessibile il volume di storage collegato all’istanza di calcolo ML dello spazio modificando l’impostazione dello spazio tramite l’interfaccia utente o l’azione API dal tuo ambiente di SageMaker Studio, senza richiedere alcuna azione amministrativa. Tuttavia, nota che è possibile modificare le dimensioni dei volumi EBS solo in un’unica direzione: dopo aver aumentato le dimensioni del volume dello spazio, non sarà possibile ridurle nuovamente.

SageMaker Studio offre ora un controllo migliorato dello storage assegnato per gli amministratori:

  • Gli amministratori di SageMaker Studio possono gestire le dimensioni dei volumi EBS per i profili utente. Questi volumi JupyterLab EBS possono variare da un minimo di 5 GB a un massimo di 16 TB. Il seguente snippet di codice mostra come creare o aggiornare un profilo utente con impostazioni di spazio predefinite e massime:

    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        }    }}'# oppure per aggiornare un profilo utente esistenteaws --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 ora offre una funzionalità di auto-tagging avanzata per le risorse di Amazon EBS, etichettando automaticamente i volumi creati dagli utenti con informazioni sul dominio, sull’utente e sullo spazio. Questo sviluppo semplifica l’analisi dell’allocazione dei costi per le risorse di storage, aiutando gli amministratori a gestire ed attribuire i costi in modo più efficace. È importante anche notare che questi volumi EBS sono ospitati nell’account di servizio, quindi non avrai visibilità diretta. Tuttavia, l’utilizzo dello storage e i costi associati sono direttamente collegati all’ARN del dominio, all’ARN del profilo utente e all’ARN dello spazio, facilitando un’allocazione chiara dei costi.

  • Gli amministratori possono anche controllare la crittografia dei volumi EBS di uno spazio, a riposo, utilizzando chiavi gestite dal cliente (CMK).

Condivisione dell’occupazione con sistema di file EFS portato da utente

Tipicamente i flussi di lavoro di machine learning sono collaborativi, richiedendo una condivisione efficiente di dati e codice tra i membri del team. Il nuovo SageMaker Studio migliora questo aspetto collaborativo permettendoti di condividere dati, codice e altri artefatti tramite un sistema di file EFS portato da utente. Questo drive EFS può essere configurato indipendentemente da SageMaker o può essere una risorsa Amazon EFS esistente. Dopo essere stato istanziato, può essere montato in modo trasparente sui profili utente di SageMaker Studio. Questa funzionalità non è limitata a profili utente all’interno di un singolo dominio, ma può estendersi su domini diversi, purché si trovino nella stessa regione.

L’esempio di codice seguente ti mostra come creare un dominio e allegare un volume EFS esistente ad esso utilizzando l’ID del file system associato. I volumi EFS possono essere allegati a un dominio a livello di root o di prefisso, come dimostrano i seguenti comandi:

# crea un dominio e allega un volume EFS esistente a livello di rootaws 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"}}]" # crea un dominio e allega un volume EFS esistente a livello di prefisso del file systemaws 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"}}]"# aggiorna un dominio esistente con il tuo EFSaws sagemaker update-domain --region us-west-2 --domain-id d-xxxxx \    --default-user-settings \    "CustomFileSystemConfigs=[{EFSFileSystemConfig={FileSystemId="fs-12345678"}}]"

Quando un mount EFS è reso disponibile in un dominio e nei relativi profili utente, puoi scegliere di allegarlo ad un nuovo spazio. Questo può essere fatto utilizzando l’interfaccia utente di SageMaker Studio o un’azione API, come mostrato nell’esempio seguente. È importante notare che quando uno spazio viene creato con un file system EFS che è istanziato a livello di dominio, lo spazio eredita le sue proprietà. Ciò significa che se il file system è istanziato a livello di root o di prefisso all’interno del dominio, queste impostazioni si applicheranno automaticamente allo spazio creato dagli utenti del dominio.

# collega un EFS preconfigurato ad uno spazioaws 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"}}]")

Dopo averlo montato su uno spazio, puoi trovare tutti i tuoi file situati sopra il punto di mount istanziato dall’amministratore. Questi file possono essere trovati nel percorso della directory /mnt/custom-file-system/efs/fs-12345678.

I mount EFS semplificano la condivisione di artefatti tra uno spazio utente o tra diversi utenti o domini, rendendoli ideali per i carichi di lavoro collaborativi. Con questa funzionalità puoi fare quanto segue:

  • Condividi dati – I mount EFS sono ideali per archiviare grandi dataset cruciali per gli esperimenti di data science. I proprietari dei dataset possono caricare questi mount con dataset di addestramento, di validazione e di test, rendendoli accessibili ai profili utente all’interno di un dominio o tra più domini. Gli amministratori di SageMaker Studio possono anche integrare mount EFS di applicazioni esistenti, mantenendo nel contempo la conformità con le politiche di sicurezza organizzative. Ciò viene fatto attraverso il montaggio a livello di prefisso. Ad esempio, se i dati di produzione e di test sono archiviati sullo stesso mount EFS (come fs-12345678:/data/prod e fs-12345678:/data/test), il montaggio di /data/test sui profili utente del dominio SageMaker consente agli utenti di accedere solo al dataset di test. Questa configurazione consente l’analisi o l’addestramento del modello mantenendo i dati di produzione sicuri e inaccessibili.
  • Condividi Codice – I mount EFS facilitano la condivisione rapida di artefatti di codice tra profili utente. Nei casi in cui gli utenti hanno bisogno di condividere rapidamente campioni di codice o collaborare su una base di codice comune senza la complessità dei frequenti comandi git push/pull, i mount EFS condivisi sono molto utili. Offrono un modo conveniente per condividere artefatti di codice in fase di sviluppo all’interno di un team o tra team diversi in SageMaker Studio.
  • Condividi ambienti di sviluppo – I mount EFS condivisi possono anche servire come un mezzo per diffondere rapidamente ambienti sandbox tra gli utenti e i team. I mount EFS forniscono un’alternativa solida per la condivisione di ambienti Python come conda o virtualenv in più workspaces. Questo approccio evita la necessità di distribuire file requirements.txt o environment.yml, che spesso comporta il compito ripetitivo di creare o ricreare ambienti in diversi profili utente.

Queste caratteristiche migliorano significativamente le capacità di collaborazione all’interno di SageMaker Studio, rendendo semplice per i team lavorare insieme in modo efficiente su progetti di ML complessi. Inoltre, l’editor di codice basato su Code-OSS (Visual Studio Code Open Source) condivide gli stessi principi architettonici dell’esperienza JupyterLab sopra menzionata. Questo allineamento offre diversi vantaggi, come la riduzione della latenza, una maggiore stabilità e un miglior controllo amministrativo, consentendo agli utenti di accedere a spazi di lavoro condivisi, simili a quelli offerti in JupyterLab Spaces.

Strumenti basati su generative AI in JupyterLab Spaces

La generative AI, un campo in rapida evoluzione nell’intelligenza artificiale, utilizza algoritmi per creare nuovi contenuti come testi, immagini e codice da dati esistenti estesi. Questa tecnologia ha rivoluzionato la programmazione automatizzando le attività di routine, generando strutture di codice complesse e offrendo suggerimenti intelligenti, semplificando lo sviluppo e promuovendo la creatività e la risoluzione di problemi nella programmazione. Come strumento indispensabile per i programmatori, la generative AI migliora la produttività e stimola l’innovazione nel settore tecnologico. SageMaker Studio potenzia questa esperienza per i programmatori con strumenti preinstallati come Amazon CodeWhisperer e Jupyter AI, che utilizzano la generative AI per accelerare il ciclo di sviluppo.

Amazon CodeWhisperer

Amazon CodeWhisperer è un assistente di programmazione che migliora la produttività dei programmatori attraverso consigli di codice in tempo reale e soluzioni. Come servizio gestito da AWS, è integrato in modo fluido nell’IDE JupyterLab di SageMaker Studio. Questa integrazione rende Amazon CodeWhisperer un’aggiunta fluida e preziosa al flusso di lavoro di un programmatore.

Amazon CodeWhisperer si distingue nell’aumentare l’efficienza dei programmatori automatizzando le attività di codifica comuni, suggerendo modelli di codifica più efficaci e riducendo il tempo di debug. Si rivela uno strumento essenziale sia per i principianti che per i programmatori esperti, fornendo indicazioni sulle migliori pratiche, accelerando il processo di sviluppo e migliorando la qualità complessiva del codice. Per iniziare a utilizzare Amazon CodeWhisperer, assicurati che la funzione Riprendi le suggerimenti automatici sia attivata. Puoi richiamare manualmente i suggerimenti di codice utilizzando scorciatoie da tastiera.

In alternativa, scrivi un commento che descriva la funzione di codice desiderata e inizia a codificare; Amazon CodeWhisperer inizierà a fornire suggerimenti.

Si noti che, sebbene Amazon CodeWhisperer sia preinstallato, è necessario disporre dell’autorizzazione codewhisperer:GenerateRecommendations come parte del ruolo di esecuzione per ricevere i suggerimenti di codice. Per ulteriori dettagli, consulta Utilizzare CodeWhisperer con Amazon SageMaker Studio. Quando utilizzi Amazon CodeWhisperer, AWS può, per scopi di miglioramento del servizio, memorizzare dati sul tuo utilizzo e contenuto. Per escludere la condivisione dei dati relativi ad Amazon CodeWhisperer, puoi accedere alla voce Impostazioni nel menu principale, quindi passare a Editor impostazioni e disabilitare Condividi dati di utilizzo con Amazon CodeWhisperer dal menu impostazioni di Amazon CodeWhisperer.

Jupyter AI

Jupyter AI è uno strumento open source che porta la generative AI nei notebook Jupyter, offrendo una piattaforma solida e user-friendly per esplorare modelli di generative AI. Migliora la produttività in JupyterLab e nei notebook Jupyter offrendo funzionalità come la magia %%ai per creare un ambiente di gioco per generative AI all’interno dei notebook, un’interfaccia chat nativa in JupyterLab per interagire con l’AI come assistente conversazionale e il supporto per una vasta gamma di fornitori di modelli linguistici di grandi dimensioni (LLM) come AI21, Anthropic, Cohere e Hugging Face o servizi gestiti come Amazon Bedrock e gli endpoint di SageMaker. Questa integrazione offre metodi più efficienti e innovativi per l’analisi dei dati, l’apprendimento automatico e le attività di codifica. Ad esempio, puoi interagire con un LLM consapevole del dominio utilizzando l’interfaccia di chat Jupyternaut per ottenere aiuto con processi e flussi di lavoro o generare del codice di esempio tramite CodeLlama, ospitato sugli endpoint di SageMaker. Questo lo rende uno strumento prezioso per programmatori e data scientist.

Jupyter AI offre una vasta selezione di modelli di linguaggio pronti all’uso. Inoltre, supporta anche i modelli personalizzati tramite endpoint SageMaker, offrendo flessibilità e una vasta gamma di opzioni per gli utenti. Offre anche supporto per i modelli di embedding, permettendoti di eseguire confronti e test inline e persino creare o testare app di Retrieval Augmented Generation (RAG) ad hoc.

Jupyter AI può agire come il tuo assistente chat, aiutandoti con esempi di codice, fornendoti risposte alle tue domande e molto altro.

Puoi utilizzare la magia %%ai di Jupyter AI per generare codice di esempio all’interno del tuo notebook, come mostrato nella seguente immagine.

JupyterLab 4.0

Il team di JupyterLab ha rilasciato la versione 4.0, che presenta miglioramenti significativi in termini di prestazioni, funzionalità e user experience. Informazioni dettagliate su questo rilascio sono disponibili nella documentazione ufficiale di JupyterLab.

Questa versione, ora standard in SageMaker Studio JupyterLab, introduce prestazioni ottimizzate per la gestione di notebook di grandi dimensioni e operazioni più veloci, grazie a miglioramenti come l’ottimizzazione delle regole CSS e l’adozione di CodeMirror 6 e MathJax 3. I miglioramenti chiave includono un editor di testo migliorato con una migliore accessibilità e personalizzazione, un nuovo gestore di estensioni per l’installazione semplice di estensioni Python e capacità di ricerca avanzate nei documenti. Inoltre, la versione 4.0 porta miglioramenti dell’interfaccia utente, miglioramenti dell’accessibilità e aggiornamenti agli strumenti di sviluppo, e alcune funzionalità sono state retroportate su JupyterLab 3.6.

Conclusione

I progressi in SageMaker Studio, in particolare con la nuova esperienza di JupyterLab, rappresentano un significativo salto in avanti nello sviluppo di ML. L’aggiornata interfaccia utente di SageMaker Studio, con l’integrazione di JupyterLab, Code Editor e RStudio, offre un ambiente straordinario e efficiente per gli sviluppatori di ML. L’introduzione di JupyterLab Spaces offre flessibilità e facilità nella personalizzazione delle risorse di calcolo e storage, migliorando l’efficienza complessiva dei flussi di lavoro di ML. Il passaggio da un’architettura di kernel remoto a un modello localizzato in JupyterLab aumenta notevolmente la stabilità riducendo la latenza di avvio. Ciò si traduce in un’esperienza di codifica più rapida, stabile e reattiva. Inoltre, l’integrazione di strumenti di intelligenza artificiale generativi come Amazon CodeWhisperer e Jupyter AI in JupyterLab fornisce ulteriori poteri agli sviluppatori, consentendo l’utilizzo dell’IA per assistenza alla codifica e risoluzione innovativa dei problemi. Il miglior controllo sullo storage provvisto e la possibilità di condividere facilmente codice e dati tramite montature EFS autogestite agevolano notevolmente i progetti collaborativi. Infine, il rilascio di JupyterLab 4.0 all’interno di SageMaker Studio sottolinea questi miglioramenti, offrendo prestazioni ottimizzate, migliore accessibilità e un’interfaccia più amichevole, solidificando così il ruolo di JupyterLab come pietra angolare dello sviluppo efficiente ed efficace di ML nel panorama tecnologico moderno.

Prova SageMaker Studio JupyterLab Spaces utilizzando la nostra funzionalità di avvio rapido, che ti consente di configurare un nuovo dominio per singoli utenti in pochi minuti. Condividi le tue opinioni nella sezione commenti!

Appendice: Architettura del kernel gateway di SageMaker Studio Classic

Un dominio SageMaker Classic è una possibile aggregazione logica di un volume EFS, di un elenco di utenti autorizzati ad accedere al dominio e di configurazioni relative alla sicurezza, all’applicazione, alla rete e altro ancora. Nell’architettura di SageMaker Studio Classic, ogni utente all’interno del dominio SageMaker ha un profilo utente distinto. Questo profilo comprende dettagli specifici come il ruolo dell’utente e il suo ID utente Posix nel volume EFS, tra altri dati unici. Gli utenti accedono al proprio profilo utente individuale tramite un’app dedicata “Jupyter Server”, connessa tramite HTTPS/WSS nel loro browser web. SageMaker Studio Classic utilizza un’architettura di kernel remoto che comprende una combinazione di app “Jupyter Server” e “Kernel Gateway”, consentendo ai server notebook di interagire con i kernel su host remoti. Ciò significa che i kernel Jupyter non operano sull’host del server notebook, ma all’interno di container Docker in host separati. In sostanza, il tuo notebook è memorizzato nella directory home di EFS e il codice viene eseguito in remoto su un’istanza diversa di Amazon Elastic Compute Cloud (Amazon EC2), che contiene un container Docker pre-costruito dotato di librerie di machine learning come PyTorch, TensorFlow, Scikit-Learn e altro ancora.

L’architettura del kernel remoto in SageMaker Studio offre notevoli vantaggi in termini di scalabilità e flessibilità. Tuttavia, ha i suoi limiti, tra cui un massimo di quattro app per tipo di istanza e possibili congestioni a causa di numerose connessioni HTTPS/WSS a un tipo di istanza EC2 comune. Questi limiti potrebbero influire negativamente sull’esperienza dell’utente.

Il seguente diagramma architetturale rappresenta l’architettura SageMaker Studio Classic. Illustra il processo dell’utente di connessione a un’app Kernel Gateway tramite un’app Jupyter Server, utilizzando il proprio browser web preferito.