เตรียมข้อความสำหรับการฝึกโมเดล

การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

Dennis Lee

Data Engineer, Amazon

การแปลงข้อความ: เตรียมข้อมูลสำหรับโมเดล

  • สรุปข้อความในเอกสาร
  • การระบุการถอดความ
  • ชุดข้อมูล MRPC: คู่ประโยคพร้อม label

เอกสารจำนวนมากที่ต้องตรวจสอบ

การเทรน AI Model อย่างมีประสิทธิภาพด้วย 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'],
    })
})
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

การจัดการชุดข้อมูลข้อความ

  • dictionary ซ้อนกันของ train/validation/test split
  • ตัวอย่างการเข้าถึง train split:
dataset["train"]
  • เข้าถึงฟีเจอร์เฉพาะของชุดข้อมูลใน split
  • ฟีเจอร์ชุดข้อมูล MRPC: sentence1, sentence2, label
dataset["train"]["sentence1"]
  • โหลด tokenizer ที่ผ่านการฝึกมาแล้ว
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased")
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

กำหนดฟังก์ชันการเข้ารหัส

  • กำหนดฟังก์ชันสำหรับเข้ารหัสตัวอย่างในชุดข้อมูล
  • เรียก tokenizer และดึง sentence1 และ sentence2 จากตัวอย่าง
  • truncation: ตัดข้อมูลที่ยาวเกินความยาวสูงสุด (512 token)
  • padding: เติมศูนย์ในลำดับสั้นเพื่อให้ข้อมูลมีความยาวเท่ากัน
def encode(example):

return tokenizer( example["sentence1"], example["sentence2"],
truncation=True,
padding="max_length", )
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

จัดรูปแบบชื่อคอลัมน์

  • ใช้ encode กับแต่ละตัวอย่างใน train split ด้วย 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
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

การบันทึกและโหลด checkpoint

  • นำชุดข้อมูลไปยัง GPU ที่มีอยู่
dataloader = DataLoader(train_dataset, batch_size=32, shuffle=True)
dataloader = accelerator.prepare(dataloader)
  • ใช้ได้กับ PyTorch dataset (torch.utils.data.Dataset) ทุกชนิดใน DataLoader
  • บันทึกสถานะของข้อความที่ผ่านการประมวลผล เรียกว่า checkpoint
checkpoint_dir = Path("preprocess_checkpoint")
accelerator.save_state(checkpoint_dir)
  • โหลด checkpoint เมื่อต้องการฝึกต่อ
accelerator.load_state(checkpoint_dir)
การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

มาฝึกกันเลย!

การเทรน AI Model อย่างมีประสิทธิภาพด้วย PyTorch

Preparing Video For Download...