目次
はじめに
こんにちは、ディーネットのよろず請負人、深見です。
9月に入りましたが、まだまだ暑い日が続きますね。皆さまいかがお過ごしでしょうか。
今回は特別編として、ローカル環境でのLLM利用について詳しくご紹介します。
Difyから外部のLLMサービスを利用する方法は既に広く知られていますが、多くの方が気になるのは「データが外部に漏れるのでは?」という懸念でしょう。
この心配事を完全に解消するとは言えませんが、大幅に軽減する方法として、LLMを限定された環境内で運用することが挙げられます。
少し前にGPTのOSS版(正確にはオープンウェイト言語モデル)である「gpt-oss」が提供されました。目ざとい方々は既にこれを自分の環境で動作させているかもしれませんね。
このgpt-ossは、実はDifyでも利用可能です。
今回は、Ollamaを使用してローカルLLM環境を構築し、gpt-ossが正常に動作するかを検証してみました。
💡 注目ポイント
gpt-oss-20bは一般的なベンチマークでOpenAI o3-miniと同様の性能を発揮し、わずか16GBのメモリで動作するとのこと!
検証環境の概要
アーキテクチャ
- Ollama (Linux サーバ)
- Dify からプラグイン経由でOllama上のモデル(gpt-oss:20B)を利用
1. Ollama実行環境の構築
(1) サーバ環境の準備
まず、Ollama用のサーバを構築します。
サーバ仕様:
- Private IP:10.0.1.56
- OS:AlmaLinux 9.6 (Sage Margay)
- EC2インスタンスタイプ:t3.medium(メモリ不足) → t3.xlarge(CPUクレジット問題) → m6a.xlarge(まあ何とかかな?)
- EBS (gp3):50GB
基本設定:
# システムアップデート
sudo dnf check-update
sudo dnf clean all
sudo dnf upgrade
# タイムゾーン設定
sudo timedatectl set-timezone Asia/Tokyo
sudo timedatectl
# ホスト名設定
sudo hostnamectl hostname ollama-server08
sudo reboot
# 必要なパッケージのインストール
sudo dnf install git wget net-tools
(2) Ollama環境の構築
作業ディレクトリを作成してOllamaをインストールします。
mkdir ollama
cd ollama
# Ollamaインストーラーの取得
curl -fsSL https://ollama.com/install.sh -O
# または
wget https://ollama.com/install.sh
# Ollamaのインストール
/bin/bash ./install.sh
インストール完了時の出力例:
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
⚠️ 重要な注意点
インストーラーは以下を自動的に実行します:
- システムアーキテクチャの検出
- 適切なOllamaバイナリのダウンロード
- 専用システムユーザーとグループの作成
- systemdサービスファイルの設定
- サービスの有効化と起動
GPU環境について
今回はCPU環境での検証ですが、最適なパフォーマンスを得るためにはGPUドライバーのインストールを強く推奨します:
- NVIDIA: 公式プロプライエタリNVIDIAドライバーをインストール(
nvidia-smi
で確認) - AMD (ROCm): ROCmツールキットをインストール(
rocminfo
で確認)
動作確認
# 起動確認
ps axwwwu | grep ollama
# バージョン確認
ollama --version
# 出力例: ollama version is 0.11.6
# サービス状態確認
systemctl status ollama.service
gpt-oss モデルのダウンロード
# gpt-ossのインストール(約14GB)
ollama pull gpt-oss:20b
# ダウンロード済みモデルの確認
ollama list
# モデル情報の詳細確認
ollama show gpt-oss:20b
モデル情報例:
Model
architecture gptoss
parameters 20.9B
context length 131072
embedding length 2880
quantization MXFP4
Capabilities
completion
tools
thinking
リモートアクセスの設定
Difyからアクセスできるよう、Ollamaの設定を変更します。
sudo systemctl edit ollama.service
以下の設定を追加:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=10.0.*"
設定後、サービスを再起動:
sudo systemctl restart ollama.service
sudo systemctl status ollama.service
# リッスン状態を確認
netstat -apnt | grep LISTEN
⚠️ セキュリティ設定
Dify側からリモートアクセスするため、セキュリティグループで11434ポートへのアクセスを許可する必要があります。
動作テスト
ollama run gpt-oss:20b
テスト例:
>>> おはようございます
Thinking...
User says: "おはようございます" (Good morning). They greet...
...done thinking.
おはようございます!今日はどんな予定がありますか? ☀️
>>> 1+2+3+4+5+6+7+8+9=
Thinking...
We need to answer the sum: 1+2+...+9...
...done thinking.
合計は **45** です。
2. Dify側の設定
パターン1: OpenAI-API-compatible プラグインを使用
事前調査で、DifyのOllamaプラグインではgpt-ossが利用できない可能性があることが判明したため、まずはOpenAI-API-compatibleプラグインを試します。
プラグイン設定:
- [使用] → [モデルプロバイダー] で「OpenAI-API-compatible」を追加
- モデル設定:
- Model Type: LLM
- Model Name: gpt-oss:20b
- API endpoint URL: http://10.0.1.56:11434/v1/
- Completion mode: chat
- Model context size: 4096
- API Keyは不要
チャットフロー作成:
- LLMとしてgpt-oss:20bを選択
- Temperature: 0.7
- その他はデフォルト値を使用
※ LLM のパラメータ設定
パターン2: Ollama プラグインを使用
プラグイン設定(Ollama v0.0.7):
- [使用] → [モデルプロバイダー] で「Ollama」を追加
- モデル設定:
- Model Type: LLM
- Model Name: gpt-oss:20b
- Base URL: http://10.0.1.56:11434
- Completion mode: Chat
- Model context size: 8000
- Vision support: Yes
- Function call support: No
パフォーマンス調整
GPU非搭載環境での処理負荷軽減のため、以下のパラメータ調整を実施:
- Temperature: 0.1(応答の確定性を向上)
- Top P: 0.5(応答候補の絞り込み)
- Size of context window: 4096(コンテキストサイズの制限)
検証結果
動作確認
両方のパターンでgpt-ossは正常に動作することを確認しました。
テスト質問例:
- "Chat-GPTについて概要を教えてください。"
- "gpt-ossについて教えてください。"
- "あなたの得意なことを教えてください。"
パフォーマンスについて
課題点:
- GPU非搭載環境では応答時間が長い
- 複雑な質問ではタイムアウトが発生する可能性
- "コーヒーブレイク+α"の時間は覚悟が必要
改善案:
- GPUを搭載した環境での運用を推奨
- メモリ32GB以上のWindows/Mac環境での運用を検討
- LLMパラメータのさらなる最適化
まとめ
検証成果
今回の検証により、Dify + gpt-ossは問題なく動作することが確認できました。ローカル環境や閉鎖的なネットワーク環境下での生成AI利用には十分実用的です。
今後の課題
-
ハードウェア要件の検討
- gpt-oss:20Bの適切な稼働環境(スペック)
- 上位モデル(gpt-oss:120B)使用時の要件検討
-
パフォーマンス最適化
- LLMパラメータ設定の詳細検討
- GPU活用による高速化
-
セキュリティ強化
- ネットワーク分離の検討
- アクセス制御の実装
推奨構成
最小構成(検証用):
- CPU: 4コア以上
- メモリ: 16GB以上
- ストレージ: 50GB以上
推奨構成(本格運用):
- GPU: NVIDIA RTX 4070以上
またはAMD ROCm対応GPU に相当のこと - CPU: 8コア以上
- メモリ: 32GB以上
- ストレージ: 100GB以上(SSD推奨)
データプライバシーを重視する組織にとって、このようなローカルLLM環境は非常に有効な選択肢となるでしょう。
今後、より高性能な環境でのパフォーマンス検証や、セキュリティ設定の詳細についてお伝えしていければと思います。
※ GPU 装備の環境での検証も考えています。
この記事がお役に立てば幸いです。ご質問やご意見がございましたら、お気軽にコメントをお寄せください!