GGUFモデル メモリ計算機 (model-memory-calculator)

AI/ML

概要

このリポジトリは「GGUF Metadata Reader (Browser)」として提供される、ブラウザ単体で動くシンプルなGGUFモデルのメモリ要件計算機です。ユーザーはローカルの.ggufファイルをドラッグ&ドロップするか、HTTP RangeをサポートするリモートURLを指定するだけで、ファイルヘッダやメタデータを抽出して、指定したコンテキストウィンドウ長やKVキャッシュ量子化設定に応じた概算のRAM/VRAM消費量を算出できます。シャード化された複数ファイル(例: -00001-of-00013)にも対応し、全体サイズを合算して計算するため大規模モデルでも扱いやすく、サーバ側を必要としない点が大きな利点です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 13
  • フォーク数: 1
  • ウォッチャー数: 13
  • コミット数: 8
  • ファイル数: 4
  • メインの言語: HTML

主な特徴

  • ブラウザだけで完結: クライアントサイドのみでGGUFメタデータを読み取り、メモリ見積もりを実行。サーバ不要でプライバシー面でも安心。
  • リモート/ローカル両対応: HTTP Rangeをサポートするリモートファイルと、ローカルの.ggufファイル(ドラッグ&ドロップ)を読み込み可能。大規模ファイルでも部分読み込みで効率的。
  • シャード検出と合算: 複数シャードで配布されているモデルを自動判別して総サイズを合算し、正確なメモリ推定を行う。
  • KVキャッシュと量子化考慮: コンテキストウィンドウ長やKVキャッシュ量子化(quantization)による違いを反映して、RAM/VRAMの概算を表示。

技術的なポイント

このツールは単一の静的HTMLファイル(および付随する小さなリソース)で構成され、ブラウザAPIを駆使してファイルやリモートリソースへアクセスします。主な技術要素は次のとおりです。

  • ファイル読み取り: ローカルファイルはHTMLのFile API(ドラッグ&ドロップ/ファイルピッカー)で取得し、必要箇所だけをArrayBuffer等で扱ってメタデータを解釈します。リモートはfetchのRangeヘッダを使い、サーバが部分取得(HTTP Range)を許可している場合に最小限のデータ転送で済ませます。
  • バイナリパース: GGUFはメタデータがバイナリ内に埋め込まれているため、エンディアンや型を意識したバイナリ解析(DataViewによる読み出し、文字列デコード、タグ/キー取得)を行い、モデルのパラメータ情報やテンソル形状、量子化情報を取り出します。
  • シャード管理: ファイル名パターン(例:-00001-of-00013)やメタデータでシャード化を検出し、各シャードのサイズを合算してモデル全体の重み容量を算出します。リモート複数URLの扱いも想定できます。
  • メモリ推定ロジック: 抽出したテンソル数や型(float32/float16や各種量子化形式)から、モデル重みの総バイト数を計算。さらにコンテキストウィンドウ長に比例するKVキャッシュの増加分(キー/バリューのサイズ × トークン数)を加味して、RAM(ロード時の総メモリ)とVRAM(GPUに載せる際の概算)を分けて推定します。量子化設定により1パラメータ当たりのバイト数が変わるため、結果に大きく影響します。
  • UX/制約: 完全クライアントサイド運用のためCORSやRange未対応のホストからはリモート取得できない場合があります。またブラウザのメモリ制限や大容量ファイルの部分読み込みポリシーにより、極端に大きなモデルでは操作性が低下することがあります。とはいえ、サーバを介さないためセキュリティとプライバシーの面で利点が大きい設計です。

以上により、このツールは手軽にGGUFモデルのメモリ要件を評価したい開発者や研究者にとって有用なフロントエンドユーティリティとなっています。コードは単純で拡張しやすく、必要に応じて量子化種別の追加やGUI改善、複数シャードURLの自動検出などの機能追加がしやすい構成です。(約700〜1000字相当)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • index.html: file

まとめ

ブラウザだけで手早くGGUFモデルのメモリ概算ができる実用的なツールです(約50字)。

リポジトリ情報:

READMEの抜粋:

GGUF Metadata Reader (Browser)

A single-file, static web app to read GGUF model metadata directly in the browser and estimate memory usage (RAM/VRAM) for a chosen context window and KV cache quantization.

  • Works with remote URLs that support HTTP Range requests (e.g., many Hugging Face files)
  • Works with local .gguf files (drag-and-drop via file picker)
  • Detects sharded models (e.g., -00001-of-00013) and sums total size
  • No server required; everything runs client-side

Quick Start…