ExtremeTert是一種工具包,可加速定制數據集上BERT的預處理和填充。快速查看我們的文檔和紙張。
我們簡化了軟件包所需的依賴關係的安裝過程。可以通過單個命令source install.sh輕鬆安裝它們。不需要其他步驟!
通過定義--total_training_time=24.0 (例如24小時),可以將預處理時間簡化為基於時間的值。通過添加--fp16支持混合精度。

支持大量的預訓練數據集。用戶可以通過HuggingFace DataSet Hub輕鬆使用它們。此外,我們還支持用戶的自定義數據集。
很難驗證新優化方法在LM預訓練中的有效性。借助我們的軟件包,我們支持將自定義的優化器和調度程序集成到管道中,從而幫助優化社區的研究人員輕鬆驗證其算法。有效的優化和數據處理算法也將添加到將來的發行版中。
| 模型 | 地位 |
|---|---|
| 伯特 | ✅支持 |
| 羅伯塔(Roberta),阿爾伯特(Albert),迪伯塔(Deberta) | ?發展 |
首先,可以參考configs/bert-simple.yaml並為管道製作合適的配置,包括數據集,可用的GPU數量等。
source install.sh ; python main.py --config configs/bert-simple.yaml它將運行環境安裝,數據集預處理,預處理,填充和測試結果集合,並在output_test_translated/finetune/*/*.zip下生成.zip文件以提交膠水測試服務器提交的.zip文件。有關YAML配置文件的更多信息,請參考pipeline_config.md。
每個階段的詳細信息在以下各節中進行了說明。
運行source install.sh
dataset集目錄包含腳本,以預處理我們在實驗中使用的數據集(Wikipedia,bookcorpus)。有關完整的詳細信息,請參見專用讀書文件。
預讀腳本: run_pretraining.py
有關所有可能的預處理的參數,請參見: python run_pretraining.py -h
deepspeed run_pretraining.py
--model_type bert-mlm --tokenizer_name bert-large-uncased
--hidden_act gelu
--hidden_size 1024
--num_hidden_layers 24
--num_attention_heads 16
--intermediate_size 4096
--hidden_dropout_prob 0.1
--attention_probs_dropout_prob 0.1
--encoder_ln_mode pre-ln
--lr 1e-3
--train_batch_size 4096
--train_micro_batch_size_per_gpu 32
--lr_schedule time
--curve linear
--warmup_proportion 0.06
--gradient_clipping 0.0
--optimizer_type adamw
--weight_decay 0.01
--adam_beta1 0.9
--adam_beta2 0.98
--adam_eps 1e-6
--total_training_time 24.0
--early_exit_time_marker 24.0
--dataset_path < dataset path >
--output_dir /tmp/training-out
--print_steps 100
--num_epochs_between_checkpoints 10000
--job_name pretraining_experiment
--project_name budget-bert-pretraining
--validation_epochs 3
--validation_epochs_begin 1
--validation_epochs_end 1
--validation_begin_proportion 0.05
--validation_end_proportion 0.01
--validation_micro_batch 16
--deepspeed
--data_loader_type dist
--do_validation
--use_early_stopping
--early_stop_time 180
--early_stop_eval_loss 6
--seed 42
--fp16使用run_glue.py在膠水任務上保存的檢查點運行Finetuning。
Finetuning腳本與GinggingFace與我們的模型的添加相同。
有關所有可能的預處理的參數,請參見: python run_glue.py -h
python run_glue.py
--model_name_or_path < path to model >
--task_name MRPC
--max_seq_length 128
--output_dir /tmp/finetuning
--overwrite_output_dir
--do_train --do_eval
--evaluation_strategy steps
--per_device_train_batch_size 32 --gradient_accumulation_steps 1
--per_device_eval_batch_size 32
--learning_rate 5e-5
--weight_decay 0.01
--eval_steps 50 --evaluation_strategy steps
--max_grad_norm 1.0
--num_train_epochs 5
--lr_scheduler_type polynomial
--warmup_steps 50如果您發現此存儲庫有用,則可以將我們的論文引用為:
@inproceedings{extreme-bert,
title={ExtremeBERT: A Toolkit for Accelerating Pretraining of Customized BERT},
author={Rui Pan and Shizhe Diao and Jianlin Chen and Tong Zhang},
year={2022},
eprint={2211.17201},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2211.17201},
}
該守則的很大一部分是基於如何使用Apache 2.0許可的學術預算來培訓BERT的。
有關使用此軟件包的幫助或問題,請提交GitHub問題。
有關與此軟件包相關的個人通訊,請聯繫Rui Pan([email protected])和Shizhe Diao([email protected])。