- 数百のLLMモデルとプロバイダーを対象に、自分のシステムRAM・CPU・GPUで実際に実行可能なモデルを1回のコマンドで見つけてくれるツール
- 各モデルを品質・速度・適合度・コンテキスト基準でスコア化し、実行可能かどうかを表示して、TUI(ターミナルUI) と CLIモードの両方をサポート
- マルチGPU・MoE構造・動的量子化・速度推定・ローカルランタイム(Ollama, llama.cpp, MLX)と統合
- モデルごとに実行モード(GPU, CPU+GPU, CPU) と 適合レベル(Perfect, Good, Marginal, Too Tight) を分析し、最適な組み合わせを提示
- ローカル環境でLLMを効率的に活用したい開発者にハードウェアベースのモデル選択自動化を提供
主な機能概要
- llmfitはターミナルベースのツールで、システムのハードウェア仕様を検出し、LLMモデルが実際に実行可能かを評価
- RAM、CPU、GPU情報を読み取り、モデルごとに品質・速度・適合度・コンテキストのスコアを計算
- 結果はインタラクティブなTUIまたは従来型のCLI形式で表示
- マルチGPU、Mixture-of-Experts(MoE)、動的量子化選択、速度推定、ローカルランタイム統合機能をサポート
- ローカルランタイムとしてOllama、llama.cpp、MLXをサポートし、インストール済みモデルの自動検出とダウンロードが可能
- Planモードにより、特定モデルに必要な最小・推奨ハードウェアを逆算可能
- macOS、Linux、Windows、Ascendなど多様なプラットフォームで動作
インストールと実行
- macOS/Linuxでは
brew install llmfit または curl -fsSL https://llmfit.axjns.dev/install.sh | sh コマンドでインストール
- Windowsは
cargo install llmfit でインストール可能
- 実行時は
llmfit コマンドでTUIが開き、システム仕様とモデル一覧が表示
- CLIモードでは
llmfit --cli、llmfit fit --perfect -n 5、llmfit recommend --json など多様なサブコマンドを提供
動作方式
- ハードウェア検出:
sysinfo、nvidia-smi、rocm-smi、system_profiler などを使ってRAM・CPU・GPU情報を収集
- モデルデータベース: HuggingFace APIから数百のモデルを取得して
data/hf_models.json に保存
- Meta Llama、Mistral、Qwen、Google Gemma、Microsoft Phi、DeepSeek、IBM Graniteなど主要モデルを含む
- 動的量子化: Q8_0〜Q2_K階層を巡回し、利用可能メモリ内で最高品質の量子化を自動選択
- 速度推定: GPUメモリ帯域幅ベースの計算式
(bandwidth_GB_s / model_size_GB) × 0.55 を使用
- 適合度分析: GPU・CPU+GPU・CPUモードごとに実行可否とメモリ余裕度を評価
ユーザーインターフェース
- TUI操作キー:
f で適合度フィルター、a で可用性フィルター、s でソート基準を変更
p でPlanモードに入り、d でモデルをダウンロード、t でテーマ変更
- Planモードではコンテキスト長、量子化、目標トークン速度などを変更しながら、必要なVRAM/RAM/CPUを計算
- テーマ: Default、Dracula、Solarized、Nord、Monokai、Gruvboxなど6種類の内蔵カラーテーマを提供
ランタイムと統合機能
- Ollama統合: ローカルまたはリモートのOllamaインスタンス(
OLLAMA_HOST環境変数)に接続し、インストール済みモデルの検出とダウンロードに対応
- llama.cpp統合: HuggingFace GGUFファイルをローカルキャッシュにダウンロードし、インストール状況を表示
- MLX統合: Apple Silicon向けモデルキャッシュおよびサーバー連携をサポート
- OpenClaw連携:
llmfit-advisor スキルを通じて、OpenClawエージェントがハードウェアに合うモデルを自動推薦・設定
モデルデータベース管理
scripts/scrape_hf_models.py スクリプトでHuggingFace APIからモデル一覧を自動生成
make update-models コマンドでデータを更新し、バイナリを再ビルド
- モデルは一般、コーディング、推論、マルチモーダル、チャット、埋め込みなどのカテゴリに分類
- GGUFソースキャッシュ(
data/gguf_sources_cache.json)により、ダウンロード経路を7日間キャッシュ
プラットフォーム対応
- Linux/macOS(Apple Silicon): 完全対応
- Windows: RAM・CPU検出およびNVIDIA GPU(
nvidia-smi)をサポート
- GPU検出に失敗した場合
--memory= オプションでVRAMを手動指定可能
ライセンス
1件のコメント
Hacker Newsの意見
このプロジェクトはかなりクールで便利そうだが、Webサイト形式であってほしい
実行ファイルを動かすのは抵抗がある。こういう機能はWebでも十分実装できると思う
GitHubの説明によると、RAM容量、GPU数、バックエンドの種類(CUDA、Metal など)をシステムレベルで読み取る必要がある
ブラウザのsandbox制約のため、JavaScriptではこうした情報に直接アクセスできない
Web版にするなら、ユーザーが macOS の
.spxや Linux のinxiレポートをアップロードするか、ハードウェア構成を手動で選ぶ方式が必要になるこの方法はやや不便だが、仮想的なハードウェア構成を試せる利点がある
実際、ローカルモデルを動かす人が自分のハードウェアを知らないことはあまりないと思う
このプロジェクトは本当に素晴らしい
実際に必要なのは LLMのサイズとメモリ帯域幅 だけだ
単純な計算式でモデルが適合するか判断できる
例えば、32Bモデルを4bitで動かすには最低16GBのVRAMが必要だ
tok/s = memory_bandwidth / llm_sizeで計算すると、RTX3090(960GB/s)は約60 tok/s程度になるMoEモデルではアクティブなパラメータ数が速度を決める
ここに10%ほどの余裕を見ておけば現実的な推定になる
mmapでモデルパラメータを読み込めば、RAMが十分あるときは性能低下なしに拡張できる見た目はかっこいいが、自分のマシンではQwen 3.5が問題なく動くのに、このツールでは不可能と出る
結局この種のツールは 大まかな参考用 としてしか使えなさそうだ
Unslothのようなカスタムチューニングを適用すれば、実際にはもっと多くのモデルを動かせる
モデルの登場ペースが速すぎて、メンテナンスも簡単ではなさそうだ
このやり方は長期的にはディスクの寿命を縮めるかもしれない
アイデアは良いが、推薦モデルが少し 古い
自分の M4 MacBook Pro(128GB RAM)に Qwen 2.5 や Starcoder 2 を勧めてくる
何人かが言っているように、これは CLIツールよりWebサイト として実装したほうがよい
CPU、RAM、GPUのスペックをフォームに入力すれば十分計算できる
なぜわざわざダウンロードして実行しなければならないのかわからない
ただ ドロップダウンで仕様を入力 して結果を見られればよい
ほとんどのケースはよくカバーしているが、AMD iGPU のように ROCm がサポートされない場合でも Vulkanベース で動かせる
ドライバ設定でシステムRAMをVRAMのように活用すれば、本来は不可能なモデルもロードできる
特に レイヤーオフロード や 量子化されたMoE モデルで有用だ
Claude でもシステムスペックを入力すれば、かなり妥当なモデル推薦をしてくれる
最新情報かどうかは確信がない。OllamaとLM Studioを基準に試した
自分はClaudeやCodexにOllamaで複数モデルを順番に動かさせ、性能を自動評価 させている
30分ほどで自分のシステムに合うモデルを見つけられる