ai
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
ローカルで動くLLM:Ollama完全ガイド
Ollamaを使ってLLM(大規模言語モデル)をローカルで動かす方法を解説。インストールからLlama・Mistral・Gemmaの実行、OpenAI互換APIの活用、RAGへの応用まで紹介します。
一言結論
Ollamaを使えばLLMをローカルで動かすハードルはDockerと同程度まで下がっており、プライバシー要件がある社内ツールや開発環境でのAI活用においてクラウドAPIへの依存から脱却できる。
Ollama とは
Ollama は LLM(大規模言語モデル)をローカルで簡単に動かすためのツールです。Docker のように ollama pull llama3.2 でモデルをダウンロードし、ollama run llama3.2 で対話できます。
メリット:
- データが外部サーバーに送られない(プライバシー)
- API 料金なし
- オフラインで動作
- モデルのカスタマイズが自由
インストール
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows: ollama.com からインストーラーをダウンロード
# バージョン確認
ollama --version
主要モデルを使う
# Llama 3.2(Meta)— 汎用、日本語もそこそこ対応
ollama pull llama3.2
ollama run llama3.2
# Gemma 3(Google)— 軽量で高性能
ollama pull gemma3
# Mistral(Mistral AI)— コーディングが得意
ollama pull mistral
# Qwen 2.5(Alibaba)— 日本語・中国語に強い
ollama pull qwen2.5
# モデル一覧
ollama list
コマンドラインで対話
ollama run llama3.2
>>> こんにちは。TypeScriptでFizzBuzzを書いて
for (let i = 1; i <= 100; i++) {
if (i % 15 === 0) console.log("FizzBuzz");
else if (i % 3 === 0) console.log("Fizz");
else if (i % 5 === 0) console.log("Buzz");
else console.log(i);
}
>>> /bye
OpenAI 互換 REST API
Ollama は OpenAI の API 仕様と互換性があります。既存のOpenAIクライアントをそのまま向き先変更で使えます。
# サーバーとして起動(デフォルトで起動済み)
# http://localhost:11434 でAPIが利用可能
// JavaScript/TypeScript(openai SDK をそのまま使う)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "http://localhost:11434/v1",
apiKey: "ollama", // 任意の文字列
});
const response = await client.chat.completions.create({
model: "llama3.2",
messages: [
{ role: "user", content: "TypeScriptのジェネリクスを説明して" }
],
});
console.log(response.choices[0].message.content);
# Python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama",
)
response = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Pythonでクイックソートを実装して"}]
)
print(response.choices[0].message.content)
カスタムモデルを作る(Modelfile)
# Modelfile
FROM llama3.2
# システムプロンプトを設定
SYSTEM """
あなたは日本語で回答するプログラミングアシスタントです。
コードは必ずコードブロックで示し、解説を日本語で提供してください。
"""
# テンプレートをカスタマイズ
PARAMETER temperature 0.7
PARAMETER num_ctx 8192
# モデルを作成
ollama create my-jp-assistant -f Modelfile
# 使う
ollama run my-jp-assistant
RAG(検索拡張生成)への応用
// ローカルLLM + ローカルembeddingでRAGを構築
import ollama from "ollama";
// テキストを embedding に変換
async function embed(text: string) {
const response = await ollama.embed({
model: "nomic-embed-text",
input: text,
});
return response.embeddings[0];
}
// 質問に答える
async function answer(question: string, context: string) {
const response = await ollama.chat({
model: "llama3.2",
messages: [{
role: "user",
content: `以下の情報を参考に質問に答えてください。\n\n情報:\n${context}\n\n質問: ${question}`
}]
});
return response.message.content;
}
必要なスペック目安
| モデルサイズ | VRAM目安 | 例 |
|---|---|---|
| 1〜3B パラメータ | 2〜4GB | Gemma 3 1B |
| 7〜8B パラメータ | 5〜8GB | Llama 3.1 8B |
| 13〜14B パラメータ | 10〜12GB | Qwen 2.5 14B |
| 70B パラメータ | 40GB+ | Llama 3.3 70B |
CPU のみでも動きますが、GPU(CUDA / Metal)があれば大幅に高速化されます。
まとめ
Ollama は「ローカル LLM を試す」ための最良のツールです。プライバシーが重要な業務での利用、オフライン環境、コスト節約など用途は多岐にわたります。OpenAI 互換 API により、既存コードを最小限の変更でローカル LLM に切り替えられる点も大きな魅力です。
参考: Ollama 公式 / Ollama GitHub