はじめに
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
HF_TOKEN=="hf_abcdefg"
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 -- --open
2回目以降は下の部分だけでOKです。
間違い、修正点などあればコメント頂ければ幸いです。