最近、私がCGアニメ制作の方にかまけてる間に、ローカルLLM界隈で細かいブレークスルーが色々起きている。

まず、これは結構前の話だが、Llama.cppがCPU推論だけでなく、GPUオフロードによってGPU推論する事も可能になった。しかも、オフロードするレイヤー数を調整できるから、グラボのVRAM

に応じて半分だけはGPU、半分はCPU推論なんて事も可能だ。

こちらの記事によれば、CPU推論の時は5~8tpsだった速度が、GPU推論では60tpsに爆速化したらしい。(グラボはRTX A6000)↓

LLaMA.cpp+(cu)BLASのCPU/GPUのスループット検証(ローカル編) | Shikoan's ML Blog

transformersに比べてllama.cppはどんくらい高速なんだろう?とググったけど、そういう比較は見付かなかった。transformersだとちゃんとtps計測する方法が無いからだろう。ま、多分llama.cppの方が相当速いハズだ。

次に、rinnaからNekomataというLLMが公開された。これはQwenをベースにしており、メチャクチャ性能が高いらしい。Nekomata-14B-instructionモデルは、たった14Bパラメータにも拘らず、日本語ベンチにおいて70Bパラメータのjapanese-stablelm-base-beta-70Bに匹敵してしまっている。

Untitled

つまり、Nekomataの公開によってついに我々は日本語でそれなりに賢くて軽量なローカルLLMを手に入れたのだ!

英語圏の人達はLlama-2が出たあたりですでにそれなりに賢いローカルLLMをゲットできていた。しかし、Llama-2は日本語が弱かった。その後、Qwenがリリースされた。Qwenはかなり賢かったらしいが、イマイチ流行らなかったのは、ちょっと独自のアーキテクチャだったそうで、transformersやllama.cppで推論するには対応作業が必要だったからだ。最近llama.cppがQwenをサポートした。すなわち、QwenベースのNekomataも同様にllama.cppで動作するようになってるという事だ。

mutaguchi氏は結構色んなローカルLLMをガッツリ触って、AIキャラとチャットできたりAIキャラ同士で会話できるプログラム作って遊んでるそうだが、Nekomata-14BをGPT-3.5やNovelAIのKayra-13BやAIのべりすとのsupertrinに近いレベルと評価している。この意味は大きい。ついにこのレベルの日本語LLMをローカルで触れる日が来たという事だ。↓

https://twitter.com/mutaguchi/status/1739121758068957333

https://twitter.com/mutaguchi/status/1739165592673034642

あとNekomataはQwenのライセンスを継承しており、条件付きで商用利用可能というのも大きなポイントだろう。

さらに3つ目のブレークスルーはguidanceの覚醒である。

https://github.com/guidance-ai/guidance

guidanceはローカルLLMに魔法のようなパワーアップをもたらす機能が色々入ってるライブラリである。

結構前からあったのだが、イマイチ使う気が起きないでいた。というのも、なんかワケ分からんテンプレート記法を駆使する必要があったから、そんなん憶えるのダルいからだ。

だが、最近になってguidanceはバージョン0.1にアップデートされ、大幅に刷新された。もうワケ分からんテンプレート記法は撤廃された。pythonだけでスッと書けるようになった。