View a markdown version of this page

Fine-tune un modello linguistico di grandi dimensioni (LLM) che utilizza istruzioni rapide - 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à.

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: More generalizable Language Models with Instruction and Scaling Language Models. Fine-Tuning Instruction-Finetuned

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:

  1. 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.

  2. 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: