🚀 比特网络b1.58复现项目
本项目是对 BitNet b1.58 论文的复现。模型使用 RedPajama 数据集 进行了 100B 标记的训练。超参数、两阶段学习率和权重衰减的实现均参考了他们后续 论文 中的建议。所有模型均在 仓库 中开源。当资源允许时,我们将训练更大的模型和/或处理更多的标记。
✨ 主要特性
- 复现了 BitNet b1.58 论文中的模型。
- 使用 RedPajama 数据集进行训练。
- 实现了论文中建议的超参数和训练策略。
- 所有模型均开源。
📦 安装指南
运行评估需要安装 lm-eval
库:
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
📚 详细文档
结果
困惑度(PPL)和零样本准确率:
模型 |
PPL |
ARCe |
ARCc |
HS |
BQ |
OQ |
PQ |
WGe |
平均 |
FP16 700M(报告值) |
12.33 |
54.7 |
23.0 |
37.0 |
60.0 |
20.2 |
68.9 |
54.8 |
45.5 |
BitNet b1.58 700M(报告值) |
12.87 |
51.8 |
21.4 |
35.1 |
58.2 |
20.0 |
68.1 |
55.2 |
44.3 |
BitNet b1.58 700M(复现值) |
12.78 |
51.4 |
21.8 |
35.0 |
59.6 |
20.6 |
67.5 |
55.4 |
44.5 |
FP16 1.3B(报告值) |
11.25 |
56.9 |
23.5 |
38.5 |
59.1 |
21.6 |
70.0 |
53.9 |
46.2 |
BitNet b1.58 1.3B(报告值) |
11.29 |
54.9 |
24.2 |
37.7 |
56.7 |
19.6 |
68.8 |
55.8 |
45.4 |
BitNet b1.58 1.3B(复现值) |
11.19 |
55.8 |
23.7 |
37.6 |
59.0 |
20.2 |
69.2 |
56.0 |
45.9 |
FP16 3B(报告值) |
10.04 |
62.1 |
25.6 |
43.3 |
61.8 |
24.6 |
72.1 |
58.2 |
49.7 |
BitNet b1.58 3B(报告值) |
9.91 |
61.4 |
28.3 |
42.9 |
61.5 |
26.6 |
71.5 |
59.3 |
50.2 |
BitNet b1.58 3B(复现值) |
9.88 |
60.9 |
28.0 |
42.3 |
58.3 |
26.0 |
71.4 |
60.3 |
49.6 |
报告值和复现结果之间的差异可能是由于训练数据处理、随机种子或其他随机因素造成的。
评估
评估流程来自论文作者。以下是运行评估的命令:
困惑度评估
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
📄 许可证
本项目采用 MIT 许可证。