项目介绍:bitnet_b1_58-xl
项目背景
bitnet_b1_58-xl项目是对BitNet b1.58论文的再现。该项目的模型使用RedPajama数据集进行训练,处理了1000亿个令牌(tokens)。训练过程中采用了特定的超参数(hyperparameters),并按照相关论文中的建议进行了两阶段学习率调整和权重衰减。所有模型都是开源的,用户可以在Hugging Face平台的1bitLLM仓库中获取。
训练与模型
项目中已经训练了多种规模的模型,包括700M、1.3B和3B参数的版本。在有更多资源的时候,计划训练更大规模的模型和处理更多的令牌。
实验结果
项目的重要成果反映在PPL(perplexity)和零样本准确率上。以下是一些不同规模模型的实验结果:
-
700百万参数模型
- BitNet b1.58(报告结果):PPL为12.87,平均准确率为44.3。
- BitNet b1.58(再现结果):PPL为12.78,平均准确率为44.5。
-
1.3十亿参数模型
- BitNet b1.58(报告结果):PPL为11.29,平均准确率为45.4。
- BitNet b1.58(再现结果):PPL为11.19,平均准确率为45.9。
-
3十亿参数模型
- BitNet b1.58(报告结果):PPL为9.91,平均准确率为50.2。
- BitNet b1.58(再现结果):PPL为9.88,平均准确率为49.6。
再现结果与报告结果的差异,可能源于训练数据处理、随机种子或其他随机因素的不同。
评价方法
项目使用论文作者提供的评估流程,具体可用以下命令进行评估:
-
安装评估工具:
pip install lm-eval==0.3.0
-
使用命令行对模型进行评估:
-
计算困惑度(PPL):
python eval_ppl.py --hf_path 1bitLLM/bitnet_b1_58-3B --seqlen 2048
-
执行任务评估:
python eval_task.py --hf_path 1bitLLM/bitnet_b1_58-3B \ --batch_size 1 \ --tasks \ --output_path result.json \ --num_fewshot 0 \ --ctx_size 2048
-
总结
bitnet_b1_58-xl项目展示了在大规模数据训练下再现论文模型性能的尝试与挑战,进一步推动了1比特大语言模型的研究及开源开发。未来,随着资源条件的改善,该项目将继续在更大规模和更多数据量的模型训练上进行探索和实践。