Nuovo – Editor di codice, basato su Code-OSS VS Code Open Source ora disponibile in Amazon SageMaker Studio.

Oggi siamo entusiasti di annunciare il supporto per Code Editor, una nuova opzione di ambiente di sviluppo integrato (IDE) in Amazon SageMaker Studio. Code Editor si basa su Code-OSS, Visual Studio Code Open Source, e fornisce accesso all’ambiente e agli strumenti familiari dell’IDE popolare che i sviluppatori di apprendimento automatico (ML) conoscono e amano, completamente integrato con l’ampio set di funzionalità di SageMaker Studio. Code Editor consente di scegliere tra migliaia di estensioni compatibili con VS Code disponibili nella galleria delle estensioni Open-VSX per migliorare ulteriormente l’esperienza di sviluppo del tuo team. Puoi anche massimizzare la produttività del tuo team utilizzando l’integrazione senza soluzione di continuità con i servizi AWS tramite il AWS Toolkit per Visual Studio Code, incluso l’assistente di codifica alimentato dall’intelligenza artificiale di AWS, Amazon CodeWhisperer.

Come tutte le applicazioni IDE in SageMaker Studio, i sviluppatori e ingegneri di ML possono selezionare il calcolo sottostante su richiesta e scambiarlo in base alle loro esigenze senza perdere dati. Inoltre, i tuoi team possono gestire il controllo delle versioni del codice e collaborare tra team attraverso l’integrazione nativa di GitHub e ridurre il tempo per la codifica utilizzando i framework di ML più popolari già pronti all’uso con l’immagine del container Amazon SageMaker Distribution preconfigurata.

Iniziare con Code Editor su Amazon SageMaker Studio

Il tuo amministratore IT può configurare un nuovo dominio di SageMaker Studio o migrarne uno esistente alla nuova esperienza di SageMaker Studio, che include Code Editor. Consulta Onboard to Amazon SageMaker Domain utilizzando la configurazione rapida per maggiori dettagli. Puoi quindi avviare Code Editor con un semplice clic nel tuo ambiente di Amazon SageMaker Studio.

  1. Dopo aver configurato il dominio, avvia la nuova esperienza di SageMaker Studio dalla console o dall’URL firmato in anticipo fornito dal tuo amministratore. Puoi trovare l’IDE Code Editor sia nella sezione Applicazioni nel pannello laterale sinistro che nella sezione Panoramica, come mostrato nella seguente immagine:
  2. Nella pagina dei dettagli di Code Editor, scegli Crea spazio Code Editor. Quindi inserisci un nome per il tuo spazio e scegli Crea spazio:
  3. Nella pagina dei dettagli dello spazio Code Editor, scegli la tua configurazione sottostante, tra cui:
    1. Il tipo di istanza Amazon Elastic Compute Cloud (Amazon EC2) sottostante.
    2. Una dimensione del volume Amazon Elastic Block Storage (Amazon EBS) (questo può variare da 5 GB a 16 TB).
    3. L’immagine del contenitore da utilizzare (avrai a disposizione un’immagine SageMaker Distribution sia per la CPU che per la GPU al momento del lancio).
    4. Uno script di configurazione del ciclo di vita da eseguire nel caso in cui desideri personalizzare il tuo ambiente durante la creazione dell’app.
    5. Un Amazon Elastic File System (Amazon EFS) condiviso da montare nel tuo spazio Code Editor (questo deve essere configurato dal tuo amministratore durante la fornitura del dominio).
  4. Dopo aver fornito i dettagli di configurazione dello spazio, scegli Esegui spazio per allocare le risorse dello spazio.

Se hai scelto un’istanza di lancio rapido con l’immagine predefinita di SageMaker Distribution, il tuo spazio Code Editor sarà disponibile in meno di un minuto. Se hai aggiunto configurazioni del ciclo di vita allo spazio, potrebbe essere necessario un tempo aggiuntivo per installare le dipendenze da quello script.

Dopo che le risorse sono state allocate, la pagina dei dettagli dello spazio mostrerà un pulsante Apri Editor di codice.

  1. Scegli Apri Editor di codice per avviare l’IDE.

L’IDE dell’editor di codice si aprirà in una nuova scheda del browser.

Caratteristiche dell’Editor di codice

