ローカルPCでブラウザで使用できるAIチャットを日本語で動かす(llama.cpp)

Blog

今回はローカルPCで、はやりのAIチャットをブラウザで操作できるようにしていこうと思います。

AIチャットではChatGPTやBirdなどが有名ですが、すべてサービス提供者のサーバを介しています

セキュリティ的な問題で会社内で使用できないこともあると思います

そこで、ローカルPCやサーバでAIチャットができるツールがあるので構築していきます

llama.cpp

llama.cppは、大規模言語モデル「LLaMA(Large Language Model Meta AI)」を効率的に動作させるソフトウェアです

C++で実装されています

今回はソースコードがビルドしてみます

GitHub - ggerganov/llama.cpp: LLM inference in C/C++
LLM inference in C/C++. Contribute to ggerganov/llama.cpp development by creating an account on GitHub.

下準備

以下のソフトウェアを事前にインストールしてください

CおよびC++の開発を支援するための軽量な開発キットw64devkitと呼ばれる開発ツールを導入します

以下のURLにアクセスしてw64devkit-1.23.0.zipをダウンロードします

Releases · skeeto/w64devkit
Portable C and C++ Development Kit for x64 (and x86) Windows - skeeto/w64devkit

ダウンロードしたら展開をして、任意の位置に保存してください

w64devkitに含まれるdebugbreak.exeがWindows Defenderが脅威として検出される可能性があります。

今回は必要のない実行ファイルのためそのままDefenderで削除されたまま使用します

w64devkit起動

w64devkitフォルダ内の`w64devkit.exe`をクリックします

すると以下のような画面が表示されると思います

llama.cpp

以下のコマンドを実行します

git clone https://github.com/ggerganov/llama.cpp.git

cdコマンドでllama.cppフォルダに移動します

cd llama.cpp/

makeコマンドでビルドします

make -j4

入力画面に戻ればビルド完了です

モデル

llama.cppだけでは、動作しません。モデルが必要です。

モデルはさまざまな組織から公開されています。モデルにもいろいろ種類があり、llama.cppでは一般的に「gguf」形式を使用します

今回は、「Meta-Llama-3-70B-Instruct」を有志の方がgguf形式に変換したデータを使用します

https://huggingface.co/grapevine-AI/Meta-Llama-3-70B-Instruct-GGUF/resolve/main/Meta-Llama-3-70B-Instruct-Q4_K_M.gguf?download=true

ダウンロードしたら「llama.cpp」のmodelsフォルダにいれます

以下のコマンドを実行するとWebサーバが立ち上がります

llama-server.exe -m models/Meta-Llama-3-70B-Instruct-Q4_K_M.gguf

ブラウザを開き、URLに「127.0.0.1:8080」を入力すると以下の画面が表示されます

今回は、Llama 3を使用しているので、Prompt Styleは「Llama3」をコンボボックスから選択してください

「SYSTEM」の入力欄では、システムプロンプトを記載します

システムプロンプトとは、モデルがユーザーからの入力(プロンプト)に応答する際に、その応答のスタイル、トーン、コンテンツを制御するために使用される内部的な指示です。

今回は以下のように設定しました

Below is an instruction that describes a task. Write a response in Japanese that appropriately completes the request.

Submitボタンを押すと「日本の首都はどこですか?」の質問について日本語で答えてくれます

簡単な質問については、正しく回答を得られていると思います!

コメント

タイトルとURLをコピーしました