シンギュラリティ実験ノート

購入した1000ドルPCで何がどこまでできるのか実験した記録です。

1000ドルPCでllama2.cppを動かしてみた

大規模言語モデル(LLM)をGPUを使って動かそうとすると、大量のメモリを使うため我が1000ドルPCの8GBのVRAMでは動かない可能性が高い。そこでまずはCPUのみで動くプラットフォームllama2.cppを試してみた。

llama2.cppとは

llama2.cppはCPUでLlama2を動かすことができるC++で書かれたプログラムである。Llama2はMeta社が開発した大規模言語モデルである。将棋AIに例えれば、llama2.cppがやねうら王のようなプログラムで、Llama2が水匠のような学習モデルと思えばいいのではないか。(厳密にはちょっと違う気もするが・・)

導入手順

まずは手始めに以下の記事を参考に動かしてみることにした。

zenn.dev

基本的に上記記事の通りである。要点のみ以下に記載する。

1.ビルド環境の構築

$ sudo apt install build-essential

2.ソース一式をダウンロードしビルド

llama.cpp 直下に実行ファイル mainができる。

$ git clone https://github.com/ggerganov/llama.cpp
$ cd llama.cpp
$ make

3.モデルのダウンロード

HuggingFaceからllama-2-7b-chat.ggmlv3.q8_0.binをダウンロードする。1パラメタを8bit(1バイト)に量子化したモデルである。

4.GGML形式を最新のGGUF形式に変換

python3 convert-llama-ggml-to-gguf.py --input ./models/llama-2-7b-chat.ggmlv3.q8_0.bin --output ./models/llama-2-7b-chat.ggmlv3.q8_0.gguf

5.プログラムmainを起動

-m でモデルを指定し、-p で指示を与える。

$ ./main -m ./models/llama-2-7b-chat.ggmlv3.q8_0.gguf --temp 0.1 -p "### Instruction: Tell me how to get to Tokyo station from Shinagawa station. ### Response:"

結果

### Instruction: Tell me how to get to Tokyo station from Shinagawa station. ### Response: Sure! To get to Tokyo Station from Shinagawa Station, you can take the JR Yamanote Line train from Platform B at Shinagawa Station. The journey takes approximately 15 minutes and costs 270 yen (one way). Alternatively, you can take the JR Keiyo Line train from Platform A at Shinagawa Station, which takes around 30 minutes and costs 440 yen (one way). Please note that these prices are subject to change, so be sure to check the most up-to-date information before your trip. [end of text]

 

Google 日本語訳

指示:品川駅から東京駅への行き方を教えてください。

反応:もちろん!品川駅から東京駅に行くには、品川駅のBホームからJR山手線に乗ります。所要時間は約15分、料金は片道270円です。また、品川駅AホームからJR京葉線に乗車することもでき、所要時間は約30分、料金は片道440円です。料金は変更となる場合もありますので、お見積等で最新の情報をご確認ください

感想

Llama2は日本語がダメなようだ。日本語で聞いても英語で答えを返してくる。ほぼ待ち時間なく答えが帰ってくることは素晴らしいが、回答の正確さという点では微妙である。他に「日本の年金制度の特徴とは何ですか?」と質問をしてみたが、ツッコミどころ満載の回答が返ってきた(笑)。

日本語対応のモデルもあるようなので、この週末で試してみたい。量子化したモデルであれば8GBのVRAMで動く気がするのでその方法も調査したい。