ローカルLLMとは?

ローカルLLMとは、近年の生成AI業界で注目されているLLM(Large Language Model:大規模言語モデル)の一種だ。一般的によく知られているChatGPTなどのLLMサービスにはないメリットがあり、特に企業など、セキュリティを重視する必要のある組織で活用が進みつつある。一方、ChatGPTなどと比べるとデメリットも存在する。

本稿では、ローカルLLMの概要、およびメリットやデメリット、導入方法や使いどころなどについて詳しく解説する。


ローカルLLMとは - 2つの種類

ローカルLLMには、動作環境に応じて2つの種類がある。1つはPCやスマートフォン、企業内の物理サーバといった端末で動作するオンプレミスのタイプ。もう1つはAWSやAzureなどのクラウドサーバで動作するタイプだ。いずれもサービスとして提供されているChatGPTなどのLLMと異なり、データを他社に預けることがなく、その意味で“ローカル”と定義できる。

ただし、多くの場合ローカルLLMと言うと前者を指すことが多い。そこで以降では、ローカルLLMのなかでも「クラウドを介さずに推論を行えるオンプレLLM」に限定して解説を行っていく。

ローカルLLMのメリットとデメリット

ローカルLLMには、ChatGPTのようなサービスとして提供されているLLMにはないメリットがある。このメリットは特に企業内での活用において重要な意味を持つ。一方で、サービス型のLLMに劣る部分も存在する。ローカルLLMの導入を検討する際は、メリットとデメリットの両方を把握することが必要だ。

ローカルLLMのメリット

まずはローカルLLMのメリットについて紹介する。メリットは大きく3つ存在する。

①セキュリティの向上

ローカルLLM最大のメリットはセキュリティの高さだ。裏を返せば、ChatGPTのようなサービスとしてのLLMはセキュリティ面にやや懸念があるということでもある。というのも、サービスとしてのLLMにプロンプトで入力した情報は、そのLLMサービスを運営する企業のもとに集められ、学習に使用されるからだ。しかも、どう使用されるかはユーザー側ではコントロールできない。仮に入力した内容が個人情報や機密情報などセンシティブなものであれば、重大な情報漏えいにつながるリスクもあるということだ。 むろん、ChatGPTなどのサービス型LLMは「入力した内容を学習に使用しない」というオプションを提供している。しかし、それがどこまで遵守されるか、本当のところはわからない。“万が一の可能性”を完全に排除できない以上、企業がサービス型LLMの活用に慎重になるのはやむを得ないと言える。

ローカルLLMには、こうしたセキュリティ上の懸念はほとんどない。社員のPCや企業内のサーバで学習や推論を行うので、そもそも情報が社内に閉じているからだ。

②ファインチューニングのコスト削減

サービス型のLLMは普通に使うと一般的な回答しか返せないため、専門的な業務で使用するにはファインチューニングを行う必要がある。このファインチューニングにはトライ・アンド・エラーが必要で、サービス型のLLMはそのたびにコストがかさむため、最終的に莫大な費用がかかることになる。

一方、ローカルLLMは高性能なGPUこそ必要だが、ファインチューニング自体は自社内で行うため低コストで済むメリットがある。ただしトライ・アンド・エラーの回数が少なくて済む場合は、GPUの調達が不要なサービス型LLMのほうがむしろ低コストに収まることもある点には注意が必要だ。

ローカルLLMを導入する場合、前述したようにGPUの調達が必要だが、もしすでにGPUを所持している場合はそれをそのまま使用することも可能だ。PCやサーバも同様である。既存のハードウェア資源を活用してコストを抑えられるのもローカルLLMのメリットだろう。

③カスタマイズ性が高い

ファインチューニングがしやすいというメリットを生かせば、特定の業務やニーズに合わせたカスタマイズが容易になる。自社で用意した専用のデータセットを用いて独自のモデルを作り上げれば、特定の用途に対して柔軟に対応できるだろう。市場で広く利用されるChatGPTのような汎用モデルでは得られない高精度な結果が期待できるというわけだ。