L’Editor di codice offre un insieme unico di funzionalità per aumentare la produttività del tuo team di machine learning:

  1. Infrastruttura completamente gestita – L’IDE dell’Editor di codice viene eseguito su infrastruttura completamente gestita. Amazon SageMaker si occupa di mantenere le istanze aggiornate con gli ultimi aggiornamenti di sicurezza.
  2. Regolazione delle risorse – Con l’Editor di codice, puoi facilmente modificare le risorse sottostanti (ad esempio, tipo di istanza, dimensioni del volume EBS) su cui viene eseguito l’Editor di codice. Questo è vantaggioso per gli sviluppatori che desiderano eseguire carichi di lavoro con esigenze di calcolo, memoria e archiviazione variabili.
  3. Immagini fornite da SageMaker – L’Editor di codice è preconfigurato con la Distribuzione SageMaker come immagine predefinita. Questa immagine del contenitore include tutti i framework di machine learning più popolari supportati da SageMaker, insieme al SDK Python di SageMaker, boto3 e altre librerie specifiche di AWS e data science installate. Ciò riduce significativamente il tempo che trascorri nell’ambiente di configurazione e diminuisce la complessità della gestione delle dipendenze dei pacchetti nel tuo progetto di machine learning.
  4. Integrazione con Amazon CodeWhisperer – L’Editor di codice include anche funzionalità di generazione di AI alimentate da Amazon CodeWhisperer. Questa integrazione nativa ti consente di aumentare la produttività generando suggerimenti di codice all’interno dell’IDE.
  5. Integrazione con altri servizi AWS – Hai integrazione nativa con i bucket di Amazon Simple Storage Service (S3), i repository di Amazon Elastic Container Registry (ECR), Amazon RedShift, Amazon CloudWatch e altro ancora tramite il set di strumenti AWS per VS Code che semplifica lo sviluppo nel cloud.

Dettagli di architettura

Quando si avvia l’Editor di codice in SageMaker Studio, si crea una nuova applicazione che viene eseguita come contenitore in un’istanza EC2 del tipo selezionato durante la configurazione dello spazio dell’Editor di codice. SageMaker Studio si occupa dell’allocazione delle risorse sottostanti per te in un account gestito dal servizio. Il seguente diagramma rappresenta una versione semplificata dell’architettura dell’applicazione IDE dell’Editor di codice:

Per un determinato profilo utente, è possibile avviare più spazi dell’Editor di codice, con una varietà di tipi di istanza ML (inclusi quelli di elaborazione accelerata). Ogni spazio definisce la dimensione del volume EBS allegato, il tipo di istanza e il tipo di applicazione da eseguire nello spazio (ad esempio, Editor di codice). Quando gli utenti eseguono lo spazio, viene allocata l’istanza EC2 sottostante e viene istanziata un’applicazione SageMaker Studio Editor di codice, basata sull’immagine del contenitore selezionata. Il volume EBS persiste tra i cicli di avvio/arresto dell’applicazione IDE. Se gli utenti arrestano l’applicazione Editor di codice (ad esempio, per risparmiare sui costi di calcolo), le risorse di calcolo vengono interrotte ma il volume EBS viene conservato e riattaccato all’istanza al riavvio.

Tutte le applicazioni di Code Editor funzionano in modo isolato; se hai bisogno di condividere dati tra applicazioni, puoi collegare un’unità condivisa Amazon Elastic File System (EFS).

Per consentire all’IDE di Code Editor di utilizzare l’estensione preinstallata AWS Toolkit per VS Code e utilizzare i servizi integrati AWS come Amazon CodeWhisperer o fonti di dati come Amazon S3 e Amazon Redshift, devi assicurarti che:

  • La funzione di esecuzione del profilo utente di SageMaker Studio abbia le autorizzazioni appropriate per utilizzare i servizi con cui desideri lavorare.
  • Hai un modo per comunicare con quei servizi nel caso in cui tu abbia un dominio Studio di SageMaker solo VPC. Per ulteriori dettagli sui requisiti per l’uso dei servizi AWS in un dominio di Studio solo VPC, consulta Collegare i notebook di SageMaker Studio a una VPC per risorse esterne.

Panoramica della soluzione

