11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollama x Dify で Local LLM App を構築

Last updated at Posted at 2024-05-09

At first

ローカルLLM(Large Language Models)を管理・実行するためのツール「ollama」と
LLMを利用したWebアプリケーションをGUIで容易に構築できるサービス「Dify」に触れる。

具体的には、ollamaを使ってローカルでLLMを操作し、Difyを使ってそれをWebアプリケーションに統合する方法を示す。

Ollama

Web

GitHub

About

git はソースコード、docker は仮想環境を管理・実行する際に便利なツールだが、
ollama は上記と似ていて、ローカルLLMを管理・実行する際に便利なツールである。
pull で llm をローカルに落とし、run で llm を実行できる。
また、ローカルLLM 使用するための Web API としての機能をもち、Difyからも使用することができる。
裏では llama.cpp が動いているようで高速な動作が期待できる。
llama.cpp: https://github.com/ggerganov/llama.cpp

How to use

以下の docker image を利用するだけ。

ワークディレクトリを作成し、以下の docker-compose.yaml を作成する。
その後、docker-compose up -d を実行する。

version: "3.8"

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ./volumes/ollama:/root/.ollama
    # GPU ON
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: [gpu]
    restart: always

コンテナが立ち上がった後は以下のコマンドでローカルLLMを pull, run する。

# enter container
docker exec -it ollama

# pull
ollama pull llama3

# run 
ollama run llama3

以下のように Web API としても使用できる。

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

(GGUFモデルから)自作のモデルを作りたい場合は以下コマンドを実行する。

# enter container
docker exec -it ollama

# create model
ollama create <user name>/<model name> -f Modelfile

# check model
ollama show <user name>/<model name> --modelfile

# push model
# key setting is required
# https://github.com/ollama/ollama/blob/main/docs/import.md#publishing-your-model-optional--early-alpha
ollama push <user name>/<model name>

モデルが pytorch や safetensors の場合は以下フロー(長い)を参照して ollamaモデル を作成する。
https://github.com/ollama/ollama/blob/main/docs/import.md#importing-pytorch--safetensors

Dify

Web

GitHub

About

GUI(Webアプリケーション)でLLMアプリケーションを作成できるサービスである。
単純にLLMを利用したチャットアプリを作成できるだけでなく、フローを用いたRAGの作成も可能である。

How to use

以下の github を pull した後に、docker のディレクトリに行き、
docker-compose up -dを実行してWebアプリケーションを起動する。

Ref

  • Ollam x Dify で Local LLM App を構築する具体的なフローについて記載されいる。

  • Ollama で自作モデルを作成する方法が記載されている。

  • にゃんたのYoutube(その1)

  • にゃんたのYoutube(その2)

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?