最初に結論を述べます。はい、特別なサーバーがなくても、あなたの普通のPCで「無料・プライベート・オフライン」にAI(LLM)を動かせます。 ChatGPTのようなAIを、月額課金なし・データを外部に送らず・ネット接続なしで使える——これがローカルLLMです。そして、始めるうえで本当に重要な疑問はたった1つ、**「自分のGPU(VRAM)で、どのモデルが動くのか」**です。本記事は、まずこの問いに表で即答し、そのうえで Ollama / LM Studio の選び方、量子化、速度の現実、自作アプリの作り方まで——実際にLLMを本番運用しているエンジニアの視点で、最短で確実に動かせるよう解説します。
本記事は、量子化の詳細はAWQ/GPTQ/FP8/GGUFの量子化比較、コスト比較はローカル vs ChatGPTの比較、自分の資料に答えさせる方法はプライベートRAG入門に続きます。
ローカルLLMとは?なぜ今こんなに人気なのか
ローカルLLMとは、ChatGPTのような大規模言語モデル(LLM)を、クラウドではなく自分のPC上で動かすことです。人気が急上昇している理由は、はっきりしています。
| 利点 | 内容 |
|---|---|
| 無料 | 月額課金なし。一度環境を作れば、使い放題(電気代を除く) |
| プライバシー | 入力したデータが外部に送信されない。機密情報・個人情報を扱える |
| オフライン | ネット接続なしで動く。飛行機の中でも、社内の閉じた環境でも |
| 無制限・自由 | 利用回数の制限なし。モデルを自由に選び、改造できる |
背景には、オープンウェイトのモデル(Llama、Qwen、Gemma など)が「実用的に賢い」水準に達したことと、Ollama のようなツールが導入を劇的に簡単にしたことがあります。Ollama のダウンロード数は数年で爆発的に増え、デスクトップアプリも登場して、コマンドに不慣れな人でも使えるようになりました。「AIを自分の手元に置く」ことが、一部のエンジニアだけのものではなくなっています。
【核心】自分のGPUでどのモデルが動く?VRAM別・モデル選定表
ローカルLLMで最初にぶつかる壁が「自分のPCでどのモデルが動くのか」です。答えは、GPUのVRAM(ビデオメモリ)の量でほぼ決まります。モデルは「パラメータ数(7B=70億など)」が大きいほど賢いですが、その分メモリを食います。
下表は、実用的な量子化(後述のQ4_K_M)を前提に、必要なVRAMの目安です(重みの容量は「パラメータ数 × ビット数」で計算できる確定値、それに文脈用の余裕を足しています)。
| モデル規模 | 必要VRAMの目安(Q4) | 動かせる環境の例 | 用途の目安 |
|---|---|---|---|
| 3B | 約3GB〜 | 8GB VRAM / 多くのノートPC / CPUでも可 | 軽い要約・分類・チャット |
| 7〜8B | 約6GB〜 | 8GB VRAM(やや余裕12GB) / M1〜 | 日常の万能ライン(最初の推奨) |
| 13〜14B | 約10GB〜 | 12〜16GB VRAM / M2 Pro〜 | 一段賢い汎用 |
| 32〜34B | 約20GB〜 | 24GB VRAM(RTX 3090/4090) / M-Pro 32GB | 高品質・推論寄り |
| 70B | 約42GB〜 | 48GB級 or GPU2枚 / Mac 64GB+ | 最上位(ハードを選ぶ) |
読み方: 「自分のGPUのVRAM ÷ 1.3〜1.5」くらいが、無理なく動く重みの上限の目安です。例えば16GBのGPUなら14Bクラスまでが快適、24GBなら32Bクラスが狙えます。Apple Silicon(M系)はメインメモリをVRAMのように使えるため、64GB機なら70Bも動きますが、帯域の都合で速度は控えめになります。
この「載るか載らないか」は、計算で確かめられます。前提を明示した関数にすると、こうなります。
/**
* モデルが手元のGPUに載るかを概算する。
* Q4_K_M ≒ 約4.5bit/パラメータを前提(量子化方式で変わるので目安)。
* 文脈(KVキャッシュ)の余裕を加える。最終的な可否は実機で確認すること。
*/
function estimateModelVramGiB(paramsBillions: number, bitsPerParam = 4.5): number {
const weightBytes = paramsBillions * 1e9 * (bitsPerParam / 8);
const contextOverheadGiB = 1.5; // 文脈長・同時実行で増減する目安
return weightBytes / 1024 ** 3 + contextOverheadGiB;
}
function fitsOnGpu(paramsBillions: number, gpuVramGiB: number): boolean {
return estimateModelVramGiB(paramsBillions) <= gpuVramGiB;
}
// 例: 8B は 8GB GPU に概ね載る / 70B は 48GB 級が必要
fitsOnGpu(8, 8); // → true(ぎりぎり。文脈を短めに)
fitsOnGpu(70, 24); // → false(24GBには載らない)
どのツールを使う?Ollama vs LM Studio
ローカルLLMを動かすツールは色々ありますが、最初の選択肢は実質この2つです。
| Ollama | LM Studio | |
|---|---|---|
| 特徴 | コマンド+ローカルAPI。軽量で自動化・自作アプリ向き | GUI(画面操作)中心。モデル探しとチャットが直感的 |
| 向く人 | 開発者・自作したい人・APIで繋ぎたい人 | まずGUIで試したい人・非エンジニア |
| 始め方 | インストール後 ollama run <モデル> の1行 | アプリでモデルを選んでダウンロード→チャット |
| API | あり(localhost:11434) | あり(OpenAI互換サーバ) |
迷ったら Ollama をおすすめします。導入が軽く、後述のようにローカルAPIが付いているので、自作アプリや社内文書AIへ発展させやすいからです。GUIで気軽に始めたいなら LM Studio が快適です。
量子化(Q4_K_M)を一言で:品質ほぼ維持で容量1/4
モデル名に出てくる Q4_K_M や Q5 といった記号が「量子化」です。量子化とは、モデルの重みを低いビット数で表現して容量を小さくする技術です。
- 量子化なし(FP16・16bit): 8Bモデルで重みだけ約16GB → 普通のPCには載らない。
- Q4_K_M(約4.5bit): 同じ8Bが約4.5GBに圧縮 → 8GBのGPUで動く。
実用上、Q4_K_M が「品質をほとんど落とさずに容量を約1/4にする」定番の選択です。まずはこれを選べば間違いありません。もっと品質を上げたいなら Q5_K_M や Q6、もっと小さくしたいなら Q3 ——というトレードオフです。仕組みの詳細は量子化方式の比較と量子化のサービング経済学で解説しています。
速度(tok/s)の現実:必ず自分のPCで計測する
「どれくらいの速さで動くの?」——これはローカルLLMで最も誤解の多い点です。正直に言います。速度(1秒あたりの生成トークン数 = tok/s)は、GPU・モデルサイズ・量子化・推論バックエンドで大きく変わるため、ネット上の「○○ tok/s出た」という数字を鵜呑みにしてはいけません。
定性的な現実は、こうです。
- 小さいモデル(3〜8B・Q4)を、最近のディスクリートGPUで動かす → 人が読む速度より十分速く、対話に支障ないことが多い。
- 大きいモデル(70Bなど)や、Apple Siliconのユニファイドメモリ、CPUオフロード → かなり遅くなり、用途を選ぶ。
- デコード(1文字ずつ生成)はメモリ帯域がボトルネックになりやすい。だから量子化で重みを小さくすると、容量だけでなく速度にも効きます。
私は普段、量子化したオープンモデルをGPUサーバー上の vLLM で本番運用していますが、その経験から断言できるのは——**「自分のワークロードでの体感は、自分のマシンで計ってみないと分からない」**ということです。Ollama なら、回答の最後に生成速度が表示されます。まず Q4_K_M の7〜8Bを動かし、遅ければモデルを小さく、速くて余裕があればモデルを大きく——と、自分のPCを基準に調整してください。
実際に動かす:Ollamaの最短手順と、APIで自作する
最短3ステップ
# 1. Ollama をインストール(公式サイト or パッケージマネージャ)
# 2. モデルを取得して対話する(初回はダウンロードが走る)
ollama run llama3.1:8b
# 3. これだけ。プロンプトに質問を打てば、ローカルで完結して回答が返る
ローカルAPIで自作アプリを作る(データは外に出ない)
Ollama の真価は、ローカルにHTTP APIを公開している点です。http://localhost:11434 に投げるだけで、データを一切外部に送らずに自作のチャットアプリや業務ツールを作れます。世界最高水準のクライアントは、こう書けます。
interface ChatMessage {
readonly role: "system" | "user" | "assistant";
readonly content: string;
}
interface OllamaChunk {
readonly message?: { readonly content?: string };
readonly done: boolean;
}
/**
* ローカルのOllamaにチャットを投げ、生成トークンを逐次yieldする非同期ジェネレータ。
* - 通信はlocalhostのみ=データは外部に出ない(プライバシー)
* - AbortSignalでタイムアウト/キャンセル可能(回復性)
* - NDJSONを行単位で安全にパースし、不完全な行は次チャンクへ持ち越す(堅牢性)
*/
async function* streamOllamaChat(
params: { model: string; messages: readonly ChatMessage[]; signal?: AbortSignal },
endpoint = "http://localhost:11434",
): AsyncGenerator<string, void, unknown> {
const res = await fetch(`${endpoint}/api/chat`, {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ model: params.model, messages: params.messages, stream: true }),
signal: params.signal ?? AbortSignal.timeout(120_000),
});
if (!res.ok || res.body === null) {
throw new Error(`Ollama request failed: ${res.status} ${res.statusText}`);
}
const reader = res.body.pipeThrough(new TextDecoderStream()).getReader();
let buffer = "";
try {
for (;;) {
const { value, done } = await reader.read();
if (done) break;
buffer += value;
// NDJSON: 改行で区切られた完全な行だけを処理する
let newlineIndex: number;
while ((newlineIndex = buffer.indexOf("\n")) !== -1) {
const line = buffer.slice(0, newlineIndex).trim();
buffer = buffer.slice(newlineIndex + 1);
if (line === "") continue;
const chunk = JSON.parse(line) as OllamaChunk;
const delta = chunk.message?.content;
if (delta !== undefined && delta !== "") yield delta;
if (chunk.done) return;
}
}
} finally {
reader.releaseLock(); // ストリームのリソースを確実に解放(KISS / 後始末)
}
}
// 使い方: トークンが届くたびに画面へ流す(ストリーミングUX)
// for await (const token of streamOllamaChat({ model: "llama3.1:8b", messages })) {
// process.stdout.write(token);
// }
このコードは、型安全(anyなし)・タイムアウトとキャンセル(回復性)・壊れた行で全体を落とさない安全なパース・確実なリソース解放を備えています。ローカルAPIに繋げば、ここから「自分の資料に答えるAI(プライベートRAG)」へ発展させられます。
ローカル vs ChatGPT、結局どっちがいい?
結論だけ言うと、用途で使い分けるのが正解です。
- ローカルLLMが向く: プライバシーが重要(機密・個人情報)、オフラインで使いたい、大量に使ってAPI課金を抑えたい、自由に改造したい。
- ChatGPT(クラウド)が向く: とにかく最高品質が欲しい、ハードに投資したくない、すぐ使いたい。
「無料だから常にローカルが得」とは限りません。ハードウェア代・電気代・手間まで含めた正直なコスト比較は、ローカルLLM vs ChatGPT の記事で詳しく検証しています。
よくある質問(FAQ)
Q. ローカルLLMは本当に無料ですか?
ソフトウェア(Ollama / LM Studio)とオープンウェイトのモデルは無料で使えます。月額課金もありません。ただし「完全に無料」ではなく、PCの電気代と、快適に動かすためのハードウェア(GPU等)への初期投資はかかります。すでに十分なPCを持っているなら、追加費用はほぼ電気代だけです。
Q. 自分のPCでどのモデルが動きますか?
GPUのVRAM量で決まります。目安は、8GBで7〜8B、12〜16GBで13〜14B、24GBで32B、70Bは48GB級のVRAM(またはGPU2枚、Mac 64GB以上)です。いずれもQ4量子化を前提とした目安で、「VRAM ÷ 1.3〜1.5」が無理なく載る重みの上限の目安になります。本文のVRAM別モデル選定表を参照してください。
Q. GPUがない(普通のノートPCやCPUだけ)でも動きますか?
動きます。3B程度の小さいモデルなら、GPUなしのCPUでも実用的な速度で動くことが多いです。Apple Silicon(M系)のMacは、メインメモリをVRAMのように使えるため、ディスクリートGPUがなくても比較的大きいモデルを動かせます。まずは小さいモデルから試してください。
Q. データは本当に外部に送信されませんか?
ローカルLLMは、モデルを自分のPC上で動かすため、入力したデータは外部に送信されません(モデルのダウンロード時を除く)。Ollama のAPIも localhost で完結します。これがプライバシー面での最大の利点で、機密情報や個人情報を扱う用途で特に重要です。
Q. Q4_K_M とは何ですか?どれを選べばいいですか?
量子化(モデルを軽くする圧縮)の方式です。Q4_K_M は「品質をほとんど落とさずに容量を約1/4にする」定番で、まずはこれを選べば失敗しません。より高品質なら Q5_K_M / Q6、より小さくしたいなら Q3、というトレードオフです。
Q. 速度はどれくらい出ますか?
GPU・モデルサイズ・量子化で大きく変わるため、一概には言えません。小さいモデル(3〜8B・Q4)を最近のGPUで動かせば、対話に支障ない速度が出ることが多いです。大きいモデルやCPU/ユニファイドメモリでは遅くなります。ネット上の数値を鵜呑みにせず、Ollama が表示する生成速度で、必ず自分のPCで計測してください。
まとめ:まずQ4の7〜8Bを ollama run で動かす
ローカルLLMを最短で始めるために、押さえるべきは次の通りです。
- 利点は「無料・プライバシー・オフライン」——普通のPCでも実用的なAIが動く。
- 動くモデルはVRAMで決まる——8GBで7-8B、16GBで14B、24GBで32B、70Bは48GB級が目安(Q4)。
- ツールは Ollama(手軽・API付き)が第一候補——
ollama run llama3.1:8bの1行から。 - 量子化は
Q4_K_Mを既定に——品質をほぼ保って容量1/4。速度は必ず自分のPCで計測する。 - ローカルAPIで自作できる——データを外に出さず、チャットや社内文書AI(プライベートRAG)へ発展。
「自社の機密データを外に出さずにAIを使いたい」「ローカルLLMを業務に本格導入したい」——個人で試す段階から、本番運用(自前GPU・vLLM・社内RAG)まで、私は実務で手がけています。自前ホスティングのコスト設計や本番RAGの設計とあわせ、要件に応じてお手伝いします。