モデル別実行レシピ
最終更新
Qwen3.8 27Bが7.89GBに?Salukiの導入と8GB GPUでの実行条件
小さなモデルへ移る前に、27Bモデルの重みを小さくする選択肢もあります。
Underdog Saluki 27B 1.0は、Qwen3.8-27Bを約2ビットの混合量子化1で圧縮した言語モデルです。7.89GBのGGUF2をllama.cppで読み込むと、手元のコンピューターで質問に答え、接続したアプリにも回答を渡せます。重みのほかに会話の状態を置くメモリも必要なので、短い文脈から始めて余裕を確認しながら広げましょう。
SalukiはQwen3.8 27Bを小さなファイルに収めたモデル
Qwen3.8-27Bを試したくてもメモリの都合で小さなモデルを選んでいたなら、Salukiも候補になります。270億のパラメーターを保ちつつ、重みの保存に使うビット数を減らしています。ダウンロードは7.89GBのGGUFで、多くのローカル実行ソフトが対応する形式です。
このガイドではllama.cppで読み込み、手元のコンピューターの8080番ポートで質問を受けるサーバーを作ります。準備ができたら、WebチャットやOpenAI互換アプリを接続できます。重みはApache 2.0で公開されており、個人の作業やライセンス条件を守ったサービスに利用できます。

8GB GPUでは会話用のメモリも見積もる
7.89GBのファイルなら8GBのグラフィックカードに入りそうですが、実行時には重み以外の領域も使います。会話を保持するKVキャッシュ3、計算途中のデータ、画面表示のアプリがGPU4メモリを共有するため、長文を入れると先に空きが足りなくなることがあります。
以下の実行例はコンテキストを4,096トークン5に制限し、GPUへの読み込み量を自動で決めます。GPUメモリに収まらない部分はシステムRAM6で処理できます。その場合、RAMにはモデルとOSが使う分の余裕も必要です。手元の8GB GPUで始め、タスクマネージャーまたはアクティビティモニタでRAM・GPUメモリの使用量と最初の回答までの時間を確認します。
Apple Silicon MacではCPU7とGPUが統合メモリを共有します。他のアプリを閉じ、短い質問から始めると空き容量を把握しやすくなります。会話を長くしてスワップが急増したり回答が遅くなったりしたら、文脈を短くしましょう。

作業フォルダーを用意してモデルを取得
Mac・LinuxではPython 3、Git、CMakeを用意します。MacにはXcode Command Line Toolsも必要です。Homebrewを使っているならbrew install git cmakeでビルドツールを導入し、Xcodeのツールはxcode-select --installで表示される画面から導入します。
次のコマンドはsaluki-local内にPython仮想環境8を作り、モデルをmodelsへ保存します。重みだけで約8GBを取得し、実行ソフトや一時ファイルも増えるため保存容量に余裕を残してください。以降も同じsaluki-localフォルダーで実行します。
mkdir -p saluki-local
cd saluki-local
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U huggingface_hub
hf download ConwayResearch/Underdog-Saluki-27B-1.0 Underdog-Saluki-27B-1.0-IQ2-mix.gguf --local-dir modelsMacはMetal、NVIDIAはCUDAで実行
llama.cppをビルドすると、機器に合った実行プログラムを用意できます。Macのビルドは標準でMetal9 GPUを有効にします。コマンドが完了し、llama.cpp/build/bin/llama-serverができたら次へ進めます。
NVIDIA GPUを使うLinux PCではドライバーとCUDA10 Toolkitを導入し、Mac用の代わりにCUDA用コマンドを選びます。nvidia-smiにGPUが表示され、nvcc --versionにToolkitの版が出ることを確認してからビルドしてください。
Windowsではllama.cppのリリースからCUDAビルドを取得して展開し、PowerShellでllama-server.exeを実行できます。後のサーバーコマンドの実行ファイルパスを置き換えてください。ソースからビルドする場合はVisual StudioのC++開発ツールとCUDA Toolkitも必要です。
git clone https://github.com/ggml-org/llama.cpp.git
cmake -S llama.cpp -B llama.cpp/build
cmake --build llama.cpp/build --config Release --target llama-server -j 4git clone https://github.com/ggml-org/llama.cpp.git
cmake -S llama.cpp -B llama.cpp/build -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release --target llama-server -j 4サーバーを起動して最初の質問を送る
1つ目のターミナルでサーバーを起動します。モデルの読み込みと待ち受け開始のログを待ち、2つ目のターミナルを開いてください。/healthが正常状態を返したら質問を送れます。127.0.0.1に限定するため、接続は現在のコンピューター内です。
短い動作確認では思考過程を無効にして直接回答させます。choices[0].message.contentに文章が返れば生成できています。次は質問だけを変更し、普段要約する文書の一部を送ってみましょう。長い推論が必要ならenable_thinkingをtrueにし、出力上限も増やします。
./llama.cpp/build/bin/llama-server -m models/Underdog-Saluki-27B-1.0-IQ2-mix.gguf --alias saluki27b --jinja -ngl auto -fa on -c 4096 --host 127.0.0.1 --port 8080curl -sS http://127.0.0.1:8080/health
curl -sS http://127.0.0.1:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"saluki27b","messages":[{"role":"user","content":"Explain local AI in two sentences."}],"max_tokens":128,"temperature":0,"chat_template_kwargs":{"enable_thinking":false}}'ツール呼び出しと数学問題は別々に試す
文書要約だけでなくエージェントにも使うなら、通常の回答とツール呼び出し11を分けて試すと判断しやすくなります。ツール呼び出しでは、モデルが関数名と引数を選びます。例えばメモ検索の関数へ検索語を渡し、アプリが返した結果をもとに次の回答を作ります。
開発元の120課題のツール呼び出し評価では、Salukiが88課題、元のQwen3.8-27Bが84課題を通過しました。複雑な数学推論が中心なら、容量削減と合わせて解答の品質も比べましょう。SalukiのAIME 2025は79.2で、比較対象として示された元モデルの公開値は96.7でした。
| モデル | 通過した課題 |
|---|---|
| Underdog Saluki 27B 1.0 | 88 / 120 |
| Qwen3.8-27B | 84 / 120 |
開発元の評価・ツール呼び出し:UnderdogBench 120課題、thinking off、temperature 0。AIME 2025:Salukiは平均@4、元モデルは異なる評価環境の公開参考値。
最初は削除や決済ではなく、メモ検索など読み取り専用のツールから始めましょう。実際の作業の質問を10個ほど揃えておくと、モデル変更時に検索語、引数の形式、最終回答を比較しやすくなります。

