Попередня обробка тексту для тренування

Ефективне тренування моделей ШІ з PyTorch

Dennis Lee

Data Engineer, Amazon

Трансформація тексту: підготовка даних для роботи з моделлю

  • Резюме текстів у документах
  • Визначення перефразувань
  • Набір MRPC: пари речень з мітками

Висока стопка документів, які треба переглянути.

Ефективне тренування моделей ШІ з PyTorch

Структура датасету

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'],
    })
})
Ефективне тренування моделей ШІ з PyTorch

Робота з текстовим датасетом

  • Вкладений словник сплітів train/validation/test
  • Приклад доступу до train-спліту:
dataset["train"]
  • Доступ до специфічних для датасету фіч у спліті
  • Фічі MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Завантажте попередньо навчений токенайзер
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Ефективне тренування моделей ШІ з PyTorch

Визначення функції кодування

  • Визначте функцію кодування прикладів з датасету
  • Викличте токенайзер; отримайте sentence1 і sentence2 з тренувального прикладу
  • truncation: обрізає вхід, якщо довший за макс. довжину (512 токенів)
  • padding: доповнює короткі послідовності нулями до однакової довжини
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Ефективне тренування моделей ШІ з PyTorch

Форматування назв колонок

  • Застосуйте encode до кожного прикладу в train-спліті через map
train_dataset = dataset["train"].map(encode, batched=True)
  • Перейменуйте label на labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Перевірте вимоги моделі до колонок у документації Hugging Face
Ефективне тренування моделей ШІ з PyTorch

Збереження й завантаження checkpoint-ів

  • Розмістіть датасет на доступних GPU
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Працює з будь-яким датасетом PyTorch (torch.utils.data.Dataset) у DataLoader
  • Збережіть стан попередньо обробленого тексту (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Завантажте checkpoint, коли потрібно відновити тренування
accelerator.load_state(checkpoint_dir)
Ефективне тренування моделей ШІ з PyTorch

Перейдемо до практики!

Ефективне тренування моделей ШІ з PyTorch

Preparing Video For Download...