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à.
Fine-tune un modello linguistico di grandi dimensioni (LLM) che utilizza istruzioni rapide
Instruction-based la messa a punto utilizza esempi etichettati per migliorare le prestazioni di un modello di base preformato su un'attività specifica. Gli esempi etichettati sono formattati come coppie di prompt, di risposta e formulati come istruzioni. Questo processo di ottimizzazione modifica i pesi del modello. Per ulteriori informazioni sulla messa a punto basata sulle istruzioni, consultate i documenti Introducing FLAN:
Fine-tuned I modelli Language Net (FLAN) utilizzano l'ottimizzazione delle istruzioni per rendere i modelli più adatti alla risoluzione di attività generali di PNL a valle. Amazon SageMaker JumpStart fornisce una serie di modelli base nella famiglia di modelli FLAN. Ad esempio, FLAN-T5 i modelli sono istruzioni ottimizzate su un'ampia gamma di attività per aumentare le prestazioni zero-shot per una varietà di casi d'uso comuni. Grazie ai dati aggiuntivi e all’ottimizzazione, i modelli basati sulle istruzioni possono essere ulteriormente adattati ad attività più specifiche che non sono state prese in considerazione durante l’addestramento preliminare.
Per eseguire il fine-tuning di un LLM su un’attività specifica utilizzando le istruzioni relative all’attività con coppie prompt-risposta:
-
Preparare le istruzioni in file JSON. Per ulteriori informazioni sul formato richiesto per i file delle coppie prompt-risposta e la struttura della cartella dei dati, consultare Preparazione e caricamento dei dati di addestramento per il fine-tuning basato su istruzioni.
-
Creare il job di addestramento per il fine-tuning. Per istruzioni, consulta Creazione di un job di addestramento per il fine-tuning basato su istruzioni.
Puoi trovare esempi end-to-end in Notebook di esempio.
Solo un sottoinsieme di modelli di JumpStart base è compatibile con la messa a punto basata sulle istruzioni. Instruction-based la messa a punto è disponibile con i seguenti modelli di base:
Nota
Alcuni modelli JumpStart base, come Llama 2 7B, richiedono l'accettazione di un contratto di licenza per l'utente finale prima della messa a punto e dell'esecuzione dell'inferenza. Per ulteriori informazioni, consulta End-user contratti di licenza.
-
Flan-T5 Base
-
Flan-T5 Grande
-
Flan-T5 Piccolo
-
Flan-T5 XL
-
Flan-T5 XXL
-
Llama 2 13B
-
Llama 2 13B Chat
-
Llama 2 13B Neuron
-
Llama 2 70B
-
Llama 2 70B Chat
-
Llama 2 7B
-
Llama 2 7B Chat
-
Llama 2 7B Neuron
-
Mistral 7B
-
RedPajama Base INCITE 3B V1
-
RedPajama INCITE Base 7B V1
-
RedPajama Tabella INCITE 3B V1
-
RedPajama INCITE Chart 7B V1
-
RedPajama INCITE Instruct 3B V1
-
RedPajama INCITE Instruct 7B V1
Preparazione e caricamento dei dati di addestramento per il fine-tuning basato su istruzioni
I dati di addestramento per il fine-tuning basato su istruzioni devono essere forniti nel formato di file di testo JSON Lines, in cui ogni riga è un dizionario. Tutti i dati di addestramento devono trovarsi in un’unica cartella. La cartella può includere più file .jsonl.
La cartella di addestramento può includere anche un file JSON del modello (template.json) che descrive i formati di input e output dei dati. Se non viene fornito alcun file di modello, viene utilizzato il seguente:
{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }
In base al file template.json, ogni elemento .jsonl dei dati di addestramento deve includere i campi {instruction}, {context} e {response}.
Se fornisci un file JSON di un modello personalizzato, utilizza i tasti "prompt" e "completion" per definire i campi obbligatori. In base al seguente file JSON di modello personalizzato, ogni elemento .jsonl dei dati di addestramento deve includere i campi {question}, {context} e {answer}.
{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }
Suddivisione dei dati per l’addestramento e i test
Facoltativamente, puoi fornire un’altra cartella contenente i dati di convalida. Questa cartella deve includere anche uno o più file .jsonl. Se non viene fornito alcun set di dati di convalida, una determinata quantità di dati di addestramento viene riservata per la convalida. È possibile modificare la percentuale di dati di addestramento utilizzati per la convalida quando si scelgono gli iperparametri per il fine-tuning del modello.
Caricamento dei dati di fine-tuning su Amazon S3
Carica i dati preparati su Amazon Simple Storage Service (Amazon S3) per utilizzarli durante la messa JumpStart a punto di un modello base. Per caricare i dati, è possibile utilizzare i seguenti comandi:
from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file ="train.jsonl"train_data_location = f"s3://{output_bucket}/dolly_dataset"S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")
Creazione di un job di addestramento per il fine-tuning basato su istruzioni
Dopo aver caricato i dati su Amazon S3, puoi perfezionare e distribuire il tuo modello di base. JumpStart Per eseguire il fine-tuning dei modelli in Studio, consulta Fine-tune un modello in Studio. Per ottimizzare il modello utilizzando l'SDK, consulta. SageMaker Python Fine-tune modelli di base disponibili al pubblico con la JumpStartEstimatorclasse
Notebook di esempio
Per ulteriori informazioni sul fine-tuning basato su istruzioni, consulta i seguenti notebook di esempio: