見出し画像

LinuxでのLlaMA 2覚書(文章生成AI)

はじめに

  • ChatGPTやBingといったクラウド上のサービスだけでなく、手元のLinuxマシンでお手軽に文章生成AIを試したいと思っていました。

  • この記事では、自分の備忘録を兼ねて、文章生成AI「Llama 2」の環境構築と動作確認の手順をメモとして書き残していきます。

  • 具体的にはC++版の文章生成AI「Llama.cpp」の環境構築となんちゃって日本語化の手順をかんたんに紹介します。

1.llama.cppの環境構築と動作確認の手順

まず前提条件として、今回使用するハードウェアはノートPCで、第9世代Corei7+メモリ16G+SSD 512Gという構成です。またOS環境はUbuntu 22.04.2となります。

次にソフトウェアですが、ふつーはまずCUDAをインストールして、Pythonの仮想環境の構築を行って、さらに…となるのが定番ですが、今回は「llama.cpp」というC++での実装をターゲットに選びました。これは最近のLinux環境であればmake1発で環境構築が行えるため、普段Linuxは使うけどAIソフトはよくわからない…という方でもお試しできるのではないかと思います。

では具体的な手順です。
まず文章生成AI「llama.cpp」の実行環境の構築から。

(1)llama.cppソースの取得とコンパイル
といっても実行するコマンドはたったの3つかそこらですので、とてもかんたんですよ〜。適当なディレクトリを用意して、端末から次のコマンドを実行。

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

これだけでOK。
もしコマンド不足でエラーが出た場合はaptコマンドとかで追加インストールしてくださいね。

(2)学習モデルの入手
今回は次の2つのコマンドを実行し、Llama 2の学習モデルを入手します。お試しなので1番小さなモデルを指定しますが、それでも7GBくらいあります。ダウンロードの時間やストレージの空き容量に注意してくださいね。

cd models
wget https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/resolve/main/llama-2-7b-chat.ggmlv3.q4_1.bin

※もしお試しした結果、Llama 2を使い続けたいと思った場合は米Meta社から正規のライセンス取得をオススメします。

(3)動作確認
再びllama.cppのトップディレクトリに戻り、次のコマンドを実行。

cd ..
./main -m models/llama-2-7b-chat.ggmlv3.q4_1.bin -c 512 -b 1024 -n 512 --in-prefix " " --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt

次のような表示が出れば起動は成功です。私の環境では起動してからチャットが可能になるまで20秒くらいかかりました。(つよつよなCPUであればもっと早いでしょう)

起動時の画面例

試しに「Hello!」と入力してみます。

「Hello!」と入力した場合の動作例

2.なんちゃって日本語化の手順

次のファイル「chat-with-bob2.txt」をダウンロードして、llama.cpp/promptsディレクトリに保存します。これは同じllama.cpp/promptsディレクトリに元から存在している英語の「chat-with-bob.txt」を私が日本語に翻訳・手直ししたものです。元ファイルがMITライセンスなので、このファイルも同様の扱いとしておきます。

これでなんちゃって日本語化は終了です。さっそく動作確認してみましょう。端末から次のコマンドを入力してください。

./main -m models/llama-2-7b-chat.ggmlv3.q4_1.bin -c 512 -b 1024 -n 512 --in-prefix " " --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob2.txt

次のような画面が表示されれば成功です。私の環境では起動してから入力可能になるまで30秒ほどかかりました。

なんちゃって日本語化llama.cpp起動画面の例

日本語でやり取りしてみましょう。

なんちゃって日本語化llama.cppの動作例

あとはご自身の手であれこれいじってくださいね。

なお、今回はあくまで「なんちゃって日本語化」のレベルですので、難しい質問にうまく答えられなかったり、あるいは英語で答えたりすることもあると思いますが、そこはお許しください。
もう少し本格的に使い込みたい場合は英語で質問したり、より大きな学習モデルに入れ替えてみるなど工夫していただければと。

最後までお読みいただきありがとうございました。
それでは、よいAIライフを!

いいなと思ったら応援しよう!