Preformazione continua (CPT) - 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à.

Preformazione continua (CPT)

La formazione preliminare continua (CPT) è il processo di ulteriore formazione di un modello base preformato su nuovi dati utilizzando gli stessi obiettivi non supervisionati (come la modellazione del linguaggio mascherato o la modellazione del linguaggio causale). Conserva le funzionalità linguistiche generali precedentemente apprese adattandosi a nuovi domini o cambiamenti distributivi.

Il CPT non comporta modifiche architettoniche o ottimizzazioni per specifiche attività a valle. Estende invece la capacità di comprensione del linguaggio del modello in modo consapevole del dominio.

È necessario utilizzare CPT nei seguenti scenari:

  • Disponi di dati su larga scala e senza etichetta specifici di un dominio (ad esempio medicina o finanza).

  • Desideri che il modello mantenga le funzionalità linguistiche generali migliorando al contempo i contenuti specifici del dominio.

  • Desiderate migliorare le prestazioni zero-shot e few-shot in aree specializzate senza eseguire operazioni di ottimizzazione estese e specifiche per attività.

Requisiti di formato dei dati

Si consiglia di attenersi alle seguenti caratteristiche del set di dati durante l'esecuzione del CPT:

  • Diversità: i dati devono coprire un'ampia gamma di espressioni all'interno del dominio di destinazione per evitare un adattamento eccessivo.

  • Rappresentazione: i dati devono riflettere la distribuzione che il modello dovrà affrontare durante l'inferenza.

  • Pulizia: il rumore e la ridondanza dei dati possono ridurre le prestazioni. La deduplicazione e la normalizzazione del testo migliorano l'addestramento dei modelli.

  • Scalabilità: i set di dati più grandi sono utili, ma oltre una certa soglia (ad esempio l'esecuzione di più epoche su dati limitati), aumentano i rischi di adattamento eccessivo.

I set di dati di addestramento e convalida devono essere file JSONL in formato Converse, in cui ogni riga contiene un oggetto JSON che rappresenta una conversazione con i campi e la struttura richiesti. Ecco un esempio:

{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}

Le voci di testo devono contenere contenuti fluidi e di alta qualità che rappresentino il dominio di destinazione.

Convalida del set di dati

Per convalidare il set di dati prima di inviare il lavoro CPT, verifica le seguenti condizioni:

  • Ogni riga deve contenere un oggetto JSON valido.

  • Ogni oggetto ha un campo «testo» che contiene dati di tipo stringa.

  • Non sono presenti campi diversi da «testo».

  • Il file è un'.jsonlestensione.

Tempi di allenamento

La quantità di tempo dedicata alla formazione dipende in larga misura dalla dimensione del set di dati, dal numero di istanze utilizzate e dal modello da addestrare. I tempi di formazione dovrebbero essere scalabili in modo lineare. La tabella seguente fornisce alcuni esempi di tempi di addestramento per vari modelli.

Tipo di modello

GBS

Numero di campioni nel set di dati

Numero di istanze P5

max_length value

Tempo di allenamento approssimativo in ore

Amazon NovaMicro

256

100.000

8

8,192

4

Amazon Nova Lite

256

100.000

16

8,192

4

Amazon Nova Pro

256

100.000

24

8,192

10

I set di dati di addestramento e convalida devono essere file JSONL conformi al formato operativo Amazon Bedrock Converse, in cui ogni riga contiene un oggetto JSON che rappresenta una conversazione con i campi e la struttura richiesti.

I parametri di Amazon Nova disponibili per l'ottimizzazione con CPT includono:

  • Esegui la configurazione

    • name: Un nome descrittivo per il tuo lavoro di formazione. Questo aiuta a identificare il tuo lavoro in. AWS Management Console

    • model_type: la variante del modello Amazon Nova da utilizzare. Le opzioni disponibili sono amazon.nova-micro-v1:0:128kamazon.nova-lite-v1:0:300k, oamazon.nova-pro-v1:0:300k.

    • model_name_or_path: Il percorso verso il modello base da utilizzare per l'allenamento. Le opzioni disponibili sononova-micro/prod, nova-lite/prodnova-pro/prod, o il percorso S3 per il checkpoint post-allenamento (). s3://customer-escrow-bucket-unique_id/training_run_name

    • replicas: Il numero di istanze di calcolo da utilizzare per l'addestramento distribuito. I valori disponibili variano in base al modello scelto. Amazon Nova Micro supporta 2, 4 o 8 repliche. Amazon Nova Lite supporta 4, 8, 16 o 32 repliche. Amazon Nova Pro supporta 6, 12 o 24 repliche.

    • data_s3_path: La posizione S3 del set di dati di addestramento, che è un file JSONL. Questo file deve risiedere nella stessa regione del cluster Account AWS . Tutte le sedi S3 fornite devono trovarsi nello stesso account e nella stessa regione.

    • validation_data_s3_path: (Facoltativo) La posizione S3 del set di dati di convalida, che è un file JSONL. Questo file deve risiedere nello stesso account e nella stessa regione del cluster. Tutte le sedi S3 fornite devono trovarsi nello stesso account e nella stessa regione.

    • output_s3_path: la posizione S3 in cui sono archiviati il manifesto e TensorBoard i log. Tutte le sedi S3 fornite devono trovarsi nella stessa e. Account AWS Regione AWS

  • Configurazione dell'allenamento

    • max_length: La lunghezza massima della sequenza in token. Ciò determina la dimensione della finestra contestuale per l'addestramento. Il valore massimo supportato è di 8192 token per CPT.

      Sequenze più lunghe miglioreranno l'efficienza dell'allenamento a scapito di maggiori requisiti di memoria. Ti consigliamo di abbinare il max_length parametro alla distribuzione dei dati.

  • Impostazioni del trainer

    • global_batch_size: Il numero totale di campioni di formazione elaborati insieme in un unico passaggio in avanti o all'indietro su tutti i dispositivi e i lavoratori.

      Questo valore moltiplica la dimensione del batch per dispositivo e il numero di dispositivi. Influisce sulla stabilità dell'allenamento e sulla produttività. Ti consigliamo di iniziare con un batch di dimensioni che rientri comodamente nella memoria e di ampliarlo da lì in avanti. Per i dati specifici del dominio, i batch più grandi potrebbero rendere i gradienti eccessivamente uniformi.

    • max_epochs: Il numero di passaggi completi nel set di dati di addestramento.

      In generale, i set di dati più grandi richiedono meno epoche per convergere, mentre i set di dati più piccoli richiedono più epoche per convergere. Ti consigliamo di regolare il numero di epoche in base alla dimensione dei dati per evitare un adattamento eccessivo.

  • Impostazioni del modello

    • hidden_dropout: La probabilità di eliminare gli output di stato nascosti. Aumentate questo valore di circa 0,0-0,2 per ridurre l'overfitting su set di dati più piccoli. I valori validi sono compresi tra 0 e 1.

    • attention_dropout: La probabilità di far cadere i pesi di attenzione. Questo parametro può facilitare la generalizzazione. I valori validi sono compresi tra 0 e 1.

    • ffn_dropout: La probabilità di interruzione degli output di rete feed-forward. I valori validi sono compresi tra 0 e 1.

  • Configurazione dell'ottimizzatore

    • lr: Il tasso di apprendimento, che controlla la dimensione del passo durante l'ottimizzazione. Consigliamo valori compresi tra 1e-6-1e-4 per buone prestazioni. I valori validi sono compresi tra 0 e 1.

    • name: L'algoritmo di ottimizzazione. Attualmente è supportato solo distributed_fused_adam.

    • weight_decay: La forza di regolarizzazione L2. Valori più alti (compresi tra 0,01-0,1) aumentano la regolarizzazione.

    • warmup_steps: Il numero di passaggi per aumentare gradualmente il tasso di apprendimento. Ciò migliora la stabilità dell'allenamento. I valori validi sono compresi tra 1 e 20, inclusi.

    • min_lr: Il tasso minimo di apprendimento alla fine del decadimento. I valori validi sono compresi tra 0 e 1, incluso, ma devono essere inferiori al tasso di apprendimento.

Ricetta CPT

Quella che segue è una ricetta per il CPT.

## Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path: [S3_PATH_TO_TRAIN_DATASET] validation_data_s3_path: (OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET] output_s3_path: [S3_PATH_TO_STORE_MANIFEST] ## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr
Limitazioni

Il CPT presenta le seguenti limitazioni:

  • I set di dati multimodali non sono supportati.

  • I checkpoint intermedi non vengono salvati per la valutazione e non è possibile riprendere da un checkpoint intermedio. Viene salvato solo l'ultimo checkpoint.

  • MLflow la registrazione non è supportata.