画像入力には別のファイルを追加
テキストの質問が動いたら、画像入力も追加できます。画像をモデルへ渡すmmprojファイルを重みの横に取得して、サーバーに指定します。Q8_0は629MB、F16は928MBです。最初は小さいQ8_0から試せます。
取得後はCtrl+Cでサーバーを止め、同じ起動コマンドの末尾に--mmproj models/mmproj-Underdog-Saluki-27B-1.0-Q8_0.ggufを加えて再起動します。Webチャットで画像を添付できれば、簡単なスクリーンショットを入れて要約させてみましょう。画像処理もメモリを使うため、テキスト実行時の空きを確認してから追加します。
hf download ConwayResearch/Underdog-Saluki-27B-1.0 mmproj-Underdog-Saluki-27B-1.0-Q8_0.gguf --local-dir models初回実行の問題はこの順で解決
hf: command not foundならsource .venv/bin/activateで仮想環境を有効にします。それでも見つからなければpython -m pip install -U huggingface_hubを再実行してください。モデルが見つからない場合は、現在のフォルダーがsaluki-localでパスがmodelsから始まるかを確認します。
autoを認識しない、またはモデル形式のエラーが出る場合は、まずllama.cppを最新リリースに更新してください。GPUメモリ不足なら他のGPUアプリを閉じ、文脈を4,096未満にして再試行します。それでも失敗する場合は-ngl autoを-ngl 0に変えてシステムRAMで動作確認できます。CPUの計算が増えるため、回答は遅くなることがあります。
connection refusedならサーバーのターミナルが動いているか、8080番ポートを使っているかを確認します。他のアプリが使用中なら--portとリクエスト先の両方を変更してください。使い終わったらCtrl+Cで停止します。モデルファイルは残るので、次回の取得は不要です。
NVIDIAで回答生成を速くしたい場合はNInferガイドへ進んでください。Macで長文の最初の回答が遅い場合は、Splashガイドで入力処理を短縮する方法を確認できます。
用語の注釈
量子化 — モデルの重みや計算値を少ないビット数で表し、保存容量やメモリ使用量を減らす方法です。表現が粗くなるため、精度にも影響することがあります。
本文に戻るGGUF — モデル情報を格納するファイル形式で、llama.cpp系のツールで広く使われます。
本文に戻るKVキャッシュ — 過去トークンのAttention用キー・バリューを保存し、後続トークン生成で再利用するメモリです。容量はコンテキスト長やバッチサイズで変わります。
本文に戻るGPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻るトークン — モデルが入力や出力を分けて処理する単位です。
本文に戻るシステムRAM — プログラムの実行中にデータを一時保存するシステムメモリです。
本文に戻るCPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。
本文に戻るPython仮想環境 — プロジェクトごとにPythonパッケージを分けて導入する環境です。パッケージのバージョンの衝突を減らせます。
本文に戻るMetal — Apple機器でグラフィックスやGPUの並列計算を実行する低水準の技術です。
本文に戻るCUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。
本文に戻るツール呼び出し — ファイル読み取り、検索、コマンド実行などの外部機能を、名前と引数でモデルが要求する形式です。実行の有無はエージェントランタイムと権限設定が決めます。
本文に戻る
よくある質問
- この記事で最初に確認すべきことは何ですか?
- Underdog Saluki 27B 1.0は、Qwen3.8-27Bを約2ビットの混合量子化で圧縮した言語モデルです。7.89GBのGGUFをllama.cppで読み込むと、手元のコンピューターで質問に答え、接続したアプリにも回答を渡せます。重みのほかに会話の状態を置くメモリも必要なので、短い文脈から始めて余裕を確認しながら広げましょう。
- 必要なメモリはどのくらいですか?
- Qwen3.8-27Bを試したくてもメモリの都合で小さなモデルを選んでいたなら、Salukiも候補になります。270億のパラメーターを保ちつつ、重みの保存に使うビット数を減らしています。ダウンロードは7.89GBのGGUFで、多くのローカル実行ソフトが対応する形式です。
- 条件と出典はどこで確認できますか?
- このガイドではllama.cppで読み込み、手元のコンピューターの8080番ポートで質問を受けるサーバーを作ります。準備ができたら、WebチャットやOpenAI互換アプリを接続できます。重みはApache 2.0で公開されており、個人の作業やライセンス条件を守ったサービスに利用できます。
