ใน การฝึกอบรมการจัดฉากกระดาษของเราสำหรับแบบจำลองภาษาหม้อแปลง เราเสนอการตั้งค่าการฝึกอบรมที่เริ่มต้นด้วยรูปแบบขนาดเล็กและเพิ่มปริมาณการคำนวณที่ใช้สำหรับการฝึกอบรมโดยการใช้ "ผู้ดำเนินการเติบโต" เพื่อเพิ่มความลึกและความกว้างของแบบจำลอง โดยการเริ่มต้นแต่ละขั้นตอนด้วยเอาต์พุตของก่อนหน้านี้กระบวนการฝึกอบรมจะใช้การคำนวณอีกครั้งอย่างมีประสิทธิภาพจากขั้นตอนก่อนหน้าและมีประสิทธิภาพมากขึ้น
เราปล่อยรหัสที่ทำซ้ำได้สำหรับผู้ดำเนินการเติบโตและสคริปต์การประเมินผลที่นี่
สคริปต์ในที่เก็บนี้ต้องใช้ Python 3.7 หรือใหม่กว่า เมื่อคุณมีสภาพแวดล้อม Python ที่เหมาะสมให้ติดตั้ง Pytorch v1.9.0 ก่อนตามคำแนะนำอย่างเป็นทางการ จากนั้นวิ่ง
pip install -r requirements.txt
ผู้ประกอบการการเติบโตของเรา (ความกว้าง/ความลึก) แต่ละรายการเป็นอินพุตสถานะการฝึกอบรมทั้งหมด (รวมถึงพารามิเตอร์โมเดลสถานะเครื่องมือเพิ่มประสิทธิภาพตารางอัตราการเรียนรู้ ฯลฯ ) และส่งออกสถานะการฝึกอบรมใหม่ที่การฝึกอบรมยังคงดำเนินต่อไป
โปรดดู scripts/cheatsheet.txt สำหรับตัวอย่างเพิ่มเติมเกี่ยวกับวิธีการใช้สคริปต์ที่เกี่ยวข้อง
ตัวอย่างเช่นคุณสามารถใช้ตัวดำเนินการกว้างด้วย:
CUDA_VISIBLE_DEVICES=0,1,2,3 python scripts/gpt_pretrain.py
--save_prefix final_gpt2_large_div2_width_check_bs512_lr0.0020_warmup3k_seqlen1024_debug
--gpu_count -1
--model gpt2
--tokenizer gpt2
--batch_size 4
--grad_accum 32
--lr 0.002006911598778545
--warmup_steps 3000
--train_steps 250000
--val_every 50
--val_batches 50
--fp16
--seqlen 1024
--log_rate 10
--num_workers 4
--size GPT2_large_div2_width
--random
--resume final_runs/final_gpt2_large_div2_width_check_bs512_lr0.0021_warmup3k_seqlen1024_debug/checkpoint-xxx.ckpt
--doubling weights
หรือตัวดำเนินการเชิงลึกด้วย:
CUDA_VISIBLE_DEVICES=0,1,2,3 python scripts/gpt_pretrain.py
--save_prefix final_gpt2_large_div2_depthx2_check_bs512_lr0.0020_warmup3k_seqlen1024_debug
--gpu_count -1
--model gpt2
--tokenizer gpt2
--batch_size 4
--grad_accum 32
--lr 0.002006911598778545
--warmup_steps 3000
--train_steps 250000
--val_every 50
--val_batches 50
--fp16
--seqlen 1024
--log_rate 10
--num_workers 4
--size GPT2_large_div2_depth
--random
--resume final_runs/final_gpt2_large_div2_depth_check_bs512_lr0.0020_warmup3k_seqlen1024_debug/checkpoint-epoch=0-step=6499.ckpt
--doubling layers
ใช้ evaluation/eval_wikitext.py หรือ evaluation/eval_lambada.py เพื่อประเมิน GPT-2 ในชุดข้อมูลที่รองรับ ตัวอย่างเช่น:
python evaluation/eval_wikitext.pyหรือใช้นักเทียบท่า:
docker build -t evaluation:latest .
docker run --rm --gpus all evaluation:latest evaluation/eval_wikitext.pyหากคุณใช้การฝึกอบรมฉากในการวิจัยของคุณหรือต้องการอ้างถึงผลลัพธ์พื้นฐานที่เผยแพร่ที่นี่โปรดใช้รายการ BIBTEX ต่อไปนี้
@misc{shen2022staged,
title={Staged Training for Transformer Language Models},
author={Sheng Shen and Pete Walsh and Kurt Keutzer and Jesse Dodge and Matthew Peters and Iz Beltagy},
year={2022},
eprint={2203.06211},
archivePrefix={arXiv},
primaryClass={cs.CL}
}