LLaMA 2 日本語モデルを CPU 実行する
M2 MacBook Pro にて、Llama.cpp を使い量子化済みの LLaMA 2 派生モデルを実行することに成功したので手順をメモします。 Llama.cpp は言語モデルをネイティブコードによって CPU 実行するためのプログラムであり、Apple Silicon 最適化を謳っていることもあってか、かなり高速に動かせました。
使用している OSS がまだ開発段階で、今後仕様がかなり変わることになるとは思いますが、CPU だけで動作させられるようになれば製品への組み込みが非常にしやすくなると思います。
前回記事と同様に ELYZA Japanese LLaMA 2 モデルを動かします。 Llama.cpp で実行するために自前で GGUF に変換しなければならないかと思いましたが、変換済みモデルを公開してくれている方がいたので、そちらを使いました。
Xcode Command Line Tools は導入済みであるとします。
今回の環境
- MacBook Pro 14" (2023)
- Apple M2 Pro
- 16GB RAM
- macOS Ventura
ビルド
Llama.cpp をビルドします。
Mac でのビルドは超カンタンです1。make
するだけです。
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
モデルのダウンロード
GGUF 変換済みモデルをダウンロードします。
今回は q5_K_M
を選択しました。
Llama.cpp によって配置場所が決められているわけではないので、ダウンロード後は適当なところに配置します。
実行
実行バイナリは main
です。
-m
オプションでモデルパスを指定して実行します。
./main -m ../ELYZA-japanese-Llama-2-7b-instruct-q5_K_M.gguf \
--temp 0 -n 1024 \
-p '[INST] <<SYS>>あなたは、役立つアシスタントです。<</SYS>>セーラームーンの主人公は誰ですか?[/INST]'
--temp
オプションは温度、-n
オプションは出力長制限の設定です。
[INST] <<SYS>>あなたは、役立つアシスタントです。<</SYS>>セーラームーンの主人公は誰ですか?[/INST] 承知しました。セーラームーンの主人公は、月野うさぎ (つきのうさぎ) です。 [end of text]
実際の生成速度は以下の画像の通りで、MacBook で動かしているとは思えないぐらい速く生成できます。
次にやりたいこと
CLI だとプロンプトを色々試すのが面倒なので、WEB フロント付きでのデプロイをやりたいと思います。
2023-10-20: 続き
Windows 版も試していますが、ビルドは出来てもプログラムの出力が文字化けしたりと安定しませんでした。 ↩︎