実行時間を見ていると、今までそんな感じはあまりなかったのですが、どうも初回の時に確実に時間がかかっている印象。
特定の条件下だと、この初回の待ち時間が無いような感じがするのと、特定の条件下だと不意に時間がかかるような感じがハッキリと見てて来ました。
make時には気づかなかったが、実行時にこんなメッセージが…
The oneAPI toolkits no longer support 32-bit libraries, starting with the 2025.0 toolkit release. See the oneAPI release notes for more details.
oneAPIツールキットは、2025.0ツールキットリリース以降、32ビットライブラリをサポートしなくなりました。詳細については、oneAPIリリースノートを参照してください。
一応グーグル翻訳から
最初はビルドで失敗しているのか、LocalAI関連のバグなのか、oneAPI関連のアップデートが問題なのか良く分からなかったのですが、移動中の電車の中でいろいろ調べているとLocalAIがクリスマスアップデートだとかなんとかで3.9.0に更新されていました。
色々調べる前に、docker経由で旧バージョンのイメージを実行してもdockerの3.8.0で動かしても、さらにビルドした3.8.0でも同じような状態だったので原因の一つはoneAPI関連かな?とあたりを付けてはいたのですが、Ubuntuで旧バージョンのoneAPIをインストールするにはどうすればいいのか良く分からなかったので色々調べると、とどのつまりはaptではなく、配布されているインストーラなどでインストールしないとダメそうなのと、複数バージョンをインストールすることも可能というのもわかりました。
ただ、手間はかかるので、二の足を踏むわけで…しかもダウングレードさせるというのはねぇ…ということで、移動中に色々と検索してたわけです。
ちなみにおかしい状態というのは、何も指定しないで普通にチャットはできるんです。ただ、チャットを続けたり、システムプロンプトで指定したりしてトークンが増えていると、返答のメッセージがテンプレート展開したような状態が表示されるのと、挙句の果てに trueeeeeeeeeeeeeeeee とか e を繰り返し続けたり、nullが永遠続いていたりとなんかあからさまに「壊れてる」感がすごくて怖い状態でした。ただ、CPUのみで動かすと問題なく動作することからLocalAIの設定周りはあまり関係ないのかな?とかあたりを付けていました。
で、3.9.0が公開されたのでbackendのllama-cppのMakefileを覗いてみると、どうもllama.cppの指定バージョンが異なっているので、その間のllama.cppのディスカッションを見ているとなんかそのものズバリのものが…2025.3バージョンを使うとなんたらかんたで、それの返答でバグを探してみるというような内容の後にコミットがされていました。プルリクエストはUPSTREAM PR #17838:[SYCL] fix softmax for iGPU #474 というもの
家についてから、さっそくLocalAIのv3.9.0をビルドして、llama-cppのbackendもビルドしてチャットしてみると何となく大丈夫そうな感じに。
結構大きめのシステムプロンプトを貼り付けてチャットを開始しても問題なく動くようになりました。