[失敗談]Dify をローカルで試してみてスペックが足りなかった件について話すよ

Ai

こんにちは。前のブログでDify をEC2 でデプロイしてみて、画面表示まで見てみました。ただ、Dify だけではchatgpt みたいに言語モデルがないので、言語モデルも一緒に連携する必要があります。

なので、今回のブログでは言語モデルも一緒のサーバーにインストールしてみた時にスペック足りなかったわーーのブログになります。(※ この記事は言語モデルに対しての批判記事ではありません。ただ純粋にAI などを使うためにはこのスペックでは難しいよねというのを備忘録として残すものになります)

今回の環境

前回のブログでは、EC2 でやっていましたが、disk がvolume 10GB では足りないということが分かったので、一旦どれくらい必要なのが知りたかったので、virtualbox でやってみました。

  • Virtualbox (vagrant)
  • Alma Linux 9
    • メモリ:6GB
    • CPU 4 core
  • Dify
  • Ollama

このセットでやっていきました。Ollama を使ったのは、単純にサーバー1台でいけるのかなと試してみたかったからですwww普通はスペック上げないと厳しいのは目に見えているのですが、検証大事なので、やってみました。後、個人でやるので、EC2 のスペックを上げるとコストが。。。となるといった理由もあります。

Ollama をインストールしてみた

まず。Ollama をインストールしていきます。

# ollama インストール
curl https://ollama.ai/install.sh | sh

=> complete などが出ると完了
warnING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.
(このエラーが出た場合、GPU に対応していないものを使用した時に出ます)

これでインストール作業は完了です。めちゃくちゃ簡単ですね。ただ、ollama のservice のファイルを少しいじくる必要があるので、その作業だけやっていきます。

vi /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
Environment="OLLAMA_HOST=0.0.0.0"   // 追加場所
Environment="OLLAMA_ORIGINS=*" // 追加場所

[Install]
WantedBy=default.target

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# service を編集したので、daemon reload 必要
systemctl daemon-reload

# 起動
 systemctl enable ollama
 systemctl start ollama

ここまできたら、ollama を使えるまできましたね。最後にollama が動作しているのを確認する必要があるので、ollama のport が、11434 なので、port 番号を指定してIP で確認します。

http://xxx.xxx.xxx.xxx:11434/

=> Ollama is running と表示されると現在の動作としてはオッケーです

Ollama に言語モデルをインストールしてみるよ

# 今使える言語モデル確認
ollama ls
NAME               ID              SIZE      MODIFIED

=> 今インストールしてないので、ゼロです

# インストールしていきます(とりあえず3つ試しにインストールしてみました
ollama pull phi3

ollama create elyza:jp8b -f Modelfile

ollama pull llama3.2

=> それぞれ2GB ~ 5GB 程度のファイルをインストールする必要があります
(30 分程度時間がかかるので、それまでコーヒータイム)

# インストールされているのを確認
ollama ls 
NAME               ID              SIZE      MODIFIED
llama3.2:latest    a80c4f17acd5    2.0 GB    6 hours ago
elyza:jp8b         648fceebe125    4.9 GB    7 hours ago
phi3:latest        4f2222927938    2.2 GB    7 hours ago

言語モデルをインストールできたので、よし使ってみようと思ってelyza:jp8b をdify にセットしてみると

なんと、メモリが足りないのでできませんっていわれました。。。6GB もあるのにできないのは初体験だったので、こんなにメモリがいるんだなとびっくりです。唯一登録できたのが、llama3.2:latest のモデルだったわけですが、使ってみたところ返答がかえってこなくなり、サーバーの応答もしなくなり、泣く泣くollama を停止しました。

まとめ

本とかでも見てもGPU を積んでて最低限これくらいのスペックいるよみたいなのが書いてる通りに、実際EC2 のインスタンスでいうと、g5.2xlarge の メモリ16GB くらいあるほうが安定するんだなと実感した一日でした。次は諦めて、bedrock 使うとかサーバーを2台立てて負荷を分散しながらできるかや、他のサービスを使うなどをして、トライしていこうと思います。

参考サイト

AWS上のEC2 (RHEL9) で "Dify" と "Ollama" のスタンドアロン環境を作る - Qiita
はじめにお疲れ様です。 @yuki_ink です。先日、以下の記事を投稿しました。多くの方に "いいね" と "ストック" をしていただき、ローカル環境で生成AIを利用する、というユースケース…

コメント

タイトルとURLをコピーしました