「Llama.cpp」とHugging Faceが開発している「ChatUI」を使ってLLM(大規模言語モデル)をローカル環境で使用する

はじめに

WSL2上のLlama.cppで大規模言語モデルの「zephyr-7b-beta」を実行して、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

Llama.cppのインストール

最初に「~/.bashrc」に以下を書き込んでおく必要があります。

export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

WSL2再起動後(~/.bashrcの再読み込みでも可)にインストールします。

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make LLAMA_CUDA=1

Llama.cppの実行

モデルは別途ダウンロードする必要があります。

./server -m models/zephyr-7b-beta.Q4_K_M.gguf -c 2048 -ngl 16

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": "Local Zephyr",
      "chatPromptTemplate": "<|system|>\n{{preprompt}}</s>\n{{#each messages}}{{#ifUser}}<|user|>\n{{content}}</s>\n<|assistant|>\n{{/ifUser}}{{#ifAssistant}}{{content}}</s>\n{{/ifAssistant}}{{/each}}",
      "parameters": {
        "temperature": 0.1,
        "top_p": 0.95,
        "repetition_penalty": 1.2,
        "top_k": 50,
        "truncate": 1000,
        "max_new_tokens": 2048,
        "stop": ["</s>"]
      },
      "endpoints": [
        {
         "url": "http://127.0.0.1:8080",
         "type": "llamacpp"
        }
      ]
  }
]`

実行

npm install
npm run dev -- --open

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






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



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