Fine-tuning di un modello linguistico di grandi dimensioni (LLM) utilizzando l’adattamento del dominio - 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-tuning di un modello linguistico di grandi dimensioni (LLM) utilizzando l’adattamento del dominio

L’ottimizzazione dell'adattamento del dominio consente di sfruttare modelli di fondazione preformati e adattarli ad attività specifiche utilizzando dati limitati specifici del dominio. Se un intervento di progettazione di prompt non consente una personalizzazione sufficiente, è possibile utilizzare l'ottimizzazione dell'adattamento del dominio per far funzionare il modello con un linguaggio specifico del dominio, ad esempio gergo di settore, termini tecnici o altri dati specializzati. Questo processo di fine-tuning modifica i pesi del modello.

Per eseguire il fine-tuning del modello su un set di dati specifico del dominio:

  1. Preparare i dati di addestramento. Per istruzioni, consulta Preparazione e caricamento dei dati di addestramento per il fine-tuning basato sul dominio.

  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 in. end-to-end Notebook di esempio

L’ottimizzazione dell'adattamento del dominio è disponibile con i seguenti modelli di fondazione:

Nota

Alcuni modelli JumpStart base, come Llama 2 7B, richiedono l'accettazione di un contratto di licenza con l'utente finale prima della messa a punto e dell'esecuzione dell'inferenza. Per ulteriori informazioni, consulta Contratti di licenza con l'utente finale.

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • GPT-2 XL

  • GPT-J 6B

  • GPT-Neo 1.3B

  • GPT-Neo 125M

  • GPT-NEO 2.7B

  • 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

Preparazione e caricamento dei dati di addestramento per il fine-tuning basato sul dominio

I dati di addestramento per il fine-tuning basato sul dominio possono essere forniti in formato di file CSV, JSON o TXT. Tutti i dati di addestramento devono trovarsi in un’unica cartella.

I dati di addestramento sono ricavati dalla colonna Testo per i file di dati di addestramento CSV o JSON. Se nessuna colonna è etichettata come Testo, i dati di addestramento vengono estratti dalla prima colonna per i file di dati di addestramento CSV o JSON.

Di seguito è riportato un esempio di corpo di un file TXT da utilizzare per il fine-tuning:

This report includes estimates, projections, statements relating to our business plans, objectives, and expected operating results that are “forward- looking statements” within the meaning of the Private Securities Litigation Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E of ....

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 un file CSV, JSON o TXT. 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.txt" train_data_location = f"s3://{output_bucket}/training_folder" 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-tuning di un modello in Studio. Per ottimizzare il modello utilizzando l'SDK, consulta. SageMaker Python Fine-tuning dei modelli di fondazione disponibili al pubblico con la classe JumpStartEstimator

Notebook di esempio

Per ulteriori informazioni sul fine-tuning basato sul dominio, consulta i seguenti notebook di esempio: