RaspberryPiでLLMを実行するための環境としてはOllama,llama.cppなどがあります。
それ以外にMicrosoftからはOnnxRuntimeの拡張ライブラリとしてonnxruntime-genaiがリリースされています。
今回はRaspberryPi5にonnxruntime-genaiをインストールしてみたいと思います。
環境
・RaspberryPi5 8GB
・RaspberryPi OS with desktop 2024/07/04版
・32GB以上のストレージ(やはりSSDがいいと思います)
ビルドの準備
現時点でonnxruntime-genaiのARM64バイナリはWindows版だけ配布されているので、MacやLinuxではソースコードからビルドする必要があります。
また、ビルドする際にはCMakeを使用するのですが、最新のRaspberryPi OS にaptでインストールできるCMakeのバージョンが少し古いため、CMakeの最新版をビルドするところから始めます。
ビルドに必要なライブラリをインストールしてから、ソースコードを取得してビルド、インストールを行います。
$ sudo apt install libssl-dev
$ wget https://github.com/Kitware/CMake/releases/download/v3.30.5/cmake-3.30.5.tar.gz
$ tar zxvf cmake-3.30.5.tar.gz
$ cd cmake-3.30.5
$ ./bootstrap
$ make
$ sudo make install
次に任意のディレクトリにonnxruntime-genaiのレポジトリをクローンします。
$ git clone https://github.com/microsoft/onnxruntime-genai
$ cd onnxruntime-genai
ビルドにはonnxruntimeのバイナリも必要なのでダウンロードしてレポジトリ内のディレクトリ(ort)に配置しておきます。(2024/11/01 onnxruntimeが1.20.0にバージョンアップしました。)
$ curl -L https://github.com/microsoft/onnxruntime/releases/download/v1.20.0/onnxruntime-linux-aarch64-1.20.0.tgz -o onnxruntime-linux-aarch64-1.20.0.tgz
$ tar zxvf onnxruntime-linux-aarch64-1.20.0.tgz
$ mkdir ort
$ mv onnxruntime-linux-aarch64-1.20.0 ort
最後にビルドスクリプトを実行します。
$ python build.py --config Release
ビルドが完了すると onnxruntime-genai/build/Linux/Release/wheel/ にwhlファイルができています。
後はこれをpipでインストールすればonnxフォーマットのLLMで推論が可能になります。
次回はonnxruntime-genaiを使ってPhi-3-miniを動かしてみたいと思います。