우리의 논문에서 변압기 언어 모델에 대한 교육 훈련 에서, 우리는 작은 모델로 시작하는 단계 교육 설정을 제안하고 모델 깊이와 폭을 증가시키기 위해 "성장 연산자"를 적용하여 훈련에 사용되는 컴퓨팅의 양을 점진적으로 증가시킵니다. 이전 단계의 출력으로 각 단계를 초기화함으로써 훈련 프로세스는 이전 단계에서 컴퓨팅을 효과적으로 재사용하고보다 효율적으로됩니다.
우리는 여기에서 성장 운영자 및 평가 스크립트에 대한 재현 가능한 코드를 공개합니다.
이 저장소의 스크립트에는 Python 3.7 이상이 필요합니다. 적절한 파이썬 환경이 있으면 먼저 공식 지침에 따라 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
지원되는 데이터 세트 중 하나에서 gpt-2를 평가하려면 evaluation/eval_wikitext.py 또는 evaluation/eval_lambada.py 사용하십시오. 예를 들어:
python evaluation/eval_wikitext.py또는 Docker 사용 :
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}
}