Tiền xử lý văn bản để huấn luyện

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Dennis Lee

Data Engineer, Amazon

Biến đổi văn bản: chuẩn bị dữ liệu để tối ưu mô hình

  • Tóm tắt văn bản trong tài liệu
  • Nhận diện diễn đạt lại (paraphrase)
  • Dataset MRPC: cặp câu kèm nhãn

Chồng tài liệu cao cần được rà soát.

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Cấu trúc dataset

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'],
    })
})
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Thao tác với dataset văn bản

  • Từ điển lồng nhau của các tập train/validation/test
  • Ví dụ truy cập tập train:
dataset["train"]
  • Truy cập các đặc trưng riêng của dataset trong một split
  • Đặc trưng MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • Tải tokenizer tiền huấn luyện
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Định nghĩa hàm mã hoá

  • Định nghĩa hàm mã hoá (encode) các ví dụ trong dataset
  • Gọi tokenizer; lấy sentence1sentence2 từ ví dụ train
  • truncation: Cắt ngắn nếu vượt quá độ dài tối đa (512 token)
  • padding: Đệm 0 cho chuỗi ngắn để đồng độ dài đầu vào
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Định dạng tên cột

  • Áp dụng encode cho từng ví dụ ở tập train bằng map
train_dataset = dataset["train"].map(encode, batched=True)
  • Đổi label thành labels
train_dataset = train_dataset.map(
    lambda examples: {"labels": examples["label"]}, batched=True
)
  • Tra cứu yêu cầu cột của mô hình trong tài liệu Hugging Face
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Lưu và tải checkpoint

  • Đưa dataset lên các GPU sẵn có
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • Hoạt động với mọi dataset PyTorch (torch.utils.data.Dataset) trong DataLoader
  • Lưu trạng thái văn bản đã tiền xử lý (checkpoint)
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • Tải checkpoint khi cần tiếp tục huấn luyện
accelerator.load_state(checkpoint_dir)
Huấn luyện Mô hình AI Hiệu quả với PyTorch

Ayo berlatih!

Huấn luyện Mô hình AI Hiệu quả với PyTorch

Preparing Video For Download...