2026年4月26日日曜日

LocalAI v4.1.3 ベースで最新のllama.cppを使ってmake

なかなか魅力的な修正が入っているので現時点での最新のリリース(b8929)をベースとして実行したかったので、/backend/cpp/llama-cpp/grpc-server.cppへのLocalAIのmasterに反映されている部分の一部を取り込むことで何とかmakeしてみました。

ネイティブ環境でのmakeでネックとなるのは実環境のgrpcライブラリなのでUbuntu 24.04.4 LTS(Server)の場合は、必要なパッケージを追加するのは前提ですが、/backend/cpp/llama-cpp/CMakeLists.txtに少し手を加えて問題を回避するのが一番の様です。
find_package(Protobuf CONFIG REQUIRED)→find_package(Protobuf REQUIRED)
としてprotobufのビルド問題を回避し、
link_directories("/usr/lib/x86_64-linux-gnu")
include_directories("/usr/include")
を追加するとmakeが通ります。

大抵はこれだけで、バイナリが出来上がりますが、問題はとっても過渡期なためにllama.cppとLocalAIとの整合性の問題が出てmakeが困難な状況でした。

llama.cpp側は新しいLLMへの対応やバグ修正、機能拡張で結構根幹部分から拡張されていくのですが、LocalAI側はその拡張に対して機能を追加したり拡張などを行っています。

今回はLocalAI側のストリームメッセージ内でマルチモーダル系のメディアファイルをLocalAI側でもきちんと保持する方向の追加が行われたので、LocalAI v4.1.3ベースの場合はbackend内だけではなく、全体的な修正が加えられています。

まぁmasterベースにしてビルドしてもいいのですが、v4.1.3をベースとしたままllama.cppだけ最新のものを取り込みたいので何とかできないかと足掻いていたわけですが。

/backend/cpp/llama-cpp/grpc-server.cppは #9299(base)にコミットされたものをベースにして #9511 #9560 の変更内容を反映させることで、llama.cppの変更を吸収することができました。LocalAI側の拡張部分を排除することで上手くmakeすることができました。 

0 件のコメント:

コメントを投稿