【ローカルLLM】選択肢が広がるLLM実行環境
【自己紹介】
初めまして、A-Utaと申します。AI スタックチャン ミニマルという、カプセルトイサイズでお話しができるAIエージェントロボを目指して制作中者です。現時点までの作り方はこちらに公開していますので、興味あるからは、ぜひ召喚してマスターになって上げてくださいな!
【背景:LLM実行環境の2つの流れ】
2023年3月にOpenAIのAPIが公開され、Cloud上のLLM:ChatGPTと自由に会話ができるようになりました。が、ソースコードが明かされていないクローズドなLLMでどんな技術で動いているのか分からないまま、新しい機能や精度向上のニュースが世間を騒がせていました。また”巨大なLLMを実行(学習/推論)するためには膨大な電力が必要になる”ということで、巨大LLMモデルを持つIT各社が原子力発電所を調達するニュースも流れて来ました。
一方その流れに対抗するかのように、2023年7月にMetaがオープンソース※のLlama2を発表。巨大IT企業以外の環境でも”中身の見えるLLMを実行できるという別な流れ”ができ、後半から「個人のPCに強力なGPUを複数搭載して動かす人たち」をブログで見かけるようになりました。さらに2024年12現在「M5Stack Module LLMというマイコンオプションの電池で動くシングルボード上で動作するLLM」を見て、来年2025年は手元で動くローカルAIエージェントの時代が来るとひしひしと感じたため、この2番目流れの”非力な処理環境でも実行できるオープンソースのLLM実行環境”について記載します。
※何がオープンソースなのか?という議論は今も続いているようですが、中身は見えるようになりました
流れ1. 巨大IT企業の超高速環境で実行されるクローズドLLMモデル
流れ2. 非力な処理環境でも実行可能なオープンソースのLLMモデル
【本題:非力な処理環境でLLMを動かそう】
ようやく、ここから本題です。CloudにあるLLMではなく、自身のローカル環境でLLM動かすにはどうすれよいか?について、調べてみると、複数の方法があることが分かりました。私が現時点で試した3つの環境についてシェアします。
A.個人PCでLLMを動かす
参考:大量のメモリが必要なモデルを、マルチGPU環境を構成して実行する
ローカルLLMの記事として最初に読んだのが以下のブログで、自身のPCでLLMを動かせるようになったと言っても、かなり特殊な環境を作らなければ難しいなぁと感じていました。しかしこのような高級?環境以外でもLLMは動かせるような記事を見て、やってみようと決意!
・抜粋:13Bぐらいまでのサイズのモデルはよく公開されるのですが、bfloat16のサイズで動かそうと思うと必要メモリ量が26GBとなります。生成速度を考えるとGPUに乗せ切りたいですが、一般向けのGPUとしてはGeforceのRTX 3090やRTX 4090でもVRAMが24GBとなっており、1枚では乗せ切ることができません。新しく出たモデルを気軽に試せないのは悲しいので、16GBのGPUを2枚積んで、合計32GBにすることで13Bのモデルを動かせるようにしました。また、LLMに限らずGPGPUのコードを書きたいのもあるので、マルチGPU環境を持っててもいいかなぁというのもありました。参考:CPU推論への道
・抜粋:ローカルLLMは楽しいが、参入のハードルが高い「貴族の遊び」と思われている。実際はそんなことなく、参入自体は皆が思っているより容易。ただし情報は少ない。参入する人、広めたい人ともに気合がまだまだ必要
参考:マルチGPU構成で注意すべきポイント
たくさんポイントがありますね。これを踏まえてどう構成すれば良いか。。
・抜粋:「1.マザーボードのPCIeスロット数とスロット間のスペース」「2.ケース内部の大きさ」「3.電源容量」「4.冷却システム」
実施:ミニPCに外部GPUを複数接続して、マルチGPU環境を構成して実行する
通常、マルチGPU環境は数十万円のデスクトップPCを購入してGPUを複数指して構成しているようですが、そんな覚悟(もお金も)がない私はコスパも考えて「ミニPC+外部GPU(OCulink)環境」を作って、ollamaでLLM、ついでにVML(Qwen2-VL)も動かすことが出来ました。
実験:VMLもミニPC-N100 + 外部GPUで動作できた!
作品:マイコンと個人PCのLLMを組合わせ、AIエージェントとして会話する
LLMのAPI呼び出しも設定し終わったので、AI スタックチャン ミニマルを変更。LLM:ChatGPT→ollama gemma2:2Bに切替え、音声合成:Web版 VOICEVOX→ローカルVOICEVOX Engineに切替えて、個人で管理しているローカルネットワーク上の機能だけお話しできるようになりました。
B.スマホにLLMをDLして動かす
ローカルPCを構築している間にも、技術はどんどん進化して行きました。余裕がないので横目で見ながらも、簡単に実行する方法を公開しているブログを見つけて自身でもやってみました。数世代前のiPhoneでもちゃんと動くところがすごい!残念ながらAPIで接続する方法は見つけられなかったため、ミニマルには接続できませんでしたが、公開されれば、スマホLLM環境が最有力だと感じました(普及率の点で)
参考:必要なもの・・・iPhoneのみ
実施:iPhone12 Pro(6GB) にLLMFarmアプリ経由でLLMモデルをDLして実行
C.乾電池で動作するシングルボードでLLMを動かす
こちらもローカルPC環境を構築している間に発売されました!このスピード感がすごい!残念ながら購入して電池ボックスで起動するまでしか確認できておりませんが、先行野良探究者の方々が進めている足跡を追いながら試してみる予定です。
参考:M5Stack社:Module LLM
実施:乾電池モジュールで、マイコンからシングルボードのLLM(Qwen2.5-0.5B)を動かす
ADC:画像認識モデルも含め、多くの事例が紹介されています
【最後に】
まとめきれていませんが、時間切れということで、これにて公開させていただきます。お伝えしたかったのは「LLM実行環境の選択肢は確実に広がっており、来年はさらに加速する」ということです。
個人的希望としては「来年2025は"ローカルLLMやっている人≒個人のAIエージェントを持ち歩いてお話ししている人”という未来になればいいなー」と妄想しています。またAI スタックチャン ミニマルに人格と記憶を設定し、物理・デジタルという空間の違いを越えた”AITuber※のキャラクターの方々とコラボレーションをやってみたい”と考えています。楽しそうですよね!
※AITuberとの違いは、3Dデジタルキャラクターと物理ロボットの違いで背後にあるコミュニケーション機能(音声認識/LLM/音声合成)は、ほぼ同じだと考えています。
Discussion