ローカルLLMのデメリット

ローカルLLMのデメリットは主に次の3点である。いずれもコストやリソースに関するデメリットとなっている。

①初期導入コストが高い

ローカルLLMを構築するためには、自社でハードウェアを用意する必要がある。自社の業務に特化した学習や推論であっても、LLMである以上は高スペックなGPUなどを搭載したPCやサーバが不可欠であり、それらの調達には多大なコストがかかるのだ。

また、ローカルLLMの導入にはLLM自体の動作やファインチューニングに専門的な知識が求められる。現在、まだまだLLMの専門知識を持つ人材は少なく、確保するために時間やコストをかけなければならないのもネックだろう。

②管理と保守の負担が大きい

ChatGPTのようなサービス型のLLMと異なり、システムの運用管理やセキュリティ対策を全て自社で行うことになる。それには、専門知識を持つスタッフが必要だ。体制を整えるために、相応の負担がかかることは間違いない。

③スケーラビリティに限界がある

ローカル環境では物理的なリソースに制約がある。そのため予期せぬ負荷増大に対応するのが難しい場合が多い。リソースの心配をしなくていいサービス型のLLMに比べ、この点はどうしても限界を感じる部分だろう。

ローカルLLMの導入方法

ローカルLLMを実際に導入するためには、いくつかのステップで進めていく必要がある。ここではハードウェアの選定からソフトウェアの設定、ファインチューニングまでの各ステップについて説明しよう。

ハードウェアの選定

ハードウェアの選定はローカルLLMの導入で最も重要なポイントとなる。というのも、ローカルLLMでは大規模なデータセットを処理するため、高性能なGPUを必要とするからだ。ローカルLLMの動作はデータの「学習」と、学習したデータを基にした「推論」に分かれるが、特に「学習」にはハイスペックなGPU性能が要求される。すでに保有しているGPUが十分な性能を持っていればいいが、そうでなければ高性能なGPUを調達しなければならない。

また、ローカルLLMにデータを学習させるには、前処理によってデータを整えなければならない。この作業に必要となるのがCPUである。スムーズにデータの前処理を行えるよう、十分な容量を確保したい。

そして忘れがちなのがストレージだ。主なストレージとしては、SSDやHDDが考えられるが、データの読み書き速度が速いのはSSDだ。中でも、NVMe(Non-Volatile Memory Express)SSDは従来のSSDよりも高速なデータ転送処理が可能となっている。全体の処理を効率良く進めるためにも、HDDよりSSDを使用したほうがよいだろう。

ソフトウェアの設定

次に、必要なソフトウェアの設定を行う。まず、GPUを動作させるために必要なソフトをインストールする。例えばNVIDIAのGPUを動かすのであれば、「CUDA(Compute Unified Device Architecture:NVIDIAが開発・提供している、GPU向けの汎用並列コンピューティングプラットフォーム・プログラミングモデル)」をインストールすることになる。CUDAはTransformersから、GPUを使うための汎用プラットフォームだ。次に、PythonのライブラリであるTransformersをインストールすれば、ソフトウェアの準備は完了だ。

ローカルLLMのファインチューニング

ローカルLLMのファインチューニングとは、既存のLLMに新しいデータを適用して再学習させることを言う。ローカルLLMで採用されることの多いモデルはいずれもパラメータ数が少なく、いわゆるプロンプトエンジニアリングでは十分な精度が出ないこともある。そこでファインチューニングで精度を高め、プロンプトに対して関連性のある結果を得られるようにするわけだ。また、ファインチューニングを行うことで、精度の高い結果を得るためのプロンプトが短くて済むようになる。プロンプトが短くなれば、ローカルLLMのレスポンスも早くなり、運用効率も高まるはずだ。

ただし、ファインチューニングは非常に難度が高い処理だ。ファインチューニングを行った結果、逆に精度が下がるケースも珍しくない点には注意していただきたい。そのため出力させたい結果が、インターネット上で容易に見つかるような一般的な内容であれば、ファインチューニングを行う必要はないだろう。例えば、医療のように専門性が高く、インターネット上に正確な情報が少ない分野であればファインチューニングを行う意味は大きいといえる。

