Per-Node Performance and Memory Limits of LLM Inference on CPU-Only Edge Nodes
本論文は、エッジノードにおけるCPUのみによるLLM推論の性能とメモリ制約を特徴付け、ボトルネックは演算能力ではなくメモリ帯域幅であること、および量子化が予期せず実行時メモリ使用量を増加させることを明らかにし、正確なデプロイメント計画のために新たなサイジングモデルが必要であることを示している。
原論文は CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
現代のデジタル環境において、大規模言語モデルとして知られる強力な人工知能システムは、コンピュータが人間の言語を理解し生成する方法を変貌させました。これらのシステムは、パラメータと呼ばれる膨大なデータポイントの集合に基づいて構築されており、これらはモデルの内部知識ベースとして機能します。典型的なモデルには数十億のパラメータが含まれることがあり、それらを格納するためにかなりの量のコンピュータメモリを必要とします。長年、これらの複雑なシステムを動かすことは、特化した高速グラフィックスプロセッサを備えた大規模なデータセンターの領域でした。しかし、この知能を人々が実際に生活し、働く場所、すなわちエッジノードと呼ばれる、より小さなローカルコンピュータの近くに配置しようとする動きが高まっています。これらのデバイスは、インターネット接続が不安定な場所や、プライバシー上の懸念からデータを建物外に出せないオフィス、家庭、あるいは遠隔地に多く存在します。エンジニアにとっての課題は、これらのローカルデバイスには通常、データセンターにあるような強力なグラフィックスプロセッサがなく、代わりにほとんどのコンピュータの汎用的な頭脳である標準的な中央演算処理装置(CPU)に依存していることです。極めて重要な問いは、これらの中規模で日常的なマシンが、果たして高度な言語モデルを動かすという重労働を実際にこなせるのか、そしてもし可能であるならば、どれほどのメモリが必要で、どれほどの速さで動作できるのかという点でした。
ある研究チームは、代表的な一台のエッジコンピュータの限界をテストすることで、これらの問いに答えるべく乗り出しました。彼らは新しいソフトウェアを構築したり、より速いチップを発明したりしたわけではありません。代わりに、標準的なコンピュータが3つの異なるサイズの言語モデルを実行する際に、正確に何が起こるかを注意深く観察する観測者として振る舞いました。彼らは、11億個のパラメータを持つコンパクトなバージョンから、より堅牢な70億個のパラメータを持つバージョンまでのモデルをテストしました。各モデルについて、彼らは、コンピュータが内部の数値を保存する際の詳細度のレベルとも言える、3つの異なる精度レベルでシステムを実行しました。研究者たちは、この詳細度を減らす一般的な手法である「量子化」が、強力なデータセンターで行われているのと同様に、ローカルマシンでの実行を高速化し、メモリ使用量を削減するのに役立つかどうかを確認したいと考えました。
彼らが明らかにした結果は、これらのシステムについて広く信じられていることとは矛盾する、驚くべき現実を浮き彫りにしました。世界中の高出力なデータセンターにおいては、モデルの精度を下げることは、メモリ使用量を半分以下に削減し、パフォーマンスを向上させる実証済みの戦略です。しかし、今回テストされたローカルのCPUのみのコンピュータでは、全く逆のことが起こりました。研究者がスペースを節約するために精度を下げると、コンピュータはモデルを実行するためにより多くのメモリを実際に必要としたのです。テストされた最大のモデルでは、理論上は約14ギガバイトのメモリを必要とするはずでしたが、精度を下げたところ、システムは20ギガバイト近くを要求しました。この約48パーセントの増加は、コンピュータの標準的なプロセッサが、圧縮された低精度の数値をネイティブに理解できなかったために発生しました。システムはそれらを直接処理する代わりに、計算を行うたびに、圧縮された重みをメモリに保持しながら、同時にそれらを標準的な形式へと再変換しなければなりませんでした。これにより、コンピュータは圧縮された重みと変換用のバッファの両方を保持し、さらに活性化値やアテンションキャッシュは全行程を通じて標準形式のまま維持されるため、メモリ負荷を軽減するどころか、実質的にメモリ負荷を増大させるという二重の負担が生じたのです。
メモリの問題に加え、この研究は、何がコンピュータの速度を低下させているのかを特定しました。研究者たちは、プロセッサがほぼ100パーセントの容量で稼働しているにもかかわらず、非常に少ない結果しか生成していないことを発見しました。これは、マシンが数学的な計算自体に苦戦しているのではなく、メモリからデータが到着するのを待っている状態であることを示していました。ボトルネックとなっていたのは、メモリチップからプロセッサへ情報が移動する速度、すなわち「メモリ帯域幅」と呼ばれる制限でした。コンピュータは常にデータの到着を待っていたため、一度に一つのリクエストしか処理することができませんでした。もしユーザーが同時に二つの質問を投げようとしても、システムは作業を二つのスレッドに分割することはできず、単に過負荷になるだけでした。一つのリクエストがマシンを飽和させてしまうため、複数のユーザーに対応するためには、単一のコンピュータからより多くの仕事を絞り出そうとするのではなく、ネットワークに物理的なコンピュータを追加する必要があるということになります。
パフォーマンスの低下は、研究者が速度に注目したとき、さらに劇的なものとなりました。最も高性能なモデルを標準的な精度で実行した場合、秒間約3.76単語を生成でき、遅いながらも会話には使えるレベルでした。しかし、研究者が高速化を目的とした圧縮技術を適用すると、速度は急落しました。システムは秒間1単語未満の速度まで低下し、やり取りは耐え難いほど鈍いものとなりました。最も極端な圧縮の場合、システムは16秒に一度しか新しい単語を生成できず、リアルタイムの会話には使い物にならない状態でした。これは、強力なグラフィックスカード向けに設計された技術が、これらのローカルマシンにおいては効果的でないだけでなく、積極的に有害であり、スピードを犠牲にして、マシンが到底支払いきれないメモリの代償を求めていることを裏付けました。
エンジニアがこれらの現実に備えて計画を立てられるよう、研究者たちはローカルコンピュータが実際に必要とするメモリ量を推定するための単純なルールを開発しました。彼らは、必要なメモリ量は単にモデルのパラメータのサイズによって決まるのではないことを発見しました。その代わりに、総メモリ使用量は選択された精度レベルに大きく依存します。標準的な非圧縮モデルの場合、必要なメモリはおよそモデルの重みのサイズとほぼ等しくなります。しかし、圧縮モデルの場合、研究者は、一段階の圧縮ではメモリ要件が重みの約3倍に跳ね上がり、最も深いレベルの圧縮では約6倍になることを発見しました。これは、ローカルデバイス上で大規模なモデルを実行しようと計画するエンジニアは、モデルのファイルサイズが示唆するものよりも大幅に多いメモリを準備しなければならないことを意味します。32ギガバイトのメモリを持つコンピュータであれば大規模なモデルを実行できるかもしれませんが、その場合、オペレーティングシステムや他のタスクのための余地はほとんど残っておらず、ましてやそのようなモデルを二つ同時に実行することは到底不可能です。
本研究は、高度な言語モデルをローカルのCPUのみのデバイスで実行することは可能であるものの、それにはこれらのシステムの展開方法を完全に再考する必要があると結論付けています。クラウドで機能する戦略は、エッジには通用しません。エンジニアは、データセンター向けに最適化されたモデルをそのまま持ってきて、それがローカルのノートパソコンやサーバーで効率的に動作することを期待することはできません。彼らは、これらのマシンが「いかに速く計算できるか」ではなく、「いかに速くデータを移動できるか」によって制限されているという事実を考慮しなければなりません。また、スペースを節約するためにモデルを圧縮することは、おそらく速度を低下させ、より多くのメモリを必要とすることになる、ということも受け入れなければなりません。プライバシーへの懸念やインターネット環境の乏しい場所への導入を検討している人々にとって、進むべき道は、利用可能なメモリに対して適切なモデルサイズを選択し、単一のローカルコンピュータは一度に一人にしかサービスを提供できないという事実を受け入れることにあります。エッジ・インテリジェンスの時代は到来していますが、それはかつての前身であるデータセンターとは異なる一連のルールを要求しているのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。