Förbehandla text för träning

Effektiv AI-modellträning med PyTorch

Dennis Lee

Data Engineer, Amazon

Textomvandling: förbereda data för modellträning

  • Sammanfatta text i dokument
  • Identifiering av omformuleringar
  • MRPC-dataset: meningspar med etiketter

Hög stapel av dokument som behöver granskas.

Effektiv AI-modellträning med PyTorch

Datasetstruktur

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'],
    })
})
Effektiv AI-modellträning med PyTorch

Hantera textdatasetet

  • Nästlad ordbok med tränings-/validerings-/testsplitar
  • Exempel på åtkomst till träningsspliten:
dataset["train"]
  • Åtkomst till datasetspecifika features inom en split
  • MRPC-datasetets features: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Läs in förtränad tokenizer
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Effektiv AI-modellträning med PyTorch

Definiera en kodningsfunktion

  • Definiera en funktion för att koda exempel från datasetet
  • Anropa tokenizern; extrahera sentence1 och sentence2 från träningsexemplet
  • truncation: Trunkera indata om de överstiger maxlängden (512 token)
  • padding: Fyll korta sekvenser med nollor så att alla indata har samma längd
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Effektiv AI-modellträning med PyTorch

Formatera kolumnnamn

  • Tillämpa encode på varje exempel i träningsspliten med map
train_dataset = dataset["train"].map(encode, batched=True)
  • Byt namn på label till labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Se modellkrav för kolumner i Hugging Face-dokumentationen
Effektiv AI-modellträning med PyTorch

Spara och läsa in kontrollpunkter

  • Placera datasetet på tillgängliga GPU:er
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Fungerar med alla PyTorch-dataset (torch.utils.data.Dataset) i en DataLoader
  • Spara tillståndet för förbehandlad text, kallat en kontrollpunkt
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Läs in kontrollpunkten för att återuppta träningen
accelerator.load_state(checkpoint_dir)
Effektiv AI-modellträning med PyTorch

Låt oss öva!

Effektiv AI-modellträning med PyTorch

Preparing Video For Download...