Text für das Training vorverarbeiten

Effizientes KI-Modelltraining mit PyTorch

Dennis Lee

Data Engineer, Amazon

Text-Transformation: Daten für starke Modelle vorbereiten

  • Texte in Dokumenten zusammenfassen
  • Paraphrasen erkennen
  • MRPC-Dataset: Satzpaare mit Labels

Hoher Stapel zu prüfender Dokumente.

Effizientes KI-Modelltraining mit PyTorch

Dataset-Struktur

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'],
    })
})
Effizientes KI-Modelltraining mit PyTorch

Mit dem Text-Dataset arbeiten

  • Verschachteltes Dictionary mit Train/Validation/Test-Splits
  • Beispiel: Zugriff auf den Train-Split
dataset["train"]
  • Datensatzspezifische Features innerhalb eines Splits abrufen
  • MRPC-Features: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Vorgefertigten Tokenizer laden
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Effizientes KI-Modelltraining mit PyTorch

Encode-Funktion definieren

  • Funktion definieren, um Beispiele aus dem Dataset zu encoden
  • Tokenizer aufrufen; sentence1 und sentence2 aus dem Trainingsexemplar holen
  • truncation: Eingaben kürzen, wenn länger als Max-Länge (512 Tokens)
  • padding: Kürzere Sequenzen mit Nullen auffüllen, damit alle gleich lang sind
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Effizientes KI-Modelltraining mit PyTorch

Spaltennamen formatieren

  • encode mit map auf jedes Beispiel im Train-Split anwenden
train_dataset = dataset["train"].map(encode, batched=True)
  • label in labels umbenennen
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • In der Hugging Face-Doku Spaltenanforderungen des Modells nachschlagen
Effizientes KI-Modelltraining mit PyTorch

Checkpoints speichern und laden

  • Dataset auf verfügbare GPUs legen
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funktioniert mit jedem PyTorch-Dataset (torch.utils.data.Dataset) in einem DataLoader
  • Zustand des vorverarbeiteten Texts als Checkpoint speichern
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Checkpoint laden, um das Training fortzusetzen
accelerator.load_state(checkpoint_dir)
Effizientes KI-Modelltraining mit PyTorch

Lass uns üben!

Effizientes KI-Modelltraining mit PyTorch

Preparing Video For Download...