Nelle sezioni seguenti, condivideremo come puoi sviluppare un progetto di esempio di intelligenza artificiale con Code Editor su Amazon SageMaker Studio. Eseguiremo il deployment di un modello di linguaggio di grande scala Mistral-7B (LLM) in un endpoint in tempo reale di Amazon SageMaker utilizzando un contenitore integrato di HuggingFace. In questo esempio, Code Editor può essere utilizzato da un team di ingegneri di intelligenza artificiale che ha bisogno di funzionalità avanzate dell’IDE per il debug del codice e il deployment dell’endpoint. Puoi trovare il codice di esempio in questo repository GitHub. Ti mostreremo come strutturare il tuo codice per una facile collaborazione tra i membri del team, come utilizzare il toolkit AWS per VS Code e Amazon Code Whisperer per accelerare lo sviluppo, e come eseguire il deployment del modello Mistral-7B su un endpoint di SageMaker. Vediamo insieme alcune delle comuni attività di sviluppo nell’IDE.

Interagire direttamente con i servizi AWS dall’IDE

Out of the box, Code Editor offre l’AWS Toolkit per Visual Studio Code per fornirti un’esperienza integrata con gli altri servizi AWS durante il tuo progetto. Sulla base dei permessi IAM del tuo profilo utente di SageMaker Studio, puoi interagire con i dati nei tuoi bucket Amazon S3, trovare immagini di contenitori in Amazon ECR, visualizzare i log di Amazon CloudWatch per il tuo endpoint SageMaker e sfruttare altre funzionalità per eseguire l’intero progetto di intelligenza artificiale dall’IDE.

Struttura il repository del tuo codice per una collaborazione senza sforzo

Puoi strutturare il repository del tuo progetto per massimizzare la produttività del tuo team. Ad esempio, puoi configurare un repository unico, cercando di trovare un equilibrio tra le convenzioni comuni dei progetti Python e le esigenze di collaborazione del tuo team.

Il tuo repository di codice può contenere una cartella .vscode con tutti i file necessari per standardizzare le dipendenze, le estensioni e le configurazioni tra i diversi membri del team. Consulta l’animazione seguente come riferimento.

Puoi condividere le dipendenze tra i membri del team attraverso un file requirements.txt. Puoi inoltre specificare un file config.yaml per condividere le primitive di lancio per il tuo endpoint SageMaker. La tua sessione di Code Editor condividerà le stesse dipendenze e configurazioni dei tuoi membri del team e ti consentirà di sviluppare e debuggare rapidamente il tuo codice di inferenza e l’endpoint.

Sviluppa e debugga il tuo codice nell’IDE

Nell’esempio seguente, mostriamo come è possibile sviluppare e debuggare lo script inference.py che verrà utilizzato nel tuo punto di accesso SageMaker:

Genera codice e casi di test con Amazon CodeWhisperer

Come parte del toolkit AWS nel tuo editor di codice, Amazon CodeWhisperer ti consente di costruire in modo più veloce e sicuro con un assistente di codifica AI. Può fornirti suggerimenti di codice in tempo reale, è ottimizzato per l’uso con i servizi AWS e include una scansione di sicurezza integrata. Nel nostro esempio utilizziamo Amazon CodeWhisperer per generare codice di riga intera e di funzione completa per distribuire e testare il tuo punto di accesso SageMaker

Deploy del tuo LLM in un punto di accesso SageMaker

Puoi distribuire il tuo modello in un punto di accesso SageMaker direttamente dall’IDE e monitorarne lo stato direttamente da SageMaker Studio.

Alla scala del tuo progetto di ML in un’applicazione pronta per la produzione, l’Editor di codice e il toolkit AWS ti permetteranno di gestire e monitorare le risorse dell’applicazione LLM durante la sua costruzione, distribuzione ed esecuzione.

Conclusioni

L’Editor di codice è disponibile in tutte le regioni AWS in cui è disponibile Amazon SageMaker Studio (eccetto GovCloud), e paghi solo per le risorse di calcolo e archiviazione sottostanti all’interno di SageMaker o di altri servizi AWS, in base all’utilizzo.

Per iniziare con l’Editor di codice su Amazon SageMaker Studio, puoi utilizzare il AWS Free Tier, con 250 ore di istanza ml.t3.medium su Amazon SageMaker Studio al mese per i primi 2 mesi. Per ulteriori dettagli, consulta Amazon SageMaker Pricing.