Przetwarzanie tekstu do trenowania

Efektywne trenowanie modeli AI z PyTorch

Dennis Lee

Data Engineer, Amazon

Transformacja tekstu: przygotowanie danych do modelu

  • Streszczanie tekstu w dokumentach
  • Identyfikacja parafraz
  • Zbiór danych MRPC: pary zdań z etykietami

Wysoki stos dokumentów wymagających przeglądu.

Efektywne trenowanie modeli AI z PyTorch

Struktura zbioru danych

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'],
    })
})
Efektywne trenowanie modeli AI z PyTorch

Operacje na tekstowym zbiorze danych

  • Zagnieżdżony słownik podziałów: treningowy/walidacyjny/testowy
  • Przykład dostępu do podziału treningowego:
dataset["train"]
  • Dostęp do cech specyficznych dla zbioru danych w obrębie podziału
  • Cechy zbioru MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Wczytaj wstępnie wytrenowany tokenizator
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Efektywne trenowanie modeli AI z PyTorch

Definiowanie funkcji kodującej

  • Zdefiniuj funkcję kodującą przykłady ze zbioru danych
  • Wywołaj tokenizator; wyodrębnij sentence1 i sentence2 z przykładu
  • truncation: obcina dane wejściowe przekraczające maksymalną długość (512 tokenów)
  • padding: uzupełnia krótkie sekwencje zerami, aby wszystkie dane miały tę samą długość
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Efektywne trenowanie modeli AI z PyTorch

Formatowanie nazw kolumn

  • Zastosuj encode do każdego przykładu w zbiorze treningowym za pomocą map
train_dataset = dataset["train"].map(encode, batched=True)
  • Zmień nazwę label na labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Sprawdź wymagania modelu dotyczące kolumn w dokumentacji Hugging Face
Efektywne trenowanie modeli AI z PyTorch

Zapisywanie i wczytywanie punktów kontrolnych

  • Umieść zbiór danych na dostępnych GPU
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Działa z każdym zbiorem danych PyTorch (torch.utils.data.Dataset) w DataLoader
  • Zapisz stan przetworzonego tekstu – tzw. punkt kontrolny (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Wczytaj punkt kontrolny, aby wznowić trenowanie
accelerator.load_state(checkpoint_dir)
Efektywne trenowanie modeli AI z PyTorch

Czas na ćwiczenia!

Efektywne trenowanie modeli AI z PyTorch

Preparing Video For Download...