Utilizza modelli di base di intelligenza artificiale generativa in modalità VPC senza connettività Internet utilizzando Amazon SageMaker JumpStart

Utilizza modelli di IA generativa in modalità VPC senza connettività Internet con Amazon SageMaker JumpStart

Con i recenti progressi nell’AI generativa, ci sono molte discussioni su come utilizzare l’AI generativa in diverse industrie per risolvere problemi specifici di business. L’AI generativa è un tipo di intelligenza artificiale in grado di creare nuovi contenuti e idee, inclusi conversazioni, storie, immagini, video e musica. Tutto ciò è supportato da modelli molto grandi che sono pre-addestrati su vaste quantità di dati e comunemente definiti come modelli di base (FMs). Questi FMs possono svolgere una vasta gamma di compiti che spaziano su più domini, come scrivere articoli per blog, generare immagini, risolvere problemi matematici, dialogare e rispondere a domande basate su un documento. La dimensione e la natura generale dei FMs li rendono diversi dai modelli di ML tradizionali, che di solito svolgono compiti specifici, come l’analisi del testo per il sentiment, la classificazione delle immagini e la previsione delle tendenze.

Mentre le organizzazioni cercano di utilizzare il potere di questi FMs, vogliono anche che le soluzioni basate su FM vengano eseguite nei propri ambienti protetti. Le organizzazioni che operano in settori pesantemente regolamentati come i servizi finanziari globali, la sanità e le scienze della vita hanno requisiti di audit e conformità per eseguire il proprio ambiente nelle loro VPC. Infatti, molte volte, anche l’accesso diretto a Internet è disabilitato in questi ambienti per evitare l’esposizione a qualsiasi traffico indesiderato, sia in entrata che in uscita.

Amazon SageMaker JumpStart è un hub di ML che offre algoritmi, modelli e soluzioni di ML. Con SageMaker JumpStart, i professionisti di ML possono scegliere tra una lista sempre crescente di FMs open source che hanno le migliori prestazioni. Fornisce anche la possibilità di distribuire questi modelli nella propria Virtual Private Cloud (VPC).

In questo post, dimostriamo come utilizzare JumpStart per distribuire un modello Flan-T5 XXL in una VPC senza connessione a Internet. Discutiamo i seguenti argomenti:

  • Come distribuire un modello di base utilizzando SageMaker JumpStart in una VPC senza accesso a Internet
  • Vantaggi della distribuzione di FMs tramite modelli JumpStart in modalità VPC
  • Modi alternativi per personalizzare la distribuzione di modelli di base tramite JumpStart

Oltre a FLAN-T5 XXL, JumpStart fornisce molti modelli di base diversi per varie attività. Per l’elenco completo, consulta la guida Introduzione ad Amazon SageMaker JumpStart.

Panoramica della soluzione

Come parte della soluzione, copriamo i seguenti passaggi:

  1. Configurare una VPC senza connessione a Internet.
  2. Configurare Amazon SageMaker Studio utilizzando la VPC che abbiamo creato.
  3. Distribuire il modello di base generativo Flan T5-XXL utilizzando JumpStart nella VPC senza accesso a Internet.

Di seguito è riportato un diagramma di architettura della soluzione.

Passiamo ora ai diversi passaggi per implementare questa soluzione.

Prerequisiti

Per seguire questo post, è necessario quanto segue:

  • Accesso a un account AWS. Per i dettagli, consulta la guida Creazione di un account AWS.
  • Un ruolo IAM (Identity and Access Management) AWS con le autorizzazioni per distribuire i modelli di AWS CloudFormation utilizzati in questa soluzione e gestire le risorse come parte della soluzione.

Configurare una VPC senza connessione a Internet

Crea uno stack CloudFormation nuovo utilizzando il modello 01_networking.yaml. Questo modello crea una nuova VPC e aggiunge due subnet private in due zone di disponibilità senza connessione a Internet. Successivamente, distribuisce i endpoint della VPC gateway per accedere ad Amazon Simple Storage Service (Amazon S3) e i endpoint della VPC di interfaccia per SageMaker e alcuni altri servizi per consentire alle risorse nella VPC di connettersi ai servizi AWS tramite AWS PrivateLink.

Fornisci un nome dello stack, ad esempio No-Internet, e completa il processo di creazione dello stack.

Questa soluzione non è altamente disponibile perché il modello CloudFormation crea endpoint della VPC di interfaccia solo in una subnet per ridurre i costi durante l’esecuzione dei passaggi in questo post.

Configurare Studio utilizzando la VPC

