ChatGPTをRaspberry Piで実行できることを以前紹介しましたが、Raspberry Piはクライアント側の処理のみを提供し、すべてのプロンプトをクラウド上の強力なサーバーに送信するという欠点がありました。しかし、8GBのRaspberry Piでローカルに実行し、FacebookなどのサービスのAIに使用されているのと同じLLaMA言語モデルを使用する、同様のAIチャットボットを作成することは可能です。
このプロジェクトの核となるのは、Georgi Gerganov氏のllama.cppです。一晩で書かれたこのC/C++モデルは、一般的な用途に十分な速度で、インストールも簡単です。MacとLinuxマシンで動作しますが、このハウツーでは、Gerganov氏のインストールプロセスを微調整し、Raspberry Pi 4でモデルを実行できるようにします。より高速なチャットボットが必要で、RTX 3000シリーズ以上のGPUを搭載したコンピューターをお持ちの場合は、ChatGPTのようなボットをPCで実行する方法に関する記事をご覧ください。
期待を管理する
このプロジェクトを始める前に、皆さんの期待に応える必要があります。Raspberry Pi 4 上の LLaMA は遅いです。チャットプロンプトの読み込みに数分かかることがあり、質問への回答にも同程度の時間がかかります。スピードを重視するなら、Linux デスクトップ / ラップトップをご利用ください。これはミッションクリティカルなユースケースというより、むしろ楽しいプロジェクトです。
このプロジェクトに必要なもの
- ラズベリーパイ4 8GB
- Linux が動作する 16GB の RAM を搭載した PC
- NTFSでフォーマットされた16GB以上のUSBドライブ
Linux PC を使用した LLaMA 7B モデルのセットアップ
プロセスの最初のステップは、Linux PCにllama.cppをセットアップし、LLaMA 7Bモデルをダウンロードして変換し、USBドライブにコピーすることです。Raspberry Piの8GBのRAMでは足りないため、モデルの変換にはLinux PCの追加のパワーが必要です。
1. Linux PC でターミナルを開き、git がインストールされていることを確認します。
sudo apt update && sudo apt install git
2. git を使用してリポジトリのクローンを作成します。
git clone https://github.com/ggerganov/llama.cpp
3.一連のPythonモジュールをインストールします。これらのモジュールはモデルと連携してチャットボットを作成します。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
python3 -m pip install torch numpy sentencepiece
4. g++とbuild essentialがインストールされていることを確認してください。これらはCアプリケーションのビルドに必要です。
sudo apt install g++ build-essential
5.ターミナルでディレクトリを llama.cpp に変更します。
cd llama.cpp
6.プロジェクトファイルをビルドします。Enterキーを押して実行します。
make
7.このリンクからLlama 7Bのtorrentをダウンロードします。私はqBittorrentを使ってモデルをダウンロードしました。
magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA
8.ダウンロードを調整し、7Bファイルとトークナイザーファイルのみをダウンロードします。他のフォルダには、数百ギガバイトにも及ぶ大きなモデルが含まれています。
9. 7B とトークナイザー ファイルを /llama.cpp/models/ にコピーします。
10.ターミナルを開き、ホームディレクトリにあるllama.cppフォルダに移動します。
cd llama.cpp
11. 7Bモデルをggml FP16形式に変換します。PCの環境によっては、この処理に時間がかかる場合があります。この処理だけで16GBのRAMが必要になります。この処理では、13GBのmodels/7B/consolidated.00.pthファイル全体をPyTorchモデルとしてRAMに読み込みます。8GBのRaspberry Pi 4でこの処理を実行すると、不正命令エラーが発生します。
python3 convert-pth-to-ggml.py models/7B/ 1
12.モデルを4ビットに量子化します。これによりモデルのサイズが縮小されます。
python3 quantize.py 7B
13. /models/ の内容を USB ドライブにコピーします。
Raspberry Pi 4でLLaMAを実行する
この最後のセクションでは、Raspberry Pi 4でllama.cppのセットアップを再度実行し、USBドライブを使ってモデルをコピーします。次に、インタラクティブチャットセッションを起動し、「Bob」に一連の質問をします。ただし、Pythonコードの記述は要求しないでください。このプロセスのステップ9は、Raspberry Pi 4でもLinux PCでも実行できます。
1. Raspberry Pi 4 をデスクトップで起動します。
2.ターミナルを開き、git がインストールされていることを確認します。
sudo apt update && sudo apt install git
3. git を使用してリポジトリのクローンを作成します。
git clone https://github.com/ggerganov/llama.cpp
4.一連のPythonモジュールをインストールします。これらのモジュールはモデルと連携してチャットボットを作成します。
python3 -m pip install torch numpy sentencepiece
5. g++とbuild essentialがインストールされていることを確認してください。これらはCアプリケーションのビルドに必要です。
sudo apt install g++ build-essential
6.ターミナルで、llama.cpp にディレクトリを変更します。
cd llama.cpp
7.プロジェクトファイルをビルドします。Enterキーを押して実行します。
make
8. USB ドライブを挿入し、ファイルを /models/ にコピーします。これにより、モデル ディレクトリ内のすべてのファイルが上書きされます。
9. 「Bob」とのインタラクティブなチャットセッションを開始します。ここで少し忍耐が必要です。7Bモデルは他のモデルよりも軽量ですが、Raspberry Piにとってはまだかなり重いモデルです。モデルの読み込みには数分かかる場合があります。
./chat.sh
10.ボブに質問をしてEnterキーを押します。私は「スタートレック:新世代」のジャン=リュック・ピカードについて尋ねました。終了するにはCtrl + Cを押します。