CoolFace
Modelpublic

GOBA-AI-Labs/PrunedHub-Qwen3-30B-A3B-JP-80pct-MxMoE

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
0likes27downloads
Model Card

Qwen3-30B-A3B JP 80% MxMoE: 言語認識 Expert Pruning + 混合量子化

13.45 GB | 102/128 experts | 混合 Q5K/Q4K/Q3K | -22% サイズ削減 | GGUF | Apache 2.0

Qwen3-30B-A3B の日本語最適化圧縮バリアント。2つの技術を組み合わせて作成:

  1. 1.言語認識 Expert Pruning (80% 保持): 日本語 specialist expert を保護しながら calibration ベースで重要度スコアリング
  2. 2.MxMoE 混合量子化: 層ごとに適応的な精度 (重要層は Q5K、標準層は Q4K、冗長層は Q3K)

日本語タスク向けに最適化。英語向けは EN バリアント を参照。

特長

  • —13.45 GB: 16 GB RAM で全 GPU 常駐推論が可能
  • —22% サイズ削減 (オリジナル Q4KM: 17.28 GB)
  • —MMLU 73% (no-think) / think-ON モードも利用可能
  • —GSM8K 96% (no-think, 50Q) -- 数学推論能力を完全保持
  • —日本語品質 85% (20Q) -- 地理・文化・科学・数学・言語の 6 カテゴリ
  • —日本語 specialist expert を保護: 30 個の日本語特化 expert を優先保持
  • —約 57 tok/s (Apple M4 Pro 24GB、llama-server、Metal GPU)
  • —llama.cpp 互換 (build 7970+) および moe-stream 対応

ベンチマーク結果

ベンチマークオリジナル (17.28 GB)本モデル (13.45 GB)差分
MMLU (0-shot, 100Q, no-think)77%73%-4 pp
MMLU STEM--60.0%--
MMLU 人文科学--73.3%--
MMLU 社会科学--90.0%--
GSM8K (0-shot, 50Q, no-think)92%*96%+4 pp
日本語品質 (20Q, 6 カテゴリ)--85%--
推論速度 (M4 Pro, llama-server)約 57 tok/s約 57 tok/sほぼ同等
ファイルサイズ17.28 GB13.45 GB-22.2%

モデル仕様

項目値
ベースモデルQwen/Qwen3-30B-A3B
総パラメータ数300 億 (トークンあたり 30 億がアクティブ)
アーキテクチャTransformer + DeltaNet ハイブリッド、Sparse MoE
MoE 層数36 (+ Attention 12 層)
Expert 数/層102 (128 から削減)
ルーティングTop-8、softmax
Expert FFN 次元768 (SwiGLU)
共有 Expert FFN 次元6144
コンテキスト長32K トークン
量子化MxMoE -- Q5K (12 層) / Q4K (24 層) / Q3K (12 層)
Pruning日本語認識 calibration、80% Expert 保持
ファイルサイズ13.45 GB
ライセンスApache 2.0

使い方

llama.cpp による推論 (推奨)

bash
# llama-server で起動 (Metal GPU、約 57 tok/s)
llama-server \
  -m Qwen3-30B-A3B-pruned80-JA-MxMoE.gguf \
  --port 8090 \
  -ngl 99 \
  -c 4096

moe-stream による推論 (代替)

moe-stream でも推論可能です:

bash
git clone https://github.com/GOBA-AI-Labs/moe-stream
cd moe-stream && cargo build --release --features accelerate

./target/release/moe-stream-server \
  --model Qwen3-30B-A3B-pruned80-JA-MxMoE.gguf \
  --port 11434

OpenAI 互換 API で使用

llama-server または moe-stream-server 起動後:

python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8090/v1", api_key="none")

response = client.chat.completions.create(
    model="default",
    messages=[{"role": "user", "content": "量子もつれについて簡単に説明してください。"}],
    max_tokens=512,
    temperature=0.7,
)
print(response.choices[0].message.content)

必要環境

  • —[llama.cpp](https://github.com/ggerganov/llama.cpp) (build 7970+) または [moe-stream](https://github.com/GOBA-AI-Labs/moe-stream)
  • —16 GB RAM 以上 (モデル約 13.5 GB + KV キャッシュ)
  • —Apple Silicon (Metal) 推奨、CUDA も対応

圧縮手法

ステップ 1: 言語認識 Expert Pruning (80% 保持)

各 Expert は calibration ベースの重要度で評価:

importance(l, e) = activation_magnitude(l, e) × routing_frequency(l, e)

本モデルの特徴は日本語 specialist expert の保護です。Qwen3-30B-A3B では 128 expert 中約 30 expert が日本語に特化していることが分析で判明しており、これらの expert を優先的に保持します。

ステップ 2: MxMoE 層レベル混合量子化

Pruning 後、各層の Expert FFN テンソルを重要度に基づき異なる精度で量子化:

Tier層数量子化根拠
Tier 1 (上位 25%)12 層Q5_K重要層 -- 高い重要度とルーティング頻度
Tier 2 (中間 50%)24 層Q4_K標準精度
Tier 3 (下位 25%)12 層Q3_K冗長層 -- 低い重要度

制約:

  • —Attention 層 (12 層) は Tier 2 以上を保証
  • —日本語 specialist 多含層は Tier 2 以上を保証
  • —層重要度 = 平均 Expert 重要度 × 平均ルーティング頻度

サイズ内訳

オリジナル Q4_K_M:    17.28 GB (128 experts × 48 layers)
80% Pruning 後:       約 15.0 GB (102 experts × 48 layers)
MxMoE 適用後:         13.45 GB (Q5K/Q4K/Q3K 混合)
総削減率:              -22.2%

EN バリアントとの比較

EN モデルJP モデル (本モデル)
MMLU (no-think)70%73%
STEM57.5%60.0%
人文科学70.0%73.3%
社会科学86.7%90.0%
GSM8K (no-think)94%96%
日本語品質 (20Q)--85%
サイズ13.45 GB13.45 GB
最適化対象英語日本語 + 多言語

JP モデルが全カテゴリで EN モデルを上回っています。これは日本語 specialist expert が STEM 推論にも寄与しているためです。

Pruning Curve (Qwen3-30B-A3B)

保持率Expert 数/層サイズMMLU備考
100% (オリジナル)12817.28 GB77%ベースライン
90%11515.6 GB75%軽微な劣化
80% (本モデル)10213.45 GB*73%最適なサイズ品質トレードオフ
70%9012.3 GB51%品質急落 (cliff)
60%77--崩壊使用不可

\* MxMoE 込み。80% Pruning のみ (Q4KM 均一) では約 15.0 GB。

制限事項

  • —後処理なし: Pruning + 再量子化のみ、ファインチューニングなし
  • —STEM 感度: STEM 精度 (60.0%) は人文科学 (73.3%) や社会科学 (90.0%) より圧縮の影響を受けやすい

再現手順

Pruning スクリプトとプランは GOBA-AI-Labs/moe-prune で公開:

bash
# 1. Qwen3-30B-A3B Q4_K_M GGUF をダウンロード

# 2. 重要度スコア生成
python scripts/qwen3_30b_importance.py

# 3. 言語認識 Pruning (80% 保持、JA 保護)
python scripts/reprune_gguf.py \
  Qwen3-30B-A3B-Q4_K_M.gguf \
  Qwen3-30B-A3B-pruned80-JA.gguf \
  results/calibration/qwen3_30b_a3b/plan_80pct_ja_aware.json

# 4. MxMoE 混合量子化
llama-quantize --allow-requantize \
  --tensor-type-file results/mxmoe/tensor_types_pruned.txt \
  Qwen3-30B-A3B-pruned80-JA.gguf \
  Qwen3-30B-A3B-pruned80-JA-MxMoE.gguf q4_k_m

引用

bibtex
@misc{goba2026moe,
  title   = {Language-Aware Expert Pruning with Mixed Quantization for MoE Language Models},
  author  = {GOBA-AI-Labs},
  year    = {2026},
  url     = {https://github.com/GOBA-AI-Labs/moe-prune},
  note    = {日本語specialist expert保護 + MxMoE混合量子化で22\%サイズ削減を達成}
}

謝辞

  • —Qwen Team -- Qwen3-30B-A3B の Apache 2.0 公開
  • —llama.cpp -- GGUF フォーマットと llama-quantize ツール
  • —moe-stream -- MoE 推論エンジン

ライセンス

本モデルはベースモデル (Qwen/Qwen3-30B-A3B) の Apache 2.0 ライセンス を継承します。