メモリとモデル

TensorFold 1.0.8でQwen3.8-27BのMacメモリが17.6GiB減少

重複読み込みをなくし、DFlash2と長いコンテキストを同時に準備する余地が生まれました。

TensorFold 1.0.8はQwen3.8-27Bの重みをメモリに1回だけ保持し、DFlash2との準備メモリを17.6GiB削減しました。リリースの70,000トークン1コンテキスト確認では、M5 Maxが47.2から29.6GiB、M3 Ultraが42.2から24.6GiBになりました。この削減により、この構成でDFlash2ドラフターと長いコンテキストを同時に準備しやすくなります。実使用量は普段のアプリと入力長を含めて確認します。

実行条件と要点
  • 重複排除により、DFlash2を含む準備メモリが17.6GiB減りました。
  • 70Kコンテキストの確認では、M5 Maxが47.2から29.6GiB、M3 Ultraが42.2から24.6GiBになりました。
  • 17.6GiBの削減はモデル重みの重複読み込みをなくした結果です。

重みを2回読み込む経路が1回に変わりました

DFlash2ではドラフターが次のトークンを提案し、Qwen3.8-27Bが検証します。TensorFold 1.0.8はMacでQwen3.8-27Bの重みをメモリに1回だけ保持します。

表はTensorFoldのリリース確認でDFlash2を含め、70,000トークンコンテキストで準備したメモリを示します。同じ条件でバージョンを変え、各Macで17.6GiB減少しました。

画面が暗いモニター、小型デスクトップPC、複数のファンが見えるPCケース
サーバー機器とクライアントとして使う作業環境を並べて準備します。

70Kコンテキストで準備メモリが減少しました

以下の数値は、TensorFoldのリリース確認でサーバーとDFlash2を準備するために確保したメモリです。バージョンを1.0.7から1.0.8に変更し、同じ70,000トークンコンテキストと生成速度の条件で、各Macの準備メモリが17.6GiB減少しました。

表は各MacでTensorFoldとDFlash2を準備したプロセスメモリです。macOSと普段のアプリも同じ統合メモリを使います。自分のMacでサーバーを起動し、アクティビティモニタのメモリプレッシャーとスワップ増加を確認して実際の余裕を判断します。

左右にスクロールして各項目を比較できます。

TensorFoldリリースの70Kコンテキスト準備メモリ
機器1.0.71.0.8差分
M5 Max47.2 GiB29.6 GiB−17.6 GiB
M3 Ultra42.2 GiB24.6 GiB−17.6 GiB

重複読み込みで節約した領域を使うには、まず--context 4096でserverを確認し、普段のアプリを開いたまま必要な長さまでcontextを上げます。/memoryはterminal commandではなく、既定API2 serverの読み取り専用HTTP routeです。requestを長くする前にprocessのphysical footprintとlifetime peakを確認します。

1.0.8をインストールしてDFlash2と実行します

既存のHomebrewインストールを1.0.8に更新し、正確なモデルリポジトリとDFlash2ドラフターを指定します。tensorfold pullは大きなモデルファイルのチェックサムを確認し、中断したダウンロードでは不足分を再取得します。

TensorFold 1.0.8に更新
brew upgrade ashhart/tensorfold/tensorfold
tensorfold --version

M5 MaxまたはM3 Ultraで以下のコマンドを使ってモデルを取得し、サーバーを起動します。--context 4096は最初のテスト用の値で、準備メモリを確認してから必要に応じて増やします。--drafterでQwen3.8-27BにDFlash2を接続します。

Qwen3.8-27BとDFlash2を取得
tensorfold pull TensorFold/Qwen3.8-27B-MLX-4bit
tensorfold pull z-lab/Qwen3.8-27B-DFlash2
Qwen3.8-27Bサーバーを起動
tensorfold serve TensorFold/Qwen3.8-27B-MLX-4bit --name qwen38-local --drafter z-lab/Qwen3.8-27B-DFlash2 --context 4096 --parallel 1 --temperature 0
文書ウィンドウのノートPCとページ表示のスマートフォンがケーブルで接続された様子
メモリの確認は、モデルを使う普段の作業環境で続けます。

準備メモリと日常使用量を分けて読みます

17.6GiBの削減は、Qwen3.8-27BとDFlash2を同時に読み込むときや、より長いコンテキストを準備するときに役立ちます。モデルの読み込みと並行してアプリ用の余裕を確保し、macOSのメモリ圧力とTensorFoldの/memory診断を確認します。

既定API serverのmemory診断を取得
curl -fsS http://127.0.0.1:8080/memory
接続された2台の小型デスクトップPCと粒子の流れを表示するモニター
コンテキストを長くする前にサーバーメモリとMacの余裕を確認します。

用語の注釈

  1. トークン — モデルが入力や出力を分けて処理する単位です。

    本文に戻る
  2. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
TensorFold 1.0.8はQwen3.8-27Bの重みをメモリに1回だけ保持し、DFlash2との準備メモリを17.6GiB削減しました。リリースの70,000トークンコンテキスト確認では、M5 Maxが47.2から29.6GiB、M3 Ultraが42.2から24.6GiBになりました。この削減により、この構成でDFlash2ドラフターと長いコンテキストを同時に準備しやすくなります。実使用量は普段のアプリと入力長を含めて確認します。
必要なメモリはどのくらいですか?
表は各MacでTensorFoldとDFlash2を準備したプロセスメモリです。macOSと普段のアプリも同じ統合メモリを使います。自分のMacでサーバーを起動し、アクティビティモニタのメモリプレッシャーとスワップ増加を確認して実際の余裕を判断します。