[#33] 進化するローカルLLM
はじめに
昨年暮れに自宅のPCにOllamaを導入して、軽量な「オープンLLM」であるPhi3、Llama3を導入し、その性能を確認しました。日本語は不具合が多いですが?? レスポンスもまずまずで、簡単な問い合わせなら十分に活用できることが分かりました。これは非常に喜ばしい結果です。
代表的なテキスト生成モデル
Google社が公開している、Geminiをもとに設計されたLLM
Meta社が公開している、小型かつ高性能なLLM
Microsoft社による大規模言語モデル(LLM)ならぬ小規模言語モデル(SLM)
カナダのAIスタートアップ、Cohere社による、RAGとToolの使用などの長いコンテキスト処理に最適化したモデル
フランスのAIスタートアップ、Mistral AI社による、パフォーマンスと使いやすさを追求したモデル
同じくMistral AI社による混合エキスパートモデル
llama3.2のインストール
早速、Llama3.2をインストールして実行してみようと思います。以前ollamaを事前にインストールし、さまざまなモデルを試しました。今回もollamaを基盤として、Llama3.2を実行していきたいと考えています。
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama.tgz
ollama pull llama3
(base) ubuntu22@ubuntu22-All-Series:~/ollama$ ollama run llama3
?
?
>>> こんにちは
Konnichiwa! ? How are you today? ?
(base) ubuntu22@ubuntu22-All-Series:~/ollama$ ollama list
NAME ID SIZE MODIFIED
gemma:latest a72c7f4d0a15 5.0 GB 2 months ago
llama3:latest a6990ed6be41 4.7 GB 8 months ago
llama3.2:latest a80c4f17acd5 2.0 GB 2 months ago
phi3:latest a2c89ceaed85 2.3 GB 8 months ago
(base) ubuntu22@ubuntu22-All-Series:~/ollama$ sudo systemctl status ollama
● ollama.service - Ollama Service
Loaded: loaded (/etc/systemd/system/ollama.service; enabled; vendor preset>
Active: active (running) since Mon 2025-01-06 10:26:29 JST; 6min ago
Main PID: 1077897 (ollama)
Tasks: 13 (limit: 14182)
Memory: 799.2M
CPU: 53.437s
うまく動作しましたね、次はDifyから使えるようにします
Difyからllama3を利用する
(base) ubuntu22@ubuntu22-All-Series:~$ curl http://localhost:11434/api/generate -d "{"model": "llama3", "prompt":"Why is the sky blue?"}"
{"model":"llama3","created_at":"2025-01-06T01:27:09.738233026Z","response":"What","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:10.053810493Z","response":" a","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:10.410191105Z","response":" great","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:10.705706062Z","response":" question","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:11.004081802Z","response":"!\n\n","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:11.403264904Z","response":"The","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:11.696147403Z","response":" sky","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:11.992111523Z","response":" appears","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:12.366050719Z","response":" blue","done":false}
{"model":"llama3","created_at":"2025-01-06T01:27:12.665490654Z","response":" to","done":false}
今のままでは、
(base) ubuntu22@ubuntu22-All-Series:~/ollama$ ss -ltn | grep 11434
LISTEN 0 4096 127.0.0.1:11434 0.0.0.0:*
ローカルからしかログイン出来ません。
$ sudo systemctl edit ollama.service で設定ファイルを変更します。
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
(base) ubuntu22@ubuntu22-All-Series:/$ sudo systemctl daemon-reload
(base) ubuntu22@ubuntu22-All-Series:/$ sudo systemctl restart ollama.service
(base) ubuntu22@ubuntu22-All-Series:/$ ss -ltn | grep 11434
LISTEN 0 4096 *:11434 :
これでローカルAIとDifyがつながりました。
現時点でのローカルLLMは、GPT-4やClaude 3のような大規模な商用モデルと比べると性能面では大きく譲ります。応答の精度や創造性、文脈理解の深さなど、まだまだ改善の余地があることは否めません。
しかし、そこにこそLLMの輝かしい未来が隠されているのです。なぜなら、ローカルLLMは「カスタマイズ可能」という大きな武器を持っているからです。例えば、特定の業界用語や社内独自の言い回しを学習させることができれば、その企業だけの専用AIアシスタントが作れます。法律事務所なら判例に特化したAI、製造業なら技術文書に精通したAI、医療機関なら最新の医学知識を持ったAI...可能性は無限大です。 実際、ファインチューニングが可能なローカルLLMで専門性もったAIの開発は、あちこちで着々と進んでいます。近い将来、私たちは自分たちの必要性に応じてAIをカスタマイズし、高性能なLLMをローカル環境で運用できるようになるでしょう。
そして、ローカルLLMには他にも魅力的なメリットがあります。データのプライバシー保護はもちろん、インターネット接続に依存しない安定した応答性、使用量に応じた課金を気にする必要がない点、さらには自社のナレッジベースと緊密に連携できる点など。これらは、特に企業での実務利用において、大きなアドバンテージとなります。