Crea un altro stack di CloudFormation utilizzando 02_sagemaker_studio.yaml, che crea un dominio Studio, un profilo utente Studio e risorse di supporto come ruoli IAM. Scegli un nome per lo stack; per questo post, useremo il nome SageMaker-Studio-VPC-No-Internet. Fornisci il nome dello stack VPC che hai creato in precedenza (No-Internet) come parametro CoreNetworkingStackName e lascia tutto il resto come predefinito.

Attendi che AWS CloudFormation segnali che la creazione dello stack è completata. Puoi confermare che il dominio Studio è disponibile per l’uso sulla console di SageMaker.

Per verificare che l’utente del dominio Studio non abbia accesso a Internet, avvia Studio utilizzando la console di SageMaker. Scegli File, Nuovo e Terminale, quindi prova a accedere a una risorsa Internet. Come mostrato nella seguente schermata, il terminale continuerà ad attendere la risorsa per poi scadere.

Ciò dimostra che Studio sta operando in una VPC senza accesso a Internet.

Deploy del modello di base di intelligenza artificiale generativa Flan T5-XXL utilizzando JumpStart

Possiamo distribuire questo modello sia tramite Studio che tramite API. JumpStart fornisce tutto il codice per distribuire il modello tramite un notebook SageMaker accessibile da Studio. Per questo post, mostriamo questa capacità da Studio.

  • Nella pagina di benvenuto di Studio, scegli JumpStart sotto Soluzioni predefinite e automatizzate.

  • Scegli il modello Flan-T5 XXL sotto Modelli di base.

  • Per impostazione predefinita, si apre la scheda Distribuisci. Espandi la sezione Configurazione di distribuzione per modificare l’istanza di hosting e il nome dell'endpoint, o aggiungi eventuali tag aggiuntivi. C’è anche un’opzione per cambiare la posizione del bucket S3 in cui sarà archiviato l’artefatto del modello per la creazione dell’endpoint. Per questo post, lasciamo tutto con i valori predefiniti. Prendi nota del nome dell’endpoint da utilizzare durante l’invocazione dell’endpoint per effettuare previsioni.

  • Espandi la sezione Impostazioni di sicurezza, dove puoi specificare il ruolo IAM per la creazione dell’endpoint. Puoi anche specificare le configurazioni VPC fornendo le subnet e i gruppi di sicurezza. Gli ID delle subnet e dei gruppi di sicurezza possono essere trovati nella scheda Outputs dello stack VPC sulla console di AWS CloudFormation. SageMaker JumpStart richiede almeno due subnet come parte di questa configurazione. Le subnet e i gruppi di sicurezza controllano l’accesso al contenitore del modello e viceversa.

NOTA: Indipendentemente dal fatto che il modello SageMaker JumpStart sia distribuito nella VPC o meno, il modello viene sempre eseguito in modalità di isolamento di rete, che isola il contenitore del modello in modo che non possano essere effettuate chiamate di rete in entrata o in uscita dal contenitore del modello. Poiché stiamo utilizzando una VPC, SageMaker scarica l’artefatto del modello tramite la nostra VPC specificata. L’esecuzione del contenitore del modello in isolamento di rete non impedisce al tuo endpoint SageMaker di rispondere alle richieste di inferenza. Un processo server viene eseguito insieme al contenitore del modello e gli inoltra le richieste di inferenza, ma il contenitore del modello non ha accesso alla rete.

  • Scegli Deploy per distribuire il modello. Possiamo vedere lo stato quasi in tempo reale della creazione dell’endpoint in corso. La creazione dell’endpoint potrebbe richiedere da 5 a 10 minuti per essere completata.

