はじめに
こんにちは、ひよこです!
今回は、ローカル環境で大規模言語モデル(LLM)を動作させるためのツール ollama の最新情報をまとめました。ollama は最新の LLM 群(Llama 3、Llama 3.2、DeepSeek-R1、Phi 4、Mistral など)に対応しており、各種モデルをダウンロード後、ローカル環境でそのまま実行できます。最新バージョンでは、並列処理機能や REST API 統合が強化され、研究・プロトタイピングのみならず、モバイル環境など多様なユースケースに柔軟に対応できるようになりました。話題の LLM の性能をちょっと試したいといった用途には最適です!
🐣 次の記事で ollama を使おうと思っていたので、ついでに入門書いちゃいました
ollama とは?
ollama は、ローカル環境で LLM のモデルを管理・実行するためのソフトウェアです。GPU がなくても CPU だけで動作するモデルが多数用意されており、特に以下の点で優れています。
- 並列処理機能:複数のチャットセッションやエージェントを同時に実行可能
- REST API 統合:外部ツールやアプリケーションとの連携が容易
- 豊富なモデル対応:Llama 系をはじめ、DeepSeek-R1、Phi 4、Mistral など、用途に合わせたモデルが選択可能
- ローカル実行可能:最初のモデルダウンロード以外はネットワーク接続が不要
インストール方法
- 公式サイトからインストーラをダウンロード:Ollama Download
- インストール後、ターミナルで以下のコマンドを実行し、バージョン情報が表示されれば完了です。
ollama --version
ollama version 0.5.12
現在の最新バージョンは 0.5.12 です。
モデルのダウンロードと実行
1. モデルのダウンロード
たとえば、Meta 社の最新モデル Llama 3 をダウンロードする場合、次のコマンドを実行します。
ollama pull llama3
ダウンロードが完了すると、モデルはデフォルトで以下のディレクトリに保存されます。
C:\Users\[ユーザ名]\.ollama
環境変数 OLLAMA_MODELS
を変更することで、保存先をカスタマイズできます。
🐣 Linux なら ~/.ollama 以下です
2. モデルの実行
ダウンロード済みのモデルを実行するには、次のコマンドを使用します。
ollama run llama3
実行後、対話型プロンプトが表示され、モデルとのやり取りが可能になります。
対話を終了する場合は、/bye
を入力してください。
すぐに試したい場合、pull
を省略してはじめから run
を実行することも可能です。
🐣 モデルがまだダウンロードされていない場合はダウンロード後に対話が開始します!
ollama run llama3.2:1b
モデルによっては複数のパラメータサイズが存在します。たとえば llama3.2
には 1B
と 3B
のバージョンがあります。デフォルトのサイズを確認するには、次のコマンドを実行します。
ollama show llama3.2
🐣 予想外にモデルサイズが大きい場合もあるのでご注意を!
また、その LLM ファミリーでダウンロード済みモデルの確認は、次のコマンドを実行します。
ollama list llama3.2
使用可能なモデルの例
Model | Parameters | Size | コマンド例 |
---|---|---|---|
Llama 3 | 8B | 4.2GB | ollama run llama3 |
Llama 3.2 | 3B | 2.0GB | ollama run llama3.2 |
Llama 3.2 | 1B | 1.3GB | ollama run llama3.2:1b |
Llama 3.2 Vision | 11B | 7.9GB | ollama run llama3.2-vision |
Phi 4 | 14B | 9.1GB | ollama run phi4 |
DeepSeek-R1 | 6.7B | 4.2GB | ollama run deepseek-r1 |
DeepSeek-R1 Turbo | 13B | 8.4GB | ollama run deepseek-r1-turbo |
Gemma 2 | 2B | 1.6GB | ollama run gemma2:2b |
Mistral | 7B | 4.1GB | ollama run mistral |
Moondream 2 | 1.4B | 829MB | ollama run moondream |
利用可能なモデルは、公式サイトのモデル一覧ページで確認できます。
Ollama Models
🐣 Let's note i7 メモリ32G では qwen2.5-coder(7B) はぎりぎり動きました。
REST API の利用
ollama
は HTTP API を提供しており、以下のようにリクエストを送信できます。
-
ollama serve
コマンドでサーバーを起動
ollama serve
- 別のターミナルで API を呼び出し
curl -X POST http://localhost:11434/api/generate -d '{"model": "llama3", "prompt": "こんにちは"}'
これを実行すると llama3 によって生成されたテキストがストリーミング形式で返ってきます。
返答だけを見たい場合は、例えば次のような Python プログラムで実行可能です。
import requests
import json
# ollama API へリクエストを送信
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": "llama3",
"prompt": "こんにちは"
},
stream=True # ストリーミングレスポンスを受け取る
)
# 生成されたテキストを格納する変数
generated_text = ""
# ストリーミングレスポンスを処理
for line in response.iter_lines():
if line:
# バイト列を文字列にデコード
line_str = line.decode('utf-8')
# JSON 形式の文字列をパース
data = json.loads(line_str)
# 返答テキストの部分を取得して追加
if "response" in data:
generated_text += data["response"]
# リアルタイム表示する場合は以下を使用
print(data["response"], end="", flush=True)
🐣 Javascript でちょこちょこっと書けばブラウザ上で動く ChatBot が簡単に作れそうですね
おわりに
ollama
を使えば、最新の LLM をローカル環境で簡単に実行できます。並列処理や REST API の統合により、開発や研究の幅が広がるため、ぜひ試してみてください!