🎉

【備忘録】llama-cpp-python+pyinstallerでexe配布するときの注意点

2024/01/06に公開

ローカルLLMを使ったアプリケーションをexeファイルする時の注意点があったので、備忘録的に。

LLMモデルはあとで読み込めるようにする

最初試したのは以下。
pyinstaller --onefile --add-data "models/hoge.gguf;models" main.py
これだと途中でエラーになる。原因はggufにしたところで数GBになるため。なので、ビルド終わったらcpコマンド等でdistディレクトリにmodelsをコピーしてあげよう。

hooksをきちんと書く

llama-cpp-pythonはllama.dllというのが必要で、どうやらビルド時にこれの参照が上手くいかなくなるらしい。下記ページを参考に、hooksディレクトリにhook-llama_cpp.pyを配置してあげよう。
https://github.com/abetlen/llama-cpp-python/pull/709/files

最終的なコマンドは以下になった。これさえ気を付ければexe配布できるので、気軽に配布してみよう。
pyinstaller --additional-hooks-dir=./hooks --onefile main.py ; cp -r ./models ./dist/models

Discussion