Difyとは
Difyドキュメントによれば、「DifyはオープンソースのAIアプリ開発プラットフォームです。Backend as ServiceとLLMOpsの理念を融合し、開発者が迅速にAIアプリケーションを構築できるようにします。同時に、プログラミングが得意でない方でも、自分のアイデアをすぐにAIアプリにできる直感的なインターフェースを提供しています」とのこと。
LLMを利用したアプリケーション開発は、とても大変だけど、Difyを使えば簡単に作ることができるよってことらしいです。
ところでLLMOpsとは何ぞや?
LLMOpsとは?
Copilotに聞いてみたところこんな回答でした
LLMOps(Large Language Model Operations)は、大規模言語モデル(LLM)の開発、デプロイ、保守を管理するための手法やベストプラクティスのセットです。これは、機械学習モデルの運用を管理するMLOps(Machine Learning Operations)に似ていますが、LLM特有の要件に対応しています。
具体的には、LLMOpsは以下のようなステップを含みます
- 基盤モデルの選択:事前にトレーニングされたLLMを選び、下流のタスクに適応させる
- 精度改善:ファインチューニングやプロンプトエンジニアリングを通じてモデルの精度を向上させる
- 評価指標の設計:LLMの性能を評価するための指標を設計し、モニタリングする
- セキュリティとプライバシーの強化:不正アクセスやプロンプト・インジェクション攻撃からモデルを保護する
LLMOpsを導入することで、LLMの性能を維持しつつ、効率的かつ安全に運用することが可能になります
つまり、LLMによる開発で考えなといけないたくさんのことを、フレームワークのような感じでまとめてくれているので、それに従って開発をしていけばうまくできるようにしているもの、ということですね。
Dify導入
以下の環境で行っています
OS Windows 11
WSL Ubuntu22.04 WSLにはdockerインストール済み (※WindowsからDocker Desktopでインストールしています)
以下のDifyのドキュメントにDocker Composeデプロイがあるのでそちらを参照します。
ただ、これだとgitでクローンして、Dockerビルドするやり方となります。
そこで、DifyのGitHubサイトを見るとdocker-compose.yamlの例があるので、そちらを使います。
こちらをダウンロードして利用すれば簡単にDifyが起動できます。(--force-recreateがあると、都度作成するのでつけておくと便利です)
以下のポートを80のままだと、他で使用されているものがあると動かないので、とりあえず88とかにしています。8080とか9080とかにしているのをよく見ますね。
nginx:
image: nginx:latest
...
...
ports:
- "${EXPOSE_NGINX_PORT:-88}:${NGINX_PORT:-80}"
docker-compose up -d --force-recreate
localhost:88にアクセスすると以下のような画面が表示されます。
特に指定のアドレスやパスワードはないので適当に登録してログインしましょう。
localhostなので、インターネットに接続することはなくローカルに保存されます。
自由に触って、Difyを使ってみましょう。
OllamaでローカルLLM
ログインして、設定画面に入ると、「モデルプロバイダー」があります。
その中に、Ollamaがあるので選択して、モデルを使用します。
以前の記事でOllamaをwslで使用できるようにしていますが、wsl上でOllamaが起動していれば、モデルが選択できるようになっているはずです。
Ollamaで動いていても、Difyでは現時点は、LLMかText Embeddingとしてしか利用できないようです。
wslと接続する場合ですが、Base URLをhttp://host.docker.internal:11434 にします。
これでDifyでOllamaが使えるようになります。
あとは自由に触っていきましょう
よきAI Lifeを!!