Tekst pre-processen voor training

Efficiënt AI-modellen trainen met PyTorch

Dennis Lee

Data Engineer, Amazon

Teksttransformatie: data voorbereiden voor modelbeheersing

  • Tekst in documenten samenvatten
  • Parafrase-detectie
  • MRPC-dataset: zinparen met labels

Hoge stapel documenten die moeten worden beoordeeld.

Efficiënt AI-modellen trainen met PyTorch

Dataset-structuur

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'],
    })
})
Efficiënt AI-modellen trainen met PyTorch

De tekstdataset manipuleren

  • Geneste dictionary met train-/validation-/test-splits
  • Voorbeeld: de train-split openen
dataset["train"]
  • Toegang tot features per split
  • MRPC-features: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Voorgetrainde tokenizer laden
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Efficiënt AI-modellen trainen met PyTorch

Een encodingsfunctie definiëren

  • Definieer een functie om voorbeelden te encoden
  • Roep de tokenizer aan; haal sentence1 en sentence2 uit het trainingsexemplaar
  • truncation: inputs afkappen als ze langer zijn dan max. lengte (512 tokens)
  • padding: korte reeksen opvullen met nullen zodat alle inputs even lang zijn
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Efficiënt AI-modellen trainen met PyTorch

Kolomnamen formatteren

  • Pas encode toe op elk voorbeeld in de train-split met map
train_dataset = dataset["train"].map(encode, batched=True)
  • Hernoem label naar labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Check in de Hugging Face-documentatie welke kolommen het model vereist
Efficiënt AI-modellen trainen met PyTorch

Checkpoints opslaan en laden

  • Plaats dataset op beschikbare GPU’s
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Werkt met elke PyTorch-dataset (torch.utils.data.Dataset) in een DataLoader
  • Sla de status van de voorbewerkte tekst op als checkpoint
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Laad de checkpoint om training te hervatten
accelerator.load_state(checkpoint_dir)
Efficiënt AI-modellen trainen met PyTorch

Laten we oefenen!

Efficiënt AI-modellen trainen met PyTorch

Preparing Video For Download...