Preprocesarea textului pentru antrenare

Antrenament eficient al modelelor AI cu PyTorch

Dennis Lee

Data Engineer, Amazon

Transformarea textului: pregătirea datelor pentru model

  • Rezumarea textului din documente
  • Identificarea parafrazelor
  • Setul de date MRPC: perechi de propoziții cu etichete

Teanc înalt de documente care trebuie revizuite.

Antrenament eficient al modelelor AI cu PyTorch

Structura setului de date

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'],
    })
})
Antrenament eficient al modelelor AI cu PyTorch

Manipularea setului de date text

  • Dicționar imbricat cu partițiile train/validation/test
  • Exemplu de accesare a partiției de antrenare:
dataset["train"]
  • Accesați caracteristicile specifice setului de date dintr-o partiție
  • Caracteristicile MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Încărcați tokenizer-ul pre-antrenat
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Antrenament eficient al modelelor AI cu PyTorch

Definirea unei funcții de codificare

  • Definiți o funcție pentru codificarea exemplelor din set
  • Apelați tokenizer-ul; extrageți sentence1 și sentence2 din exemplu
  • truncation: Trunchiați intrările care depășesc lungimea maximă (512 token-uri)
  • padding: Completați secvențele scurte cu zerouri pentru lungime uniformă
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Antrenament eficient al modelelor AI cu PyTorch

Formatarea numelor de coloane

  • Aplicați encode pe fiecare exemplu din setul de antrenare folosind map
train_dataset = dataset["train"].map(encode, batched=True)
  • Redenumiți label în labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Consultați documentația Hugging Face pentru cerințele modelului privind coloanele
Antrenament eficient al modelelor AI cu PyTorch

Salvarea și încărcarea checkpoint-urilor

  • Plasați setul de date pe GPU-urile disponibile
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Funcționează cu orice set de date PyTorch (torch.utils.data.Dataset) într-un DataLoader
  • Salvați starea textului preprocesат, numită checkpoint
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Încărcați checkpoint-ul pentru a relua antrenarea
accelerator.load_state(checkpoint_dir)
Antrenament eficient al modelelor AI cu PyTorch

Să exersăm!

Antrenament eficient al modelelor AI cu PyTorch

Preparing Video For Download...