小さくロカールLLMしていたわけですが、ここ1年くらいで一気に性能が上がってきて、使えると言っていい感じになってきています。
何十番煎じかの感じですが、ワタシ的環境を部分を記載したいと思います。
今更ながら、同じことをしようとしている方は、一度下記の環境をトライしてみてほしいと思います。
TL;DR(一度書いてみたかった。)
ギリギリ実用環境
・メインメモリ64GB(たぶん)
・VRAM 11GB x2 (RTX2080ti x2)
・環境 Llama.cpp+OpenWebUI
・モデル Llama-4-Scout-Q4_K_XL-Unsloth
私的ローカルLLMの使えるレベル
初めて、動かしたLLMはBERTで、追学習しても本当に使えるようになるのかという感じでした。
”日本は右側通行ですか左ですか?”という質問に最後まで回答させられなかったのはいい思い出です。。。
現実的に使えるなと思い始めたのはLlama4です。その進化の度合いはすごいものです。
ローカルLLMをGeminiやChatGPTと並べて使っているのですが、Llama4はまあ、劣ってるけど使えるかな、と思わせるレベルです。(RAGを使ってないからという部分もあるかも)
質問してみると、まともな回答をしてくれます。
ローカルLLMのメリットについて、箇条書きで解説してください
ローカルLLM(Large Language Model)のメリットは以下の通りです。
・プライバシー保護:ローカルLLMは、ユーザーのデータが外部のサーバーに送信されることなく、ローカル環境で処理されるため、プライバシーを保護できます。確度が高くない
・セキュリティの向上:ローカルLLMは、外部のサーバーに依存しないため、セキュリティリスクを低減できます。
・オフライン利用:ローカルLLMは、インターネット接続がなくても利用できるため、オフライン環境での利用に適しています。
・カスタマイズ性:ローカルLLMは、ユーザーのニーズに合わせてカスタマイズできます。
・低遅延:ローカルLLMは、外部のサーバーに依存しないため、応答時間が短く、遅延が少ないです。
・コスト削減:ローカルLLMは、外部のサーバーを利用する場合に比べて、コストを削減できます。
実用って、人によって違いますよね。
我慢できないって人もいるかもしれません。
prompt eval time = 12186.42 ms / 641 tokens ( 19.01 ms per token, 52.60 tokens per second)
eval time = 1228.17 ms / 14 tokens ( 87.73 ms per token, 11.40 tokens per second)
total time = 13414.59 ms / 655 tokens
この実用化レベルが実現できたのはLlama4がMoEという、アクティブにするパラメータを部分的にする機能でVRAMの使用率を圧縮してくれている(と思う)わけです。
この機能はDeepSeek-R1で有名になった機能だと思います。
ローカルLLMの私的環境遷移
環境もはじめは、初心者向け?の
ollama+OpenWebUI
で始めました。
モデルはLlama2やPhi3あたりからだったとおもいます。
・メインメモリ64GB
・VRAM 11GB x2
・環境 ollama+OpenWebUI
導入が簡単で、GPU二枚の場合で、VRAM不足でも適当に動くからです。
(注記:RTX3090以降をお持ちの方はそのまま1枚運用でもいいと思います)
この環境でLlama4-Scoutだと、短い質問は動くのですが、長い質問だとクラッシュしました。
この段階でメインメモリ不足と思いまして、メインメモリを64GB > 128GBにします。
買ってから、Unslothモデルを知りました。。。64GBで良かったな、と。
Unslothモデルはメモリの使用率を改善しますが、動く環境は(たぶん)Llama.cppを直で使うしかありません。また、Llama.cppは難しいっていう情報でちょっと手を出せないでいました。
ですが、Llama.cppは難しいチューニングをしなければ意外とすんなり動いて、Unslothモデルは使用VRAMやメインメモリを改善します。
動かしてみると、まあ、使えないことはない。(祝)
とはいえ、見渡してもこんな、2000番台のGPUをつかった、しょっぱい構成でローカルLLMを(トライアル以外で)動かしている人はあんまり見かけないですね。
なお、メインメモリ128GBならMaverickも微妙に動きますが、まあ実用的な速度は出ません。
結論として、ローカルでLlama4が動くのは大きいと考えています。Llama4は非常にコンテキスト長が長く、話し合えば答えが出る可能性があるモデルだからです。
OpenWebUIのRAGの機能がエラーのままなので、なんとかしなくては。。。