LoRA のみで学習する「自己回帰 → マスク拡散言語モデル」変換レシピ:ベースモデルのパラメータはすべて凍結し、アダプタは最終パラメータの 4.1–5.8% を占める。変換後のモデルは全マスク系列から並列予測を開始し、反復的にノイズ除去を行い、制御されたアテンションテストにおいて双方向コンテキストを利用できる。著者は、アーキテクチャ固有のチューニングを行わずに、Gemma 2 9B、Llama 3.1 8B、Qwen2.5 7B、Ministral 8B の4つのモデルで変換に成功し、Ministral が Mistral 系列として初めて公開報告された変換であると述べている。
いいね 8 · コードのスター数 2
理由
- コストが低い:著者によれば、変換ごとに 25,000 回のイテレーション、最大 102.4M トークンで、Google Colab GPU 1枚で 3.1–4.0 時間以内に完了する。アダプタをベースモデルにマージした後もパラメータ数は変わらない。
- 著者によれば、最強の BYOD-Gemma は9つのタスクで平均 50.6% を記録し、同一の評価フレームワーク下で LLaDA 8B Instruct は 51.9% である。また、親モデルの知識の大部分を保持している。
- 直接確認可能:4つの変換すべてに Hugging Face Space のオンラインデモがあり、Gemma / Llama などの LoRA アダプタは Hugging Face に公開済み(Ruurd/BYOD-Gemma-2-9B など)。学習および評価コードは MIT ライセンスで、Colab ノートブックでは損失曲線やノイズ除去プロセスを学習中に確認できる。
使い方
- 最速:README の Colab ノートブック notebooks/train_diffusion.ipynb を開き、モデルを選択して学習し、ステップ 6 でインタラクティブ推論ページを開く。
- ローカル:pip install -e .、cp .env.example .env で Hugging Face の読み取り専用トークンを設定し、python train.py --model llama --mode quick を実行(quick モードは 1B 級の小規模モデルと rank-128 LoRA を使用し、論文のスコアは再現しない。paper モードは rank-1024 LoRA を使用し、元のランでは 96 GB の VRAM を使用した)。
- 推論:lad-generic の load_hub_adapter_session("Ruurd/BYOD-Gemma-2-9B", …) と denoise(…) を使用する。通常の causal generate() は使用不可。python merge_adapter.py でアダプタをベースモデルにマージできる。
リスク
- 著者自身が、低ステップ数でのオープン生成の品質が主な弱点であることを明記している。128 トークンを 64 ステップで生成する場合、パープレキシティは 8.3–11.1 であり、LLaDA は 4.1、元の自己回帰モデルは 2.2–3.0 である。
- Llama、Gemma などの親モデルはゲート付きリポジトリであり、事前に利用規約に同意する必要がある。アダプタはベースモデルのライセンス(例:Gemma ライセンス)に従う。
- 評価内のコードベンチマークは生成された Python を実行するため、README では使い捨て環境の使用を推奨している。スコアは著者による報告値である。
開く · コード · Hugging Face 論文ページ