見出し画像

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-NVFP4

3-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 triton

3-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で動かしたい場合には、かなり有力な選択肢になります。



いいなと思ったら応援しよう!