HuggingFaceの実容量とコンテキスト長を計算する検索ツールを作った
タグ
LLM 量子化 HuggingFace vLLM ツール
本文
モデル選びのたびに「このモデルは今のGPU構成に収まるのか」「コンテキスト長はどれくらい取れるのか」を毎回手計算していたのが面倒になり、ブラウザだけで完結する検索ツールを作りました。
HuggingFace Hub APIは認証なしでJSONを返してくれます。モデル検索は/api/models?search=...、実ファイルサイズは/api/models//tree/mainを叩けば、パラメータ数からの推定でなく実際のバイト数がそのまま取得できます。さらにCORSも完全に許可されているため、サーバーを挟まずブラウザから直接叩けることも確認できました。
これを踏まえて作った機能は以下の通りです。
キーワードは空白区切りでAND条件になるようにしています(HF標準の検索は複数語を緩くしか扱ってくれず、無関係な結果が混ざりやすいため)。容量は手動で「サイズ取得」ボタンを押すと個別に実測し、GPU数(TP)・VRAM上限・安全圏/境界の閾値を自分で設定して自動判定できます。GGUF・MLXは今回の運用(vLLM)では使えないと分かっていたので、除外チェックボックスも用意しました。
コンテキスト長の推定は、config.jsonからレイヤー数・KVヘッド数・hidden_sizeを取得して標準アテンション換算で計算しますが、GDN(線形アテンション)やsliding windowを検出した場合はバッジで警告を出し、「この計算はそのモデルには当てはまらない可能性が高い」ことが分かるようにしています。実際、GDN構造のモデルは標準アテンション換算よりケタ違いに多くのコンテキストが入ることを何度も確認しているので、この注記は欠かせません。
GitHub Pagesで公開しているので、同じような環境でモデル選びに悩んでいる人は使ってみてください。