ローカルLLMのライセンスと考慮事項

ローカルLLMを活用する上で考慮すべき事柄もある。代表的なところでは、ライセンスとセキュリティ、ガバナンスについてだ。

ローカルLLMのライセンス体系は複雑なため、各ライセンスの条項をしっかりと確認することが必要となる。

セキュリティについては、ローカルLLMに限らず企業が最も注意を払わなければならないものだろう。そもそも、多くの企業がサービス型のLLMではなくローカルLLMを活用する最大の理由は、セキュリティを向上させることにあるはずだ。では、ローカルLLMを利用する際にどのような点に配慮すればよいのだろうか。

一例としては、ローカルLLMの学習に使用するデータの管理方法が挙げられる。顧客情報など重要なデータを自社内で管理することになるため、取り扱いには十分注意したい。

ローカルLLMを企業内で使用する場合、内部規程やポリシーを整備することも重要だ。どのデータを使用するのか、誰がモデルにアクセスできるのか、更新とメンテナンスの責任は誰にあるのかといった項目を明確にしておくことで、運用後のトラブルを減らせるだろう。

現在の主流ローカルLLM

ローカルLLMを構築するためには、ベースとなるモデルが必要だ。モデルの性能はスコアボードの数値で測ることができるが、単にモデルの性能を測るだけでなく「やりたいタスクに特化したテストデータ」による出力結果を見て、どれを利用するか検討する必要がある。

ベースモデルは数多くあるが、特にローカルLLMで主流となっているベースモデルについて紹介しよう。

Gamma2

Gamma2はGoogleが開発したモデルで、性能を示すスコアボードの結果も高い評価を受けている。現在、日本語版では「Gamma2 2B」が公開されており、前世代と比べて文章生成能力や指示内容の理解力などの品質向上が図られている。Googleの自社評価によれば、初期のChatGPTが搭載していたGPT-3.5のパフォーマンスを上回っているという。現状、特に欠点はなく、多くのローカルLLMで採用されているモデルである。

Swallow

Swallowは、東京科学大学(旧・東京工業大学)が中心となって開発したモデルだ。現時点で最新のSwallow 3.1は米Meta社 の「Llama 3.1」の英語の能力を維持しながら日本語の能力を強化した大規模言語モデルとなっている。Llama 3.1のライセンスに従う限り、商用利用も可能だ。

LLM-jp

LLM-jpは、国立情報学研究所 大規模言語モデル研究開発センターが開発したモデルである。事前学習では主に日本語、英語、コードを学習している。開発に用いた全てのリソースを公開するなど、非常にオープンなモデルとして提供されている。

 ローカルLLMは今後、どう発展していくのか

ChatGPTなどのサービス型LLMは汎用性が高いが、企業で利用するにはセキュリティリスクが大きい。また、汎用的であるがゆえに意外と業務では使いづらいケースもある。その意味でサービス型LLM弱点を補えるローカルLLMは、今後も発展・進化を続けると考えられる。

今後のローカルLLMにおけるトレンドとなりそうなのが、エッジでの動作である。データを端末から一切出すことなく処理が行えれば、プライバシーやセキュリティの懸念がなくなるからだ。この点はローカルLLM最大のメリットなので、エッジによる処理は今後も増えていくだろう。

また、プロンプトエンジニアリングやファインチューニングなどのノウハウが蓄積されれば、ローカルLLMの精度はどんどん高まっていくはずだ。モデルの性能も日進月歩であり、新技術が登場すれば同じパラメータ数でより高い性能を出せるようになる可能性もある。

さらに、ローカルLLMだけの潮流ではないが、生成AI全体でマルチモーダルに向かっていることも見逃せない。写真や音楽、動画など複数のデータを使った処理がさらに進化することで、ローカルLLMはまた新たな価値を提供できるようになるだろう。ローカルLLMの動向からは、目が離せない。