Osserva il valore del campo Posizione dei dati del modello in questa pagina. Tutti i modelli SageMaker JumpStart sono ospitati in un bucket S3 gestito da SageMaker (s3://jumpstart-cache-prod-{region}). Pertanto, indipendentemente dal modello scelto da JumpStart, il modello viene distribuito dal bucket S3 pubblicamente accessibile di SageMaker JumpStart e il traffico non va mai alle API del modello pubblico per scaricare il modello. Questo è il motivo per cui la creazione dell’endpoint del modello è iniziata con successo anche quando stiamo creando l’endpoint in una VPC che non ha accesso diretto a Internet.

L’artefatto del modello può anche essere copiato in qualsiasi model zoo privato o nel proprio bucket S3 per controllare e proteggere ulteriormente la posizione della fonte del modello. Puoi utilizzare il seguente comando per scaricare il modello localmente utilizzando l’interfaccia della riga di comando di AWS (AWS CLI):

aws s3 cp s3://jumpstart-cache-prod-eu-west-1/huggingface-infer/prepack/v1.0.2/infer-prepack-huggingface-text2text-flan-t5-xxl.tar.gz .
  • Dopo alcuni minuti, l’endpoint viene creato correttamente e mostra lo stato come In Service. Scegli Open Notebook nella sezione Use Endpoint from Studio. Questo è un notebook di esempio fornito come parte dell’esperienza JumpStart per testare rapidamente l’endpoint.

  • Nel notebook, scegli l’immagine come Data Science 3.0 e il kernel come Python 3. Quando il kernel è pronto, puoi eseguire le celle del notebook per effettuare previsioni sull’endpoint. Tieni presente che il notebook utilizza l’API invoke_endpoint() dell’SDK AWS per Python per effettuare previsioni. In alternativa, puoi utilizzare il metodo predict() dell’SDK Python di SageMaker per ottenere lo stesso risultato.

Questo conclude i passaggi per distribuire il modello Flan-T5 XXL utilizzando JumpStart all’interno di una VPC senza accesso a Internet.

Vantaggi della distribuzione dei modelli SageMaker JumpStart in modalità VPC

I seguenti sono alcuni dei vantaggi della distribuzione dei modelli SageMaker JumpStart in modalità VPC:

  • Poiché SageMaker JumpStart non scarica i modelli da un model zoo pubblico, può essere utilizzato anche in ambienti completamente bloccati in cui non vi è accesso a Internet
  • Poiché l’accesso di rete può essere limitato e circoscritto per i modelli SageMaker JumpStart, ciò aiuta le squadre a migliorare la postura di sicurezza dell’ambiente
  • Grazie ai confini della VPC, l’accesso all’endpoint può essere limitato anche tramite subnet e gruppi di sicurezza, il che aggiunge un ulteriore livello di sicurezza

Modi alternativi per personalizzare il deployment dei modelli di base tramite SageMaker JumpStart

In questa sezione, condividiamo alcuni modi alternativi per effettuare il deployment del modello.

Utilizza le API di SageMaker JumpStart dal tuo IDE preferito

I modelli forniti da SageMaker JumpStart non richiedono l’accesso a Studio. Puoi effettuare il deployment su endpoint di SageMaker da qualsiasi IDE, grazie alle API di JumpStart. Puoi saltare il passaggio di configurazione di Studio discusso in precedenza in questo post e utilizzare le API di JumpStart per effettuare il deployment del modello. Queste API forniscono anche argomenti in cui è possibile fornire configurazioni VPC. Le API fanno parte del SageMaker Python SDK stesso. Per ulteriori informazioni, consulta i modelli pre-addestrati.

Utilizza i notebook forniti da SageMaker JumpStart da SageMaker Studio

SageMaker JumpStart fornisce anche notebook per effettuare il deployment diretto del modello. Nella pagina dei dettagli del modello, scegli Apri notebook per aprire un notebook di esempio contenente il codice per effettuare il deployment del punto di accesso. Il notebook utilizza le API di settore di SageMaker JumpStart che consentono di elencare e filtrare i modelli, recuperare gli artefatti e effettuare il deployment e le query sui punti di accesso. È inoltre possibile modificare il codice del notebook in base ai requisiti specifici del caso d’uso.

Pulizia delle risorse

Consulta il file CLEANUP.md per trovare i passaggi dettagliati per eliminare Studio, VPC e altre risorse create come parte di questo post.

Risoluzione dei problemi

Se riscontri problemi durante la creazione degli stack di CloudFormation, consulta la risoluzione dei problemi di CloudFormation.

Conclusione

L’IA generativa alimentata da grandi modelli di linguaggio sta cambiando il modo in cui le persone acquisiscono e applicano conoscenze dalle informazioni. Tuttavia, le organizzazioni che operano in settori fortemente regolamentati devono utilizzare le capacità di IA generativa in modo tale da consentire loro di innovare più velocemente, semplificando al contempo i modelli di accesso a tali capacità.

Ti invitiamo a provare l’approccio fornito in questo post per incorporare le capacità di IA generativa nel tuo ambiente esistente, mantenendole comunque all’interno della tua VPC senza accesso a Internet. Per ulteriori letture sui modelli di base di SageMaker JumpStart, consulta i seguenti:

  • Adattamento di dominio e raffinamento dei modelli di base in Amazon SageMaker JumpStart sui dati finanziari
  • Implementazione delle pratiche di MLOps con i modelli pre-addestrati di Amazon SageMaker JumpStart