「Ollama」と「ChatUI」を使って Microsoft の Phi-3 をローカルで利用する。軽い、速いは正義です。

はじめに

WSL2上のOllamaで「Phi-3」を実行して、Windows上のChatUIでそれを利用してみました。

無料で実行可能です。
github.com
github.com

必要なもの

WSL2にDocker Engineのインストールが必要です。
Windowsにnpmのインストールが必要です。

使用した環境

WSL2

Ubuntu 22.04 on WSL2
CUDA 11.8

Windows

Windows 11

WSL2側でやること

Dockerのインストール

こちらに従いました。
WSL2の場合は最初に以下のコマンドを実行しないとDockerが起動しません。

sudo service docker start

MongoDBの起動

初回

sudo docker run -d -p 27017:27017 --name mongo-chatui mongo:latest

2回目以降

sudo docker start mongo-chatui

Ollamaのインストール

curl -fsSL https://ollama.com/install.sh | sh

OllamaとMongoDBの実行

sudo systemctl start ollama
sudo service docker start
sudo docker start mongo-chatui
ollama run phi3

「systemctl」と使うためには「/etc/wsl.conf」に以下を書き込んでおく必要があります。

[boot]
systemd=true

Windows側でやること

Node.jpのインストール

Node.jsをインストールすると同時にnpmもインストールされます。
こちらから「Node.js(LTS)」をインストールしました。

> node --version
v20.12.2
> npm -version
10.5.0

npmは以下のコマンドで10.5.2にアップデートしました。

npm install -g npm@10.5.2

このまま実行すると後で警告が出るので以下を実行しておきます。

npx update-browserslist-db@latest

ChatUIのセットアップ

リポジトリのクローン

git clone https://github.com/huggingface/chat-ui
cd chat-ui

「.env.local」ファイルの作成

中身はこのようにします。(HF_TOKENは各自のものを使用して下さい)

MONGODB_URL=mongodb://localhost:27017

MODELS=`[
  {
      "name": "microsoft/Phi-3-mini-4k-instruct",
      "tokenizer": "microsoft/Phi-3-mini-4k-instruct",
      "description" : "Phi-3 Mini-4K-Instruct is a 3.8B parameters, lightweight, state-of-the-art open model built upon datasets used for Phi-2.",
      "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/microsoft-logo.png",
      "modelUrl": "https://huggingface.co/microsoft/Phi-3-mini-4k-instruct",
      "preprompt": "",
      "parameters": {
        "stop": ["<|end|>", "<|endoftext|>", "<|assistant|>"],
        "max_new_tokens": 1024,
        "truncate": 3071
      },
      "promptExamples": [
        {
          "title": "Write an email from bullet list",
          "prompt": "As a restaurant owner, write a professional email to the supplier to get these products every week: \n\n- Wine (x10)\n- Eggs (x24)\n- Bread (x12)"
        }, {
          "title": "Code a snake game",
          "prompt": "Code a basic snake game in python, give explanations for each step."
        }, {
          "title": "Assist in a task",
          "prompt": "How do I make a delicious lemon cheesecake?"
        }
      ],
      "endpoints": [
        {
         "url": "http://127.0.0.1:11434",
         "type": "ollama",
         "ollamaName" : "phi3"
        }
      ]
  }
]`

実行

npm install
npm run dev

2回目以降は下の部分だけでOKです。

このような表示になります。

> chat-ui@0.8.2 dev
> vite dev



  VITE v4.5.3  ready in 898 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h to show help

ブラウザで「http://localhost:5173/」にアクセスすれば使えます。

間違い、修正点などあればコメント頂ければ幸いです。



このエントリーをはてなブックマークに追加