- FreeToken app は、ローカルのMixture-of-Expertsモデルを実行するためのデスクトップインターフェースを提供します。
- 最適な用途:アクティブなエキスパートの容量が、利用可能なGPU VRAMを超えるモデル。
- 中核となる利点:適応型CPU–GPUスケジューリング、エキスパートキャッシュ、バックグラウンドストリーミング。
- インストール方法:WindowsまたはLinuxのデスクトップアプリを使用するか、
uvでCLIをインストールします。 - 重要な制限:VRAMに余裕を持って収まるモデルは、よりシンプルなランタイムのほうが高速に動作する場合があります。
FreeToken appの概要
FreeToken app は、コンシューマー向けハードウェアで大規模なオープンウェイトMixture-of-Expertsモデルを実行するために設計された、ローカル推論インターフェースおよびエンジンです。モデル全体をGPUメモリに収める必要がある従来の方式とは異なり、GPU、CPU、システムRAM、PCIe接続を1つの柔軟な実行プラットフォームとして連携させます。
FreeTokenは、モデルが利用可能なVRAMには大きすぎる一方で、コンピューターの他のリソースを使えば実用的に動作する場合に特に有効です。デスクトップアプリケーションでは、互換性のあるモデルの確認、会話の開始、エンジン設定の調整をグラフィカルに行えます。コマンドライン版は、開発やベンチマークのワークフローに適した、より細かな制御を提供します。
動画のハイライト:
- FreeTokenは、特定のMoEワークロードにおいて、Ollamaやllama.cppなどのツールに代わる選択肢として位置付けられています。
- エンジンは、モデルのレイヤーを1つのデバイスに恒久的に割り当てるのではなく、GPUエキスパートキャッシュを使用します。
- Q-starスケジューリングは、不足しているエキスパートをGPUへ転送するか、CPU上で実行するかを決定します。
- ダブルバッファリングされたprefillにより、計算とエキスパート転送をオーバーラップさせます。
- パフォーマンスは、VRAM容量、PCIe帯域幅、RAM速度、モデル形式に大きく左右されます。
このプロジェクトは、Apache License 2.0のオープンソースプロジェクトとして維持されています。公式ドキュメントとインストールリソースは、FreeToken GitHubリポジトリから利用できます。
| 項目 | FreeTokenの方式 | 重要な理由 |
|---|---|---|
| モデルタイプ | Mixture-of-Expertsモデル | 総パラメーター数が大きいスパースモデルを対象とする |
| メモリ戦略 | GPUキャッシュとシステムRAM | すべてのエキスパートをVRAMに常駐させる必要をなくす |
| スケジューリング | 帯域幅適応型CPU–GPU実行 | ローカルマシンに合わせて調整する |
| インターフェース | デスクトップアプリとCLI | ビジュアルなワークフローと開発ワークフローの両方に対応する |
| ライセンス | Apache License 2.0 | ライセンス条件のもとで幅広いオープンソース利用を許可する |
モデルの概要を視覚的に確認したい場合は、まずデスクトップアプリから始めてください。再現可能なコマンド、プロジェクト統合、詳細なテストが必要な場合はCLIを使用します。
FreeTokenが大規模MoEモデルを処理する仕組み
Mixture-of-Expertsモデルには、数千億規模の総パラメーターが含まれていながら、各トークンではその一部だけをアクティブ化するものがあります。このスパース性により計算量は削減できますが、メモリの課題がなくなるわけではありません。完全なモデルは、どこかに保持しておく必要があります。
FreeTokenは、GPUメモリをアクティブなエキスパートキャッシュとして扱います。システムRAMは完全なモデルの基準データとして維持され、頻繁に要求されるエキスパートはGPUの近くに保持されます。ルーターは近接するトークン間で同じエキスパートを再利用することが多いため、比較的小さなホットセットでもワークロードの大部分に対応できます。
エキスパートキャッシュ
頻繁に使用されるエキスパートをGPUの近くに保持し、ローカルで再利用されるルーティングパターンにおける繰り返し転送を削減します。
Q-Starポリシー
キャッシュミスが発生した場合、測定されたハードウェア帯域幅に応じて、GPUへの転送とCPUでの直接実行に処理を振り分けます。
ダブルバッファリングprefill
1つのレイヤーを処理している間に、次のレイヤーで必要となるエキスパートをバックグラウンドでストリーミングできます。
プロンプト処理、いわゆるprefillでは、長い入力によって広範囲のエキスパートが使用される場合があります。FreeTokenは、各転送が完了するまで処理を待つのではなく、データ移動と計算をオーバーラップさせることでこの問題に対処します。
生成中、エンジンはキャッシュミスを処理する必要があります。あるシステムではPCIe経由でエキスパートを取得するほうが有利な場合がありますが、別のシステムではCPUで直接計算するほうが適していることもあります。Q-starポリシーは、RAMとPCIeの帯域幅のローカルなバランスを測定し、現在のワークロードに適した分割方法を選択します。
| 仕組み | 機能 | 主な利点 | 主な依存要素 |
|---|---|---|---|
| グローバルLRUキャッシュ | 最近使用されたエキスパートを利用可能な状態に保つ | トークン間での再利用を改善する | エキスパートの局所性とキャッシュサイズ |
| Q-star実行 | キャッシュミス時にGPU転送またはCPU実行を選択する | 異なるハードウェア構成に適応する | RAMとPCIeの帯域幅 |
| ダブルバッファリング | 現在の計算中に将来使用するエキスパートをストリーミングする | 目に見える転送停止を削減する | 転送と計算の同時実行サポート |
| FTW形式 | エンジンが必要とするレイアウトに重みを読み込む | 起動時の再パッケージ処理を削減する | FTW互換形式でのモデル提供 |
| セマンティックアンカー | 有用な状態とKVキャッシュのチェックポイントを保持する | コンテキストの再計算を繰り返す回数を減らせる | エージェント型コンテキストとキャッシュ動作 |
エンジンには、再帰状態とキー・バリューキャッシュ用のセマンティックアンカーチェックポイントも含まれています。これらは、ツール呼び出しや思考ブロックを通じてエージェント型ワークフローがコンテキストを編集する際に、冗長なコンテキスト再計算を削減することを目的としています。
FreeTokenは、すべてのローカル推論エンジンを置き換える万能なツールではありません。CPU実行をボトルネックにすることなく、利用可能なVRAMの容量を超えるMoEモデルを扱える場合に、最も大きな効果を発揮します。
FreeToken appのセットアップ手順
公式プロジェクトは、WindowsおよびLinux向けのデスクトップアプリに加えて、PythonベースのCLIインストールをサポートしています。ランタイムをどのように使用するかに応じて、適切な方法を選択してください。
ハードウェア構成を確認する
利用可能なGPU VRAM、システムRAM、PCIe接続、オペレーティングシステムのサポート状況を確認します。FreeTokenはコンシューマー向けシステム用に設計されていますが、非常に大規模な最先端モデルは、高性能なデスクトップでも容量を超える可能性があります。
インターフェースを選択する
ガイド付きセットアップ、モデルの確認、チャット中心の利用には、WindowsまたはLinuxのデスクトップアプリを選択します。スクリプト作成、プロジェクト統合、再現可能なベンチマークコマンドが必要な場合はCLIを選択します。
必要に応じてCLIをインストールする
公式リポジトリでは、uv pip install "freetoken[accel]" を使用してアクセラレーション対応パッケージをインストールする方法が推奨されています。ソースからのビルドについても、リポジトリの仮想環境ワークフローで説明されています。
適切なMoEモデルを読み込む
GPUに完全に収めるには大きすぎる一方で、RAMとストレージの容量から見て現実的なモデルから始めます。モデル形式とランタイム要件がサポートされていることを確認してください。
調整して測定する
同じプロンプトまたはコーディングタスクを実行し、速度、安定性、メモリ動作を比較します。パフォーマンス曲線を調べる必要がある場合は、稼働中のサーバーテストでGPUエキスパートキャッシュのサイズを変更します。
| セットアップ方法 | 推奨対象 | 強み | 制限 |
|---|---|---|---|
| デスクトップアプリ | 初心者とビジュアルモニタリングを行いたいユーザー | ガイド付きインターフェースとモデル概要 | 現在のアプリワークフローでは、プロジェクトファイル操作がより限定的 |
uvを使用したCLI | 開発者とテスター | スクリプト化と設定が可能 | コマンドラインの知識が必要 |
| ソースからのビルド | コントリビューターと上級ユーザー | プロジェクトコードへ直接アクセスできる | セットアップとメンテナンスの負担が増える |
デスクトップアプリは現在、WindowsおよびLinux向けに提供されています。ローカルシステムで実行可能と思われるモデルを表示できますが、現在のワークフローでは、コーディングに特化した統合環境と同じプロジェクトフォルダー操作やファイル変更機能を提供できない場合があります。
大規模なモデルを本格的に使用する前に、小規模で再現可能なテストを行ってください。短いベンチマークによって、転送、CPU処理、キャッシュミスのどれがシステムの制限要因になっているかを確認できます。
パフォーマンス比較とチューニング
最も重要な判断は、モデルがGPUメモリに無理なく収まるかどうかです。収まる場合は、FreeTokenのストリーミングとスケジューリングのオーバーヘッドを避けられるため、従来のGPU常駐型セットアップのほうが高速な可能性があります。モデルがVRAMを超える場合、FreeTokenは必要なエキスパートだけを移動させながら、計算処理をGPU上で維持できます。
あるワークステーションの比較結果は、この違いを示しています。32 GB GPU上で約38 GBと推定された8-bit Qwenモデルの場合、レイヤー分割構成は毎秒約58トークンに達した一方、FreeTokenは同じコーディングタスクで毎秒約132トークンに達しました。タスクの所要時間は、それぞれ約14分20秒と4分40秒でした。
同じ比較では、32 GBのVRAM内に収まる4-bit版で異なる結果が示されました。GPUに完全常駐させた構成は毎秒約240トークンに達した一方、FreeTokenは毎秒約225トークンでした。これらの数値はハードウェアやワークロードに固有のものであり、普遍的な目標値ではありません。
| シナリオ | 観測された結果 | 推奨される方法 |
|---|---|---|
| VRAMを超える8-bit MoEモデル | 引用されたテストではFreeTokenが約132トークン/秒を達成 | まずFreeTokenを試す |
| レイヤー分割との比較 | 代替ランタイムは約58トークン/秒を達成 | 有用なベースライン |
| VRAMに収まる小規模な4-bitモデル | GPU完全常駐構成は約240トークン/秒を達成 | よりシンプルなGPU完全常駐方式を優先する |
| FreeTokenのキャッシュを58%から40%に削減 | 引用されたテストで速度低下は約7% | より小さいキャッシュを検討する |
| キャッシュをおよそ20%未満に削減 | 引用されたテストではパフォーマンスが急激に低下 | 過度な縮小を避ける |
FreeTokenは、サーバーの稼働中にGPUエキスパートキャッシュのサイズを変更する機能もサポートしています。引用されたテストでは、キャッシュを58%から40%に減らしても速度低下はわずかでしたが、およそ20%未満にするとPCIeトラフィックが飽和し、低下幅が大きくなりました。
VRAMに完全に収まる場合
モデルをGPU上に完全に保持でき、不要なストリーミングのオーバーヘッドを避けられるランタイムを優先します。
VRAMをわずかに超える場合
FreeTokenはホットエキスパートをキャッシュし、CPU–GPU実行を適応させることでパフォーマンスを回復できる可能性があります。
PCIe接続が限られている場合
特にエキスパートキャッシュが小さい場合、キャッシュミスや転送量の影響を受けやすくなります。
システムRAMが大容量の場合
追加のRAMは完全なモデルを保持するのに役立ちますが、帯域幅の制限をなくすことはできません。
1秒あたりのトークン数は、モデルの量子化、プロンプトの長さ、ハードウェア、キャッシュサイズ、タスクの形状によって変化します。公開されている数値は比較の目安として使用し、保証された結果とは考えないでください。
実用チェックリストとFAQ
大規模なローカルモデルを評価する前に、このチェックリストを使用してください。利用可能な最大のモデルが最適な選択だと仮定するのではなく、互換性と測定に重点を置いています。
事前確認チェックリスト:
- 選択したインターフェースがWindowsまたはLinuxをサポートしていることを確認する
- 利用可能なGPU VRAMとシステムRAMを測定する
- 対象モデルが互換性のあるMixture-of-Expertsワークロードであることを確認する
- すべてのランタイム比較で同じプロンプトまたはコーディングタスクを実行する
- キャッシュサイズ、生成速度、安定性、転送動作を記録する
| 確認項目 | 確認内容 | 推奨される対応 |
|---|---|---|
| オペレーティングシステム | デスクトップアプリのサポート | グラフィカルインターフェースにはWindowsまたはLinuxを使用する |
| モデルアーキテクチャ | MoEルーティングとサポートされる重み | Denseモデルにも同じ効果があると仮定しない |
| メモリバランス | VRAMとモデル全体のサイズの比較 | モデルがVRAMを超える場合はストリーミングをテストする |
| 接続速度 | PCIeの転送動作 | キャッシュミス時の飽和に注意する |
| 評価方法 | 同じタスクとプロンプト | 条件を揃えてランタイムを比較する |
Q: FreeToken appは何を実行するために設計されていますか?
コンシューマー向けGPU、CPU、システムメモリ、インターコネクトを組み合わせて、大規模なオープンウェイトMixture-of-Expertsモデルをローカル推論するために設計されています。
Q: モデルがVRAMに完全に収まる場合でもFreeTokenを使うべきですか?
必ずしもそうではありません。GPUに完全常駐させたモデルは、FreeTokenが使用するストリーミングとスケジューリングのオーバーヘッドを避けられるため、より高速な場合があります。
Q: FreeTokenはデスクトップインターフェースでしか動作しませんか?
いいえ。FreeTokenはWindowsおよびLinux向けのデスクトップアプリに加えて、公式に案内されているアクセラレーション対応パッケージでインストールできるCLIも提供しています。
Q: 再起動せずにGPUエキスパートキャッシュを変更できますか?
エンジンは稼働中のサーバーでGPUエキスパートキャッシュのサイズをリアルタイムに変更できます。再起動せずにメモリと速度のトレードオフをテストできます。
まず公式リポジトリの手順を確認し、ハードウェアとモデル構成を記録したうえで、条件を揃えたローカルテストによってFreeTokenを評価してください。