Předzpracování textu pro trénování

Efficient AI Model Training with PyTorch

Dennis Lee

Data Engineer, Amazon

Transformace textu: příprava dat pro model

  • Shrnutí textu v dokumentech
  • Identifikace parafrází
  • Datová sada MRPC: dvojice vět s označením

Vysoký stoh dokumentů čekajících na zpracování.

Efficient AI Model Training with PyTorch

Struktura datové sady

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

Práce s textovou datovou sadou

  • Vnořený slovník rozdělení train/validation/test
  • Příklad přístupu k trénovací části:
dataset["train"]
  • Přístup k vlastnostem datové sady v rámci rozdělení
  • Vlastnosti datové sady MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Načtení předtrénovaného tokenizátoru
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Efficient AI Model Training with PyTorch

Definování funkce kódování

  • Definování funkce pro kódování příkladů z datové sady
  • Volání tokenizátoru; extrakce sentence1 a sentence2 z trénovacího příkladu
  • truncation: Zkrácení vstupů delších než maximální délka (512 tokenů)
  • padding: Doplnění krátkých sekvencí nulami na stejnou délku
def encode(example):

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

Formátování názvů sloupců

  • Aplikujte encode na každý příklad v trénovací části pomocí map
train_dataset = dataset["train"].map(encode, batched=True)
  • Přejmenujte label na labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Požadavky modelu na sloupce naleznete v dokumentaci Hugging Face
Efficient AI Model Training with PyTorch

Ukládání a načítání checkpointů

  • Umístění datové sady na dostupné GPU
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funguje s libovolnou datovou sadou PyTorch (torch.utils.data.Dataset) v DataLoader
  • Uložení stavu předzpracovaného textu jako checkpoint
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Načtení checkpointu pro obnovení trénování
accelerator.load_state(checkpoint_dir)
Efficient AI Model Training with PyTorch

Pojďme procvičovat!

Efficient AI Model Training with PyTorch

Preparing Video For Download...