Crea un lavoro AutoML per ottimizzare i modelli di generazione di testo utilizzando il API - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un lavoro AutoML per ottimizzare i modelli di generazione di testo utilizzando il API

I modelli linguistici di grandi dimensioni (LLMs) eccellono in molteplici attività generative, tra cui la generazione di testo, il riepilogo, il completamento, la risposta alle domande e altro ancora. Le loro prestazioni possono essere attribuite alle loro dimensioni significative e al vasto addestramento su diversi set di dati e varie attività. Tuttavia, domini specifici, come l'assistenza sanitaria e i servizi finanziari, possono richiedere un'ottimizzazione personalizzata per adattarsi a dati e casi d'uso univoci. Adattando la loro formazione al loro settore specifico, LLMs possono migliorare le loro prestazioni e fornire risultati più accurati per applicazioni mirate.

Autopilot offre la capacità di mettere a punto una selezione di modelli di testo generativi preaddestrati. In particolare, Autopilot supporta la messa a punto basata su istruzioni di una selezione di modelli di linguaggio di grandi dimensioni per uso generico () basati su. LLMs JumpStart

Nota

I modelli di generazione di testo che supportano la regolazione fine in Autopilot sono attualmente accessibili esclusivamente nelle regioni supportate da Canvas. SageMaker Consulta la documentazione di SageMaker Canvas per l'elenco completo delle regioni supportate.

L'ottimizzazione di un modello già addestrato richiede un set di dati specifico di istruzioni chiare che guidino il modello su come generare risultati o comportarsi per quell'attività. Il modello impara dal set di dati, regolandone i parametri in base alle istruzioni fornite. La messa a punto basata sulle istruzioni implica l'utilizzo di esempi etichettati formattati come coppie di pronta risposta e formulati come istruzioni. Per ulteriori informazioni sulla messa a punto, vedere Ottimizzazione di un modello di base.

Le seguenti linee guida descrivono il processo di creazione di un lavoro Amazon SageMaker Autopilot come esperimento pilota per ottimizzare la generazione di testo utilizzando AI Reference. LLMs SageMaker API

Nota

Attività come la classificazione di testo e immagini, la previsione di serie temporali e la messa a punto di modelli linguistici di grandi dimensioni sono disponibili esclusivamente tramite la versione 2 di AutoML. REST API Se la tua lingua preferita è Python, puoi fare riferimento AWS SDK for Python (Boto3)o direttamente all'MLV2oggetto Auto di Amazon Python SageMaker . SDK

Gli utenti che preferiscono la comodità di un'interfaccia utente possono utilizzare Amazon SageMaker Canvas per accedere a modelli pre-addestrati e modelli di base di intelligenza artificiale generativa o creare modelli personalizzati su misura per testi specifici, classificazione delle immagini, esigenze di previsione o intelligenza artificiale generativa.

Per creare un esperimento Autopilot a livello di codice per la messa a punto di unLLM, puoi chiamarlo in CreateAutoMLJobV2APIqualsiasi lingua supportata da Amazon Autopilot o dal. SageMaker AWS CLI

Per informazioni su come questa API azione si traduce in una funzione nella lingua di tua scelta, consulta la sezione Vedi anche di e scegli un. CreateAutoMLJobV2 SDK Ad esempio, per gli utenti di Python, vedi la sintassi completa della richiesta di create_auto_ml_job_v2 in AWS SDK for Python (Boto3).

Nota

Autopilot perfeziona modelli linguistici di grandi dimensioni senza richiedere l'addestramento e la valutazione di più candidati. Invece, utilizzando i tuoi set di dati, Autopilot perfeziona direttamente il modello di destinazione per migliorare un parametro oggettivo predefinito, la perdita di entropia incrociata. L'ottimizzazione dei modelli linguistici in Autopilot non richiede l'impostazione del campo AutoMLJobObjective.

Una volta ottimizzato, LLM è possibile valutarne le prestazioni accedendo a vari ROUGE segna tutti i punteggi BestCandidate quando si effettua una chiamata. DescribeAutoMLJobV2 API Il modello fornisce anche informazioni sul suo addestramento e la sua convalida, sulla perdita e perplessità. Per un elenco completo dei parametri di valutazione della qualità del testo generato dai modelli messi a punto, consulta Parametri per l'ottimizzazione di modelli linguistici di grandi dimensioni in Autopilot.

Prerequisiti

Prima di utilizzare Autopilot per creare un esperimento di ottimizzazione dell' SageMaker intelligenza artificiale, assicurati di seguire i seguenti passaggi:

  • (Facoltativo) Scegli il modello preaddestrato che desideri perfezionare.

    Per l'elenco dei modelli preaddestrati disponibili per la messa a punto in SageMaker Amazon Autopilot, consulta. Modelli linguistici di grandi dimensioni supportati per l'ottimizzazione La selezione di un modello non è obbligatoria; se non viene specificato alcun modello, Autopilot passa automaticamente al modello Falcon7. BInstruct

  • Creazione di un set di istruzioni. Vedi Tipi di file del set di dati e formato dei dati di input per saperne di più sui requisiti di formato per il tuo set di dati basato sulle istruzioni.

  • Inserisci il tuo set di dati in un bucket Amazon S3.

  • Concedi l'accesso completo al bucket Amazon S3 contenente i dati di input per il ruolo di esecuzione dell' SageMaker IA utilizzato per eseguire l'esperimento.

    • Per informazioni sul recupero del ruolo di esecuzione dell' SageMaker IA, consulta. Assumi il tuo ruolo di esecuzione

    • Per informazioni sulla concessione delle autorizzazioni per il ruolo di esecuzione SageMaker AI per accedere a uno o più bucket specifici in Amazon S3, consulta Aggiungere ulteriori autorizzazioni Amazon S3 a un ruolo di esecuzione AI in. SageMaker Crea ruolo di esecuzione

  • Inoltre, dovresti fornire al tuo ruolo di esecuzione le autorizzazioni necessarie per accedere al bucket di storage predefinito utilizzato da Amazon S3. JumpStart Questo accesso è necessario per archiviare e recuperare gli artefatti del modello pre-addestrati in. JumpStart Per concedere l'accesso a questo bucket Amazon S3, devi creare una nuova policy personalizzata in linea sul tuo ruolo di esecuzione.

    Ecco un esempio di policy che puoi usare nel tuo JSON editor per configurare i lavori di fine-tuning di AutoML in: us-west-2

    JumpStarti nomi dei bucket seguono uno schema predeterminato che dipende da. Regioni AWS Di conseguenza è necessario modificare il nome del bucket.

    { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-us-west-2", "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*" ] }

Fatto ciò, puoi utilizzare il ruolo di esecuzione ARN di questo ruolo di esecuzione nelle richieste API Autopilot.

Parametri obbligatori

Quando chiamate CreateAutoMLJobV2 per creare un esperimento Autopilot per la messa a punto, dovete fornire i LLM seguenti valori:

  • Un AutoMLJobName per specificare il nome del processo. Il nome deve essere di tipo string con una lunghezza minima di 1 carattere e una lunghezza massima di 32.

  • Almeno un AutoMLJobChannel del tipo training incluso in AutoMLJobInputDataConfig. Questo canale specifica il nome del bucket Amazon S3 in cui è archiviato il set di dati per l'ottimizzazione dei processi. Hai la possibilità di definire un canale validation. Se non viene fornito alcun canale di convalida e un ValidationFraction è configurato in AutoMLDataSplitConfig, questa frazione viene utilizzata per dividere casualmente il set di dati di addestramento in set di addestramento e convalida. Inoltre, è possibile specificare il tipo di contenuto (CSVo file Parquet) per il set di dati.

  • Un AutoMLProblemTypeConfig tipo TextGenerationJobConfig per configurare le impostazioni del tuo lavoro di formazione.

    In particolare, è possibile specificare il nome del modello base da ottimizzare nel campo BaseModelName. Per l'elenco dei modelli preaddestrati disponibili per la messa a punto in SageMaker Amazon Autopilot, consulta. Modelli linguistici di grandi dimensioni supportati per l'ottimizzazione

  • Un OutputDataConfig per specificare il percorso di output di Amazon S3 per archiviare gli artefatti del processo AutoML.

  • A RoleArn per specificare il ruolo utilizzato per accedere ai ARN tuoi dati.

Di seguito è riportato un esempio del formato di richiesta completo utilizzato quando si effettua una API chiamata a CreateAutoMLJobV2 per la messa a punto di un modello ()Falcon7BInstruct.

{ "AutoMLJobName": "<job_name>", "AutoMLJobInputDataConfig": [ { "ChannelType": "training", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<bucket_name>/<input_data>.csv" } } } ], "OutputDataConfig": { "S3OutputPath": "s3://<bucket_name>/output", "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>" }, "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>", "AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7BInstruct" } } }

Tutti gli altri parametri sono facoltativi.

Parametri facoltativi

Le sezioni seguenti forniscono dettagli su alcuni parametri facoltativi che è possibile passare al processo AutoML di ottimizzazione.

È possibile fornire il proprio set di dati di convalida e un rapporto di suddivisione dei dati personalizzato oppure lasciare che Autopilot suddivida automaticamente il set di dati.

Ogni AutoMLJobChanneloggetto (vedi il parametro richiesto A utoMLJobInputDataConfig) ha un valoreChannelType, che può essere impostato su uno training o più validation valori che specificano come utilizzare i dati durante la creazione di un modello di apprendimento automatico.

È necessario fornire almeno un'origine dati ed è consentito un massimo di due origine dati: una per i dati di addestramento e una per i dati di convalida. Il modo in cui suddividere i dati in set di dati di addestramento e convalida dipende dalla presenza di una o due origine dati.

  • Se disponi di una origine dati, ChannelType è impostato su training come impostazione predefinita e deve avere questo valore.

    • Se il valore ValidationFraction in AutoMLDataSplitConfig non è impostato, per impostazione predefinita viene utilizzato per la convalida lo 0,2 (20%) dei dati di questa origine.

    • Se ValidationFraction è impostato su un valore compreso tra 0 e 1, il set di dati viene suddiviso in base al valore specificato, dove il valore specifica la frazione del set di dati utilizzata per la convalida.

  • Se si dispone di due origini dati, per impostazione predefinita il ChannelType di uno degli oggetti AutoMLJobChannel deve essere impostato su training. Il ChannelType dell'altra origine dati deve essere impostato su validation. Le due fonti di dati devono avere lo stesso formato, CSV o Parquet, e lo stesso schema. In questo caso non è necessario impostare ValidationFraction perché tutti i dati di ciascuna origine vengono utilizzati per l'addestramento o la convalida. L'impostazione di questo valore causa un errore.

Con Autopilot, puoi distribuire automaticamente il tuo modello ottimizzato su un endpoint. Per abilitare l'implementazione automatica sul tuo modello ottimizzato, includi un ModelDeployConfig nella richiesta di processo di AutoML. Ciò consente l'implementazione del modello ottimizzato su un endpoint di intelligenza artificiale. SageMaker Di seguito sono riportate le configurazioni disponibili per la personalizzazione.

Per i modelli che richiedono l'accettazione di un contratto di licenza con l'utente finale prima della messa a punto, è possibile accettarlo impostando l'EULAattributo to in durante la AcceptEula configurazione. ModelAccessConfig True TextGenerationJobConfig AutoMLProblemTypeConfig

È possibile ottimizzare il processo di apprendimento del modello di generazione di testo impostando i valori degli iperparametri nell'TextGenerationHyperParametersattributo di TextGenerationJobConfig durante la configurazione del. AutoMLProblemTypeConfig

Autopilot consente l'impostazione di quattro iperparametri comuni per tutti i modelli.

  • epochCount: Il suo valore deve essere una stringa contenente un valore intero compreso nell'intervallo di to. 1 10

  • batchSize: Il suo valore deve essere una stringa contenente un valore intero compreso nell'intervallo di 1 to. 64

  • learningRate: Il suo valore deve essere una stringa contenente un valore a virgola mobile compreso nell'intervallo di to. 0 1

  • learningRateWarmupSteps: Il suo valore deve essere una stringa contenente un valore intero compreso nell'intervallo di to. 0 250

Per ulteriori dettagli su ciascun iperparametro, vedere. Iperparametri per ottimizzare il processo di apprendimento dei modelli di generazione di testo

L'JSONesempio seguente mostra un TextGenerationHyperParameters campo passato al TextGenerationJobConfig punto in cui sono configurati tutti e quattro gli iperparametri.

"AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7B", "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"} } }