Barbet 是 Barbet 因果語言模型系列的 Hugging Face Transformers 實作。Hugging Face 上目前發布的 OpenFormosa/barbet-1b-base 是 final-global-barbet-iter7008-stable-1m-v11:一個約 1.119B parameters、原生支援 1,048,576-token context 的 causal base model。這個 repository 也保留原始 R2 的 256K 與 1M RoPE 外推設定,供舊版研究重現。
本專案刻意保持輕量,只包含模型程式碼、設定檔,以及檢查點轉換工具。
BarbetConfigBarbetModelBarbetForCausalLMconfigs/barbet_1b/config.jsonconfigs/barbet_1b_1m/config.json- 供 Hugging Face Hub 以 remote code 載入的檔案:
configuration_barbet.pymodeling_barbet.py
Barbet 是一個 decoder-only 的因果語言模型,因此有以下特點:
- 使用固定的
OpenFormosa/PangolinTokenizer詞彙表 - 詞嵌入與 LM head 共用權重
- 支援逐步解碼(incremental decoding)的混合式快取,生成長序列時更省記憶體
目前 Hugging Face release 與 repository 內建 presets 的關係如下:
| 設定 | 用途 | 上下文長度 |
|---|---|---|
OpenFormosa/barbet-1b-base |
iter7008 正式權重與隨附 release config |
原生 1M |
configs/barbet_1b/ |
原始 R2/legacy preset | 原生 256K |
configs/barbet_1b_1m/ |
原始 R2 的推論外推研究 preset | 1M RoPE 外推 |
正式 iter7008 實際在 exact 1M sequences 上 continued-pretrain;它不是把 legacy 256K 權重只靠 RoPE scaling 拉到 1M。完整訓練路徑、能力 gate 與限制見 OpenFormosa 官網的〈Barbet 1B Base 的原生 1M:從位置外推到可驗證的遠距資訊使用〉。
pip install -e ".[dev]"
pytest -qfrom barbet import BarbetConfig, BarbetForCausalLM
config = BarbetConfig.barbet_1b()
model = BarbetForCausalLM(config)當轉換後的 safetensors 與 remote code 檔案上傳到 Hugging Face 模型庫後,透過下列載入:
from transformers import AutoConfig, AutoModelForCausalLM
config = AutoConfig.from_pretrained("OpenFormosa/barbet-1b-base", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("OpenFormosa/barbet-1b-base", trust_remote_code=True)configs/ 底下的設定檔已經包含 remote code 載入所需的 auto_map 欄位。
在終端機可以透過以下指令把 Megatron torch_dist 檢查點轉換成 Hugging Face 格式:
python scripts/convert_torch_dist_to_hf.py \
--checkpoint /path/to/megatron/checkpoint_dir \
--output-dir /path/to/hf_export \
--force轉換器會把主要的 causal-LM 權重輸出成 model.safetensors
- 只有 CPU 時,Mamba 會使用 PyTorch 後備路徑。若要得到最接近原始模型的解碼結果,請安裝
mamba_ssm並在 CUDA 上執行。 - 正式模型雖已在 exact 1M 上完成訓練與評估,實務上執行 1M 仍需要足夠 GPU memory、context parallelism 與相容的最佳化 kernels;單張消費級 GPU 通常不可行。