🚀 比特網絡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 許可證。