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'
.jsonl
estensione.
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 |
|
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 sonoamazon.nova-micro-v1:0:128k
amazon.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/prod
nova-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 solodistributed_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.