Deploy e perfeziona i modelli di base in Amazon SageMaker JumpStart con due righe di codice

Sviluppa e perfeziona i modelli di base su Amazon SageMaker JumpStart con due semplici linee di codice

Siamo entusiasti di annunciare una versione semplificata del SDK Amazon SageMaker JumpStart che rende semplice creare, addestrare e distribuire modelli base. Il codice per la previsione è anche semplificato. In questo post, mostreremo come utilizzare il semplificato SDK SageMaker Jumpstart per iniziare ad utilizzare modelli base in poche righe di codice.

Per ulteriori informazioni sullo SDK SageMaker JumpStart semplificato per la distribuzione e l’addestramento, fare riferimento a Deploy a basso codice con la classe JumpStartModel e Raffinamento a basso codice con la classe JumpStartEstimator, rispettivamente.

Panoramica della soluzione

SageMaker JumpStart fornisce modelli pre-addestrati e open-source per una vasta gamma di tipi di problemi per aiutarti ad iniziare con il machine learning (ML). È possibile addestrare e raffinare incrementalmente questi modelli prima della distribuzione. JumpStart fornisce anche modelli di soluzione che configurano l’infrastruttura per casi d’uso comuni e notebook di esempio eseguibili per l’apprendimento automatico con Amazon SageMaker. È possibile accedere ai modelli pre-addestrati, ai modelli di soluzione e agli esempi attraverso la pagina di accesso di SageMaker JumpStart in Amazon SageMaker Studio o utilizzare lo SDK Python di SageMaker.

Per dimostrare le nuove funzionalità dello SDK SageMaker JumpStart, ti mostriamo come utilizzare il modello pre-addestrato Flan T5 XL di Hugging Face per la generazione di testo per compiti di sintesi. Mostriamo anche come, in poche righe di codice, puoi raffinare il modello Flan T5 XL per compiti di sintesi. È possibile utilizzare qualsiasi altro modello per la generazione di testo come Llama2, Falcon o Mistral AI.

È possibile trovare il notebook per questa soluzione utilizzando Flan T5 XL nel repository GitHub.

Distribuire ed invocare il modello

I modelli base ospitati su SageMaker JumpStart hanno ID di modello. Per l’elenco completo degli ID di modello, fare riferimento a Algoritmi integrati con tabella di modelli pre-addestrati. Per questo post, utilizziamo l’ID di modello del modello di generazione di testo Flan T5 XL. Istantiamo l’oggetto del modello e lo distribuiamo su un endpoint SageMaker chiamando il suo metodo deploy. Ecco il codice:

from sagemaker.jumpstart.model import JumpStartModel# Sostituisci con un modello più grande se necessariopretrained_model = JumpStartModel(model_id="huggingface-text2text-flan-t5-base")pretrained_predictor = pretrained_model.deploy()

Successivamente, invochiamo il modello per creare un riassunto del testo fornito utilizzando il modello Flan T5 XL. La nuova interfaccia SDK semplifica l’invocazione del modello: è sufficiente passare il testo al predittore e restituisce la risposta dal modello come un dizionario Python.

text = """Riassumi questo contenuto - Amazon Comprehend utilizza l'elaborazione del linguaggio naturale (NLP) per estrarre informazioni sul contenuto dei documenti. Sviluppa informazioni riconoscendo le entità, le frasi chiave, il linguaggio, i sentimenti e altri elementi comuni in un documento. Utilizza Amazon Comprehend per creare nuovi prodotti basati sulla comprensione della struttura dei documenti. Ad esempio, utilizzando Amazon Comprehend puoi cercare nei feed dei social network la menzione di prodotti o analizzare l'intero repository di documenti per individuare le frasi chiave. Puoi accedere alle funzionalità di analisi dei documenti di Amazon Comprehend utilizzando la console di Amazon Comprehend o le API di Amazon Comprehend. Puoi eseguire analisi in tempo reale per carichi di lavoro ridotti o avviare lavori di analisi asincroni per grandi gruppi di documenti. Puoi utilizzare i modelli pre-addestrati forniti da Amazon Comprehend o addestrare tuoi modelli personalizzati per la classificazione e il riconoscimento delle entità."""query_response = pretrained_predictor.predict(text)print(query_response["generated_text"])

Ecco il risultato del compito di sintesi:

Comprendi come funziona Amazon Comprehend. Usa Amazon Comprehend per analizzare documenti.

Aggiusta e deploya il modello

Il SDK SageMaker JumpStart fornisce una nuova classe, chiamata JumpStartEstimator, che semplifica il fine-tuning. Puoi fornire la posizione dei dati di fine-tuning e, se necessario, passare anche i set di dati di convalida. Dopo aver eseguito il fine-tuning del modello, usa il metodo deploy dell’oggetto Estimator per deployare il modello aggiustato:

from sagemaker.jumpstart.estimator import JumpStartEstimatorestimator = JumpStartEstimator(    model_id=model_id,)estimator.set_hyperparameters(instruction_tuned="True", epoch="3", max_input_length="1024")estimator.fit({"training": train_data_location})finetuned_predictor = estimator.deploy()

Personalizza le nuove classi nel SDK SageMaker

Il nuovo SDK semplifica il deploy e il fine-tuning dei modelli JumpStart impostando di default molti parametri. Hai comunque la possibilità di sovrascrivere le impostazioni predefinite e personalizzare il deploy e l’invocazione in base alle tue esigenze. Ad esempio, puoi personalizzare il formato di input, il tipo di istanza, la configurazione VPC e altro ancora per il tuo ambiente e caso d’uso.

Il codice seguente mostra come sovrascrivere il tipo di istanza durante il deploy del modello:

finetuned_predictor = estimator.deploy(instance_type='ml.g5.2xlarge')

La funzione deploy del SDK SageMaker JumpStart selezionerà automaticamente un tipo di contenuto predefinito e un serializzatore per te. Se desideri cambiare il formato del payload di input, puoi utilizzare gli oggetti serializers e content_types per esaminare le opzioni disponibili passando il model_id del modello con cui stai lavorando. Nel codice seguente, impostiamo il formato di input del payload come JSON, impostando JSONSerializer come serializer e application/json come content_type:

from sagemaker import serializersfrom sagemaker import content_typesserializer_options = serializers.retrieve_options(model_id=model_id, model_version=model_version)content_type_options = content_types.retrieve_options(model_id=model_id, model_version=model_version)pretrained_predictor.serializer = serializers.JSONSerializer()pretrained_predictor.content_type = 'application/json'

Successivamente, puoi invocare il modello Flan T5 XL per il compito di sintesi con un payload nel formato JSON. Nel codice seguente, passiamo anche i parametri di inferenza nel payload JSON per rendere le risposte più accurate:

from sagemaker import serializersinput_text= """Sintetizza questo contenuto - Amazon Comprehend utilizza l'elaborazione del linguaggio naturale (NLP) per estrarre informazioni sul contenuto dei documenti. Sviluppa informazioni riconoscendo entità, frasi chiave, linguaggio, sentimenti e altri elementi comuni in un documento. Usa Amazon Comprehend per creare nuovi prodotti basati sulla comprensione della struttura di documenti. Ad esempio, utilizzando Amazon Comprehend puoi cercare menzioni di prodotti nei feed dei social network o analizzare un intero repository di documenti per trovare frasi chiave. Puoi accedere alle funzionalità di analisi dei documenti di Amazon Comprehend utilizzando la console di Amazon Comprehend o le API di Amazon Comprehend. Puoi eseguire analisi in tempo reale per carichi di lavoro piccoli o avviare lavori di analisi asincrona per set di documenti più grandi. Puoi utilizzare i modelli pre-addestrati forniti da Amazon Comprehend, oppure puoi addestrare tuoi modelli personalizzati per la classificazione e il riconoscimento delle entità. """parameters = {    "max_length": 600,    "num_return_sequences": 1,    "top_p": 0.01,    "do_sample": False,}payload = {"text_inputs": input_text, **parameters} #JSON Input formatpretrained_predictor.serializer = serializers.JSONSerializer()query_response = pretrained_predictor.predict(payload)print(query_response["generated_texts"][0])

Se sei interessato a ulteriori modi per personalizzare gli input e altre opzioni per l’hosting e il fine-tuning, consulta la documentazione per le classi JumpStartModel e JumpStartEstimator.

Conclusioni

In questo articolo, ti abbiamo mostrato come utilizzare l’SDK semplificato SageMaker JumpStart per costruire, addestrare e deployare modelli di task e foundation in poche righe di codice. Abbiamo dimostrato le nuove classi come JumpStartModel e JumpStartEstimator utilizzando il modello Hugging Face Flan T5-XL come esempio. Puoi utilizzare uno qualsiasi degli altri modelli foundation di SageMaker JumpStart per casi d’uso come scrittura di contenuti, generazione di codice, risposta a domande, sintesi, classificazione, recupero informazioni e altro ancora. Per visualizzare l’intera lista dei modelli disponibili con SageMaker JumpStart, fai riferimento a Built-in Algorithms with pre-trained Model Table. SageMaker JumpStart supporta anche modelli specifici per task per molti tipi di problemi popolari.

Speriamo che l’interfaccia semplificata del kit di sviluppo software (SDK) SageMaker JumpStart ti aiuti a iniziare rapidamente e ti permetta di consegnare più velocemente. Non vediamo l’ora di sentire come userai il semplice SDK SageMaker JumpStart per creare applicazioni entusiasmanti!