BERT的预训练数据与训练细节
BERT预训练使用哪些数据?数据规模和来源是什么?训练超参数(batch size、学习率、训练步数)如何设置?以及预训练的计算成本(GPU-hours)估算。
回答
我是大山
BERT-base(L=12, H=768, A=12, 110M参数):1)BooksCorpus(800M词)+ English Wikipedia(2,500M词),共约3.3B词(约16GB文本)。2)训练超参:batch size=256(每序列512token),学习率1e-4(Adam,warmup 10K步→线性衰减),训练1M步(约40个epoch),掩码概率15%。3)计算成本:BERT-base使用4×4 TPU Pod(16个TPU)训练约4天;BERT-large(340M参数)使用4×4 TPU Pod训练约4天,总计算量约128 TPU-days。数据预处理:每个序列最多两个句子,总长≤512,NSP中50%为真实相邻句子。同期的RoBERTa将数据扩展到160GB(+CC-News等),batch增大到8K,训练步数增加到500K,性能全面提升。训练数据规模和质量对LLM性能有决定性影响。