🐄

OllamaでOpen LLMをローカルでデプロイ

2024/07/01に公開

概要

  • 使えるOpen LLMをチェック
  • OllamaでOpen LLMをローカルでデプロイ
  • Web UIを動かす
  • APIで呼び出し

ハードウェア

  • MacBook Pro 2021
  • メモリ:16GB
  • チップ:Apple M1 Pro

使えるモデル一覧

Open LLM leaderboard

https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard

デプロイできるモデル一覧

https://ollama.com/library

必要なメモリ

円滑にモデルを動かすために、必要なメモリをチェックしてください。

モデル モデルのサイズ 推薦のメモリ 起動コメンド
llama3 8B 4.7GB 16GB ollama run llama3
llama3 70B 40GB 64GB ollama run llama3:70b
gemma2 9B 5.4GB 16GB ollama run gemma2
gemma2 27B 16GB 64GB ollama run gemma2:27b
mxbai-embed-large 335M 670M 8GB ollama pull mxbai-embed-large

注意: mxbai-embed-largeはembeddingモデルです。

デプロイ手順

Ollamaのダウンロード

まずはOllamaアプリをダウンロードしてみます。
https://ollama.com/download

アプリのインストール

ダウンロードしたファイルを解凍してインストールしてみます。

インストールができたらターミナルでチェックします。

> ollama --version
ollama version is 0.1.47

モデルを動かす

下記のコメンドでgemma2 9Bを動かす

> ollama run gemma2

gemma2 27Bでしたら:

> ollama run gemma2:27b

注意:初回のみでモデルのダウンロードが必要です。

ターミナルで使う

ターミナルを用いてOpen LLMとの会話ができます。

終了します。

>>> /exit

Web UI

ターミナルでの会話は不便なので、Web UIを使った方がいいです。
Open WebUIというツールを用いて、簡単にWeb UIが作れます。
https://docs.openwebui.com/getting-started/

dockerをインストール

下記のリンクでdocker-desktopをダウンロードしてインストールしみます。
https://www.docker.com/ja-jp/products/docker-desktop/

インストールができたら下記のコメンドでチェックしてみます。

> docker --version
Docker version 26.1.4, build 5650f9b

ターミナルでOpen WebUIをインストール

"If Ollama is on your computer, use this command"の方に従います。
dockerでOpen WebUIをインストールします。

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

インストールができればチェックしましょう!

docker ps

ブラウザにアクセスしましょう

下記のリンクでアクセスができます。画面はChatGPTとすごく似ています。
http://localhost:3000/

ダウンロードしたモデルはUIの上に選択できます。

APIで呼び出し

Web UIに限らず、APIでの呼び出しもできます。

curl -X POST http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt":"Why is the sky blue?"
 }'

embeddingモデルも使えます。

まとめ

  • ollamaを用いて簡単にローカルでOpen LLMをデプロイできます。
  • 今のOpen LLMはChatGPTと比べてもう性能が近いです。
  • Web UIを使ったらChatGPTとほぼ同じな感じです。
  • APIの呼び出しもできるので、無料でLLMの製品の開発も可能です。

Discussion