FreeToken の概要
「FreeToken」の概要についてまとめました。
1. FreeToken
「FreeToken」は、NVIDIA GPUで、VRAMに収まりきらない大型MoE(Mixture-of-Experts)モデルを高速にローカル推論するためのAI推論エンジンです。
MoEは推論時に一部の「Expert」だけを使うため、FreeTokenはExpertをGPUへキャッシュしつつ、必要に応じてCPUとGPUで協調実行します。これにより、モデル全体がVRAMに収まらない場合でも高速な推論を狙えます。
主にRTX 30 / 40 / 50シリーズなどのNVIDIA GPU向け(DGX Sparkは含まない)で、特にモデルサイズがVRAMを超えるMoEモデルで強みを発揮します。
2. FreeToken の動作確認済みモデル
FreeTokenが公式に動作確認済みとして挙げている主なモデルは、次のとおりです。
・DeepSeek-V4
・GLM-5.2 / GLM-4.7
・Qwen3.6 / Qwen3.5 MoE
・Qwen3-MoE
・gpt-oss
・Gemma-4
・MiniMax-M2.5
・Muse-Glimmer
また、同じアーキテクチャの別チェックポイントや、Qwen3.6-27BなどのDenseモデルにも対応しています。ただし、FreeTokenの強みは主にMoEモデルになります。
3. FreeToken で Qwen3.6-35B-A3B を試す
今回は次の環境で試しました。
・OS:Linux x86_64
・GPU:NVIDIA GeForce RTX 3080 Laptop GPU 16GB(80W)
・RAM:32GB
・FreeToken:0.1.2
・PyTorch:2.11.0 + CUDA 13.0
・モデル:nvidia/Qwen3.6-35B-A3B-NVFP4
FreeTokenの基本要件は、Linux x86_64、Python 3.10以降、NVIDIA GPU、r580以降のドライバ、CUDA 13です。
今回使う「Qwen3.6-35B-A3B-NVFP4」のモデルサイズは約23.5GBで、モデル全体を16GB VRAMに載せることはできません。
3-1. FreeTokenのインストール
(1) FreeTokenのクローン。
git clone git@github.com:FlashML-org/FreeToken.git
cd FreeToken(2) 仮想環境を作成して、FreeTokenをインストール。
uv venv .venv --python 3.13
uv pip install --python .venv/bin/python "freetoken[accel]"今回の環境では、初回JITコンパイル用にCUDA 13.0のコンパイラも追加しました。
uv pip install --python .venv/bin/python \
"nvidia-cuda-nvcc==13.0.88" \
"nvidia-cuda-crt==13.0.88" \
"nvidia-nvvm==13.0.88"FreeTokenでは、CUDAカーネルの初回JITコンパイルにCUDA 13 Toolkitのnvccが必要です。
3-2. モデルのダウンロード
(1) モデルのダウンロード。
モデルサイズは約23.5GBです。
mkdir -p models
.venv/bin/hf download nvidia/Qwen3.6-35B-A3B-NVFP4 \
--local-dir models/Qwen3.6-35B-A3B-NVFP43-3. サーバーの起動
(1) サーバーの起動。
16GB VRAM向けに次の設定で起動しました。
source .venv/bin/activate
export CUDA_HOME="$PWD/.venv/lib/python3.13/site-packages/nvidia/cu13"
export PATH="$CUDA_HOME/bin:$PATH"ft serve \
--model models/Qwen3.6-35B-A3B-NVFP4 \
--served-model-name Qwen3.6-35B-A3B-NVFP4 \
--host 127.0.0.1 \
--port 1919 \
--max-running-requests 1 \
--max-seq-len-override 32768 \
--max-prefill-length 4096 \
--memory-ratio 0.85 \
--attention-backend triton \
--moe-backend offload \
--nvfp4-backend triton3-3. 推論
(1) 推論の実行。
FreeTokenはOpenAI互換APIを提供しており、Anthropic互換APIにも対応しています。
curl -s http://127.0.0.1:1919/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "Qwen3.6-35B-A3B-NVFP4",
"messages": [
{"role": "user", "content": "日本の首都を一語で答えてください。"}
],
"max_tokens": 32,
"temperature": 0.2,
"reasoning_effort": "none",
"stream": false
}'東京(2) 推論シェルの実行。
FreeTokenには、ターミナルから対話できる推論シェルも用意されています。
source .venv/bin/activate
ft shell --server http://127.0.0.1:1919
4. 生成速度
256トークンの長文生成を、ウォームアップ後に3回測定しました。
1回目:70.79 tok/s
2回目:72.95 tok/s
3回目:72.81 tok/s
平均:72.18 tok/s
平均TTFT:3.09秒
FreeTokenの/v1/statsでは73.1 tok/sでした。
つまり、16GB VRAM・80WのRTX 3080 Laptop GPUで、23.5GBのQwen3.6-35B-A3B-NVFP4を約70〜73 tok/sで生成できました。
5. まとめ
FreeTokenは、すべてのLLMを高速化する推論エンジンではなく、NVIDIA GPUでVRAMを超える大型MoEを高速にローカル推論する用途に強いエンジンです。
今回のように、モデルがVRAMに収まらないMoEを手元のGPUで動かしたい場合には、かなり有力な選択肢になります。
