Preprocessa il testo per l’addestramento

Efficient AI Model Training with PyTorch

Dennis Lee

Data Engineer, Amazon

Trasformazione del testo: preparare i dati per ottimizzare il modello

  • Riassumere testi in documenti
  • Identificare parafrasi
  • Dataset MRPC: coppie di frasi con etichette

Alta pila di documenti da rivedere.

Efficient AI Model Training with PyTorch

Struttura del dataset

from datasets import load_dataset
dataset = load_dataset("glue", "mrpc")
print(dataset)
DatasetDict({
    train: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    validation: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
    test: Dataset({
        features: ['sentence1', 'sentence2', 'label', 'idx'],
    })
})
Efficient AI Model Training with PyTorch

Manipolare il dataset di testo

  • Dizionario annidato con split train/validation/test
  • Esempio di accesso allo split train:
dataset["train"]
  • Accedi alle feature specifiche dello split
  • Feature MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Carica il tokenizer pre-addestrato
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Efficient AI Model Training with PyTorch

Definire una funzione di encoding

  • Definisci una funzione per codificare gli esempi del dataset
  • Chiama il tokenizer; estrai sentence1 e sentence2 dall’esempio di training
  • truncation: tronca gli input oltre la lunghezza max (512 token)
  • padding: riempi le sequenze corte con zeri per avere lunghezze uguali
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Efficient AI Model Training with PyTorch

Formatta i nomi delle colonne

  • Applica encode a ogni esempio dello split train con map
train_dataset = dataset["train"].map(encode, batched=True)
  • Rinomina label in labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Controlla nei documenti Hugging Face i requisiti delle colonne per il modello
Efficient AI Model Training with PyTorch

Salvataggio e caricamento dei checkpoint

  • Posiziona il dataset sulle GPU disponibili
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funziona con qualsiasi dataset PyTorch (torch.utils.data.Dataset) in un DataLoader
  • Salva lo stato del testo preprocessato (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Carica il checkpoint per riprendere l’addestramento
accelerator.load_state(checkpoint_dir)
Efficient AI Model Training with PyTorch

Vamos praticar!

Efficient AI Model Training with PyTorch

Preparing Video For Download...