- FreeToken deployは、対応するデスクトップハードウェアでローカルMixture-of-Expertsサービングを実現します。
- デスクトップセットアップは、モデルとチャットを操作できるグラフィカルインターフェースを備え、WindowsとLinuxに対応しています。
- ハードウェア計画では、GPUメモリ、システムRAM、メモリ帯域幅、モデルサイズを考慮する必要があります。
- CLIインストールでは、ターミナルベースの設定を好むユーザー向けに
uvまたはpipを使用します。 - パフォーマンス調整は、モデルの選択、バックグラウンドプロセスの制御、RAMの空き容量から始まります。
FreeToken deployの概要
FreeToken deployは、コンシューマー向けハードウェア上でオープンウェイトのMixture-of-Expertsモデルを実行するためのローカルAIサービングセットアップです。GPUだけを唯一のリソースとして扱うのではなく、FreeTokenはGPUメモリ、システムRAM、CPUリソース、利用可能なインターコネクト帯域幅を連携させます。この設計により、大規模モデルをデスクトップで扱いやすくなりますが、最終的な使用感はモデルとハードウェア構成に大きく左右されます。
公式のFreeToken GitHubリポジトリでは、このプロジェクトをエッジネイティブなMoEサービングエンジンと説明しています。ランタイムには、帯域幅適応型のCPU–GPU協調実行、ダブルバッファ方式のプリフィルストリーミング、グローバルエキスパートキャッシュ、グラフ互換実行、FTW高速ウェイト形式が含まれています。
動画のハイライト:
- WindowsとLinux向けのデスクトップインストール手順
- 1台の大容量GPUによるローカルモデルの読み込み
- 大規模MoEモデルに必要なシステムRAM
- ブラウザベースのチャットインターフェースへの接続
- 1秒あたりのトークン数を用いた実用的なパフォーマンス確認
デスクトップアプリケーションは、エンジンのセットアップの大部分を処理し、モデルのダウンロード、エンドポイントの起動、チャット、ランタイムオプションの調整をグラフィカルなワークフローで行えるため、最も簡単な開始方法です。コマンドライン方式はより細かな制御が可能で、再現性のあるデプロイ、開発環境、ログを直接確認したいユーザーに適しています。
| デプロイ方式 | 適しているユーザー | 主なメリット | 主な制限 |
|---|---|---|---|
| デスクトップアプリ | 初めて使うユーザー | ガイド付きセットアップとグラフィカルな操作 | 低レベル設定の可視性が低い |
uvを使ったCLI | 開発者や上級ユーザー | 再現可能な環境と柔軟なコマンド | ターミナル操作の知識が必要 |
| ソースからのビルド | コントリビューターやテスター | プロジェクトファイルへ直接アクセスできる | セットアップと依存関係の管理が増える |
| デスクトップ+チャットUI | ローカルで対話的に使うユーザー | エンジン起動から会話までの最短経路 | パフォーマンスがモデルとメモリ構成によって変わる |
モデルをすぐに試すことが目的なら、デスクトップアプリケーションから始めてください。モデル、メモリ、エンドポイントの要件を理解したら、CLIへ移行しましょう。
ハードウェアとモデルの計画
FreeTokenのデプロイを成功させるうえで最も重要なのは、モデルを利用可能なメモリに合わせることです。1台のGPUでも実用的なローカル推論を実行できますが、選択したモデルがVRAMに完全には収まらない場合、システムRAMが不可欠になります。大規模MoEモデルでは、エキスパートのウェイトとランタイムデータがホストメモリとGPUの間を移動するため、高いメモリ帯域幅の恩恵を受ける場合もあります。
実用的なデプロイ計画では、インストール前に次の4つの値を記録しておく必要があります。
- GPUのVRAM容量とコンピュート性能
- システムRAMの合計容量と利用可能な空きRAM
- RAMの世代と実効メモリ速度
- モデルに想定されるメモリ使用量
基準テストでは1台のRTX 3090を使用し、大規模MoEモデルで対話的なパフォーマンスを確認しましたが、報告された出力速度はアクティブなエキスパートやランタイムの条件によって変化しました。デスクトップ構成とサーバー側構成でも結果が異なったため、ベンチマークの期待値は柔軟に考える必要があります。
| リソース | 重要な理由 | デプロイ時の指針 |
|---|---|---|
| GPU VRAM | モデルデータとアクティブな作業用メモリを保持する | VRAMが多いほどホストメモリへの転送を減らせる |
| システムRAM | オフロードされたウェイトや大規模モデルを支える | 最小構成よりも64 GBを強く推奨 |
| メモリ帯域幅 | CPU–GPU間のデータ移動に影響する | 高速なRAMはオフロードの多いワークロードを改善できる |
| CPU | オーケストレーションとホスト側の実行を担当する | OS用に十分な余裕を確保する |
| ストレージ | アプリケーションとモデルファイルを保存する | モデルを頻繁に切り替える場合は高速ストレージを使用する |
テストでは、十分なホストメモリを組み合わせれば、1台の3090で負荷の高いMoEモデルを実行できることが確認されました。同時に、モデル選択が重要であることも示されています。テスト構成では密な27B BF16モデルが起動に失敗した一方、別の大規模モデルではシステムRAMとVRAMを合わせて大幅に多くのメモリが必要でした。
小規模または中規模MoE
1台のGPUで起動しやすいモデルです。インストールとエンドポイント接続を検証する際の実用的な選択肢です。
大規模MoEモデル
ホストRAMとエキスパートキャッシュを使用してVRAMの制限を超えて実行できますが、帯域幅と利用可能なメモリが重要になります。
密なBF16モデル
選択的なエキスパート有効化を行うMoEモデルよりも大幅に多くのメモリを必要とする場合があります。ダウンロード前に互換性を確認してください。
| モデルプロファイル | メモリの動作 | デプロイ時のリスク | 最初に行うべきこと |
|---|---|---|---|
| 選択的にエキスパートを使用するMoE | 生成中にアクティブなエキスパートを使用する | プロンプトごとに速度が変わる可能性がある | 短いテスト会話から始める |
| 大規模なオフロードMoE | GPU VRAMとシステムRAMを併用する | 利用可能なメモリが不足する | まずバックグラウンドアプリケーションを閉じる |
| Dense 27B BF16 | より大きな密モデルのメモリフットプリントを維持する | エンジンが終了または起動に失敗する可能性がある | ログと利用可能なメモリを確認する |
| 非常に大規模な最先端モデル | 一般的なデスクトップの容量を超える可能性がある | ランチャーがRAM不足を報告する | より大容量のワークステーションを使用する |
搭載RAMの合計容量だけで互換性を判断しないでください。FreeTokenでは、OS、デスクトップアプリケーション、その他のプロセスを考慮したうえで、利用可能なRAMとVRAMが必要です。
FreeTokenデプロイのステップバイステップ
以下の手順は、デスクトップアプリケーションを使った一般的なデプロイ方法です。初回起動では慎重に進めてください。利用可能なメモリに合ったモデルを使用し、不要なバックグラウンド処理を避け、チャットクライアントを開く前にAPIサーバーの準備が完了したことを確認します。
インストール方法を選択する
公式のFreeToken配布ページからWindowsまたはLinux向けのデスクトップアプリケーションをダウンロードするか、CLI方式向けにPython環境を準備します。デスクトップアプリは主要なセットアップフローをまとめ、グラフィカルなモデル操作を提供するため、初回デプロイにはより簡単な選択肢です。
ホストシステムを準備する
大規模モデルを起動する前に、メモリを大量に使用するアプリケーションを閉じてください。画面録画、ブラウザのタブ、仮想マシン、GPUアクセラレーションを使用するツールは、メモリを取り合ったり、利用可能なエンコーダーやグラフィックスリソースに影響したりする可能性があります。テストするモデルに十分な空きRAMがあることを確認してください。
FreeTokenをインストールまたは起動する
CLIでインストールする場合、プロジェクトのドキュメントではuv pip install "freetoken[accel]"が推奨パッケージコマンドとして記載されています。上級ユーザーはリポジトリをクローンし、仮想環境を作成して、プロジェクトを編集可能モードでインストールできます。
互換性のあるモデルを選択する
モデルエリアを開き、ダウンロード済みまたは対応しているモデルを選択して、必要なメモリ容量を確認します。すぐに最大のモデルを選ぶのではなく、余裕を残せるモデルから始めてください。ランチャーがRAM不足を報告した場合は、より小さいモデルを選ぶか、より大容量のシステムに移行します。
エンドポイントを確認する
エンジンを起動し、APIサーバーが準備完了を報告するまで待ちます。その後、内蔵チャットビューまたはOpen WebUIなどの外部インターフェースに接続します。まず短いプロンプトを送信して生成の動作を確認し、その後で長いコンテキストや最大思考設定に進んでください。
| デプロイ段階 | 成功のサイン | 失敗した場合 |
|---|---|---|
| インストール | アプリケーションが開く、またはパッケージの処理が完了する | プラットフォームの依存関係とインストールログを確認する |
| モデルの読み込み | モデルが想定どおりメモリを使用し始める | モデルの対応状況と利用可能なRAMを確認する |
| APIの起動 | APIサーバーの準備が完了する | エンジンを再起動してサーバー出力を確認する |
| チャット接続 | プロンプトに応答が返る | エンドポイントアドレスとクライアント設定を確認する |
| ベンチマーク | 安定した生成速度を測定できる | より短いプロンプトと少ないバックグラウンドタスクで再試行する |
ターミナルでのワークフローを好むユーザー向けに、リポジトリはuvまたはpipによるインストールをサポートしており、開発用にソースからインストールすることもできます。依存関係の変更が他のローカルAIプロジェクトに影響しないよう、環境は分離しておいてください。
「APIサーバーの準備が完了した」という表示を、デプロイのマイルストーンとして扱ってください。このメッセージが表示されたら、高度な設定を変更する前に短いプロンプトでエンドポイントを確認します。
パフォーマンスの調整とテスト
FreeTokenのパフォーマンスは、1つの固定値で表せるものではありません。生成速度は、アクティブなエキスパート、モデルアーキテクチャ、プロンプトの長さ、メモリ配置、ランタイム設定によって変化します。基準テストでは、ある構成が対話的なワークロードで毎秒およそ10〜11トークンを出力した一方、別のテスト条件のデスクトップ構成では毎秒約8.8トークンという低い結果になりました。これらは参考例であり、普遍的な保証ではありません。
再現可能なテスト手順を使用してください。
- 同じモデルを再起動または再読み込みする。
- 同じ短いプロンプトを送信する。
- 最初の応答が完了するまで待つ。
- プロンプト処理と生成の動作を記録する。
- ハードウェアやインターフェースを比較する前にテストを繰り返す。
| 変数 | 考えられる影響 | 実用的な調整 |
|---|---|---|
| アクティブなエキスパート | プロンプトごとに生成速度が変わる可能性がある | 結論を出す前に複数のプロンプトをテストする |
| システムRAMの速度 | オフロード帯域幅に影響する | 可能であれば帯域幅の高いメモリを使用する |
| バックグラウンドのGPU処理 | 利用可能なリソースを減らす | 録画、レンダリング、無関係なGPUタスクを停止する |
| コンテキスト長 | メモリと処理の負荷が増加する | 短い会話から始める |
| 思考モード | 追加の推論処理が発生する | 最大設定の前に通常モードをテストする |
| クライアントインターフェース | オーバーヘッドが加わったり、異なる指標が表示されたりする可能性がある | 同じプロンプトとモデルで比較する |
ランタイムのキャッシュ動作は、MoEワークロードにおいて特に重要です。エキスパートキャッシュは繰り返しの読み込みを減らせる一方、セマンティック対応キャッシュは、対応するエージェントワークフローでコンテキストの重複再計算を避けるよう設計されています。ただし、キャッシュの動作は利用可能なメモリとワークロードにも左右されます。システムが頻繁にデータを追い出し始めると、生成が安定しなくなる可能性があります。
ベースラインテスト
1つのモデル、1つのプロンプト、1つのクライアントを使用します。変更を加える前に結果を記録してください。
メモリテスト
モデルの読み込み中と生成中に、システムRAMとVRAMを監視します。
インターフェーステスト
同一のモデル設定を確認してから、デスクトップとサーバー側のアクセスを比較します。
安定性テスト
複数のプロンプトを実行し、クラッシュ、データの追い出し、不安定な出力速度を確認します。
1秒あたりのトークン数は、プロンプトによって大きく変わる可能性があります。繰り返しテストを行い、モデル、ハードウェア、インターフェース、メモリ構成をまとめて報告してください。
トラブルシューティングとデプロイチェックリスト
起動に失敗したからといって、必ずしもインストールに問題があるとは限りません。一般的な原因には、対応していないモデル形式、利用可能なメモリ不足、依存関係の問題、他のアプリケーションによるリソース競合があります。テストしたワークフローではFreeTokenはベータソフトウェアと説明されているため、互換性の問題が発生した場合は、再起動、ログの確認、またはIssueの報告が必要になることがあります。
次のトラブルシューティング表を使って問題を絞り込んでください。
| 症状 | 考えられる原因 | 推奨される対応 |
|---|---|---|
| エンジンが予期せず終了する | モデルの互換性またはランタイムエラー | 再起動し、別のモデルを試して、サーバーログを確認する |
| RAM不足のメッセージが表示される | VRAMとRAMの合計容量が不足している | アプリケーションを閉じるか、より小さいモデルを選択する |
| 生成速度が遅い | ホストメモリへのオフロードまたは帯域幅の制限 | ワークロードを減らし、メモリ構成を比較する |
| チャットクライアントに接続できない | APIエンドポイントの準備ができていない、またはアドレスが間違っている | 準備完了を待ち、エンドポイント設定を確認する |
| プロンプトごとにパフォーマンスが変わる | 異なるエキスパートがアクティブになる | 速度を評価する前に複数のプロンプトを実行する |
| デスクトップでの起動が遅い | インターフェースまたはプラットフォームのオーバーヘッド | 別の対応方式で同じモデルと比較する |
起動前チェックリスト:
- OSとインストール方法を確認する
- 利用可能なGPU VRAMとシステムRAMを確認する
- 合計メモリ容量に収まるモデルを選択する
- CPU、RAM、GPUリソースを使用するバックグラウンドアプリケーションを閉じる
- チャットクライアントを接続する前に、APIサーバーが準備完了を報告するまで待つ
再現性のあるデプロイを行うには、各テストでモデル名、アプリケーションのバージョン、OS、メモリ構成、クライアント設定を保存してください。これにより、モデルの制限とインストールの問題を区別しやすくなります。あるモデルが繰り返し失敗し、別のモデルが正常に起動する場合は、プロジェクトにIssueを報告する前に、生のサーバーログを保存してください。
最も安全なアップグレード方法は、段階的に進めることです。
- 対応している扱いやすいモデルでインストールを検証する。
- チャットとエンドポイントが機能することを確認する。
- メモリを多く使用するモデルを1つずつテストする。
- 各ベンチマークでは、パフォーマンス変数を1つだけ変更する。
- 比較用に、正常に動作する既知のモデルを保持する。
モデルが失敗した場合、すぐにすべてを再インストールしないでください。まず既知の互換モデルをテストし、利用可能なメモリを確認して、生のエンジンログを確認します。
FreeToken Deploy FAQ
Q: FreeToken deployは何を目的としていますか?
FreeToken deployは、GPUリソース、CPUリソース、システムRAM、インターコネクト帯域幅を連携させることで、オープンウェイトのMixture-of-Expertsモデルをローカルで実行します。より大規模なモデルサービングをデスクトップハードウェアに近づけることを目的としています。
Q: FreeTokenは1台のGPUで実行できますか?
はい。オフロードに十分なシステムRAMがあれば、1台の大容量GPUで対応モデルを実行できます。実際の結果は、モデルアーキテクチャ、メモリ帯域幅、アクティブなエキスパート、バックグラウンドのシステム使用状況によって異なります。
Q: デスクトップアプリとCLIのどちらを使うべきですか?
最も簡単なセットアップ、モデル選択、チャットワークフローを求める場合はデスクトップアプリを使用してください。分離された環境、再現可能なコマンド、ソースへのアクセス、ログや依存関係のより直接的な制御が必要な場合はCLIを使用します。
Q: なぜ一方のモデルは動作するのに、別のモデルは失敗するのですか?
モデルごとにメモリフットプリント、形式、アーキテクチャ、互換性要件が異なります。密なBF16モデルはMoEモデルより多くのメモリを必要とする場合があり、ベータ版ランタイムのサポート状況によって特定のエンジンが予期せず終了することもあります。
FreeTokenをワンクリックのパフォーマンスプリセットではなく、設定可能なローカル推論エンジンとして扱うことが、最も優れたデプロイ習慣です。現実的なモデルから始め、エンドポイントを確認し、再現可能なプロンプトで測定しながら、システムの限界を理解したうえで段階的に拡張してください。
信頼性の高いFreeTokenセットアップは、モデルを利用可能なメモリに合わせ、APIエンドポイントを検証し、制御されたテストでパフォーマンスを調整することで実現します。