NeuroPrefetcher: Storage-Aware Sparse LLM Inference via Delta Prefetching
NeuroPrefetcherは、リアクティブなデマンドページングに頼るのではなく、MLPニューロン活動の時間的局所性を利用して必要な重みのデルタのみをストレージから予測的にプリフェッチすることで、メモリ制約のあるエッジデバイス上で大幅な高速化を実現するストレージ認識型LLM推論システムである。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
大規模言語モデルは、かつては不可能と思われていた流暢さで執筆、推論、翻訳を行うことができる、現代の人工知能のエンジンです。これらのシステムは、学習中に学んだ膨大なパターンに基づいて、テキストを一度に一単語ずつ処理し、シーケンス内の次の単語を予測することで機能します。これを行うために、彼らは「重み」と呼ばれる数字の巨大なデジタルライブラリに依存しており、それらはコンピュータのメモリ内に保存されています。モデルが大きく、より有能であるほど、より多くのメモリが必要になります。しかし、重大なギャップが生じています。これらのモデルのサイズは指数関数的に増大している一方で、ノートパソコン、タブレット、特化したエッジコンピュータのような携帯型デバイスの利用可能なメモリは、そのペースに追いついていないのです。これは、大規模なデータセンターの外で高度な知能を実行することに対して、根本的な問題を生じさせます。モデルがデバイスのメモリに収まりきらないほど大きい場合、システムは高速なメモリと低速で大容量のストレージドライブの間で絶えずデータをスワップしなければならず、このプロセスは通常、パフォーマンスを停止させてしまいます。
ケネソー州立大学とサムスンンの研究者たちは、この問題に対する新しいアプローチを開発し、「NeuroPrefetcher」と呼ばれるシステムを作り上げました。これにより、非常に限られたメモリを持つデバイス上で、これらの巨大なモデルを効率的に実行することが可能になります。モデルを縮小したり、無理に収めようとしたりするのではなく、彼らのシステムは、モデルが利用可能なメモリよりも大きいことを受け入れ、ストレージドライブを計算プロセスのアクティブな一部として扱います。彼らの成功の鍵は、これらのモデルがどのように「思考」するかという単純な観察にあります。モデルが1つの単語を生成するとき、特定の内部経路が活性化されます。次の単語を生成するとき、モデルはほぼ全く同じ経路を再び使用します。研究者たちは、ある単語から次の単語へと移る際に、活性化される経路の82から85パーセントが同一であることを発見しました。これは、作業の大部分において、必要なデータがすでにデバイスのメモリ内に存在し、使用されるのを待っている状態であることを意味します。
NeuroPrefetcherの革新性は、変化するわずかな量のデータをどのように管理するかという点にあります。従来のシステムは、モデルがデータの一部を必要とするまで、ストレージドライブにデータを取りに行くのを待ちます。これは、コンピュータが一時停止して待機することを引き起こす、リアクティブ(反応的)なプロセスです。NeuroPrefetcherは異なり、先読みを行います。それは、現在の単語を分析し、次の単語に正確にどの新しい経路が必要になるかを推測する、小さく特化した予測器を使用します。次に何が来るかを知っているため、コンピュータが現在の単語の計算を行っている間に、不足している特定のデータ片だけをストレージドライブからフェッチ(取出し)することができるのです。これにより、混沌としたストップ・アンド・ゴーのプロセスが、スムーズで連続的な流れへと変わります。このシステムは、実質的に、メモリ内に常駐している膨大なデータの塊を無視し、必要とされる極めて小さな割合の新情報のみをプリロード(事前読み込み)します。
このアイデアをテストするために、チームは完全なシステムを構築し、プロセッサとグラフィックスユニットの間で共有される統合メモリアーキテクチャを持つ、Jetson AGX Orinとして知られる強力なエッジデバイス上で実行しました。彼らは、Mistral-7BやLlama-3-8Bのような大規模言語モデルを用いて、モデルが利用可能なメモリよりも大幅に大きい状況をシミュレートした厳格なメモリ制限条件下でテストを行いました。これらの困難な条件下では、データスワッピングを管理するためにオペレーティングシステムに依存する標準的な手法によるモデルの実行は性能が悪く、しばしばデバイスを停止させてしまいました。対照的に、NeuroPrefetcherはデバイスを動かし続け、標準的な手法よりも8倍から12倍近く速いスピードアップを実現しました。標準的なアプローチが1秒間に1単語すら生成するのに苦労していたのに対し、システムは毎秒3単語以上の速度で単語を生成することができました。
研究者たちはまた、利用可能なメモリが変化したときにシステムがどのように振る舞うかを調査しました。彼らは、メモリが逼迫しているときはモデルの作業のより多くをストレージドライブにシフトさせ、スペースが利用可能になるとより多くの作業を高速メモリに戻すことで、システムが適応できることを見出しました。最も厳しいメモリ条件においても、システムは大規模なデータ転送を回避することで高いパフォーマンスを維持しました。モデルの脳の層全体を前後に移動させるのではなく、変化する小さなデータの断片のみを移動させたのです。このアプローチは非常に効果的であり、特定の制約下では動作すらできなかった多くの高度なツールと比較しても、システムが最速の選択肢であり続けることを証明しました。
この研究の重要な部分は、スピードの向上が知能の犠牲の上に成り立っていないことを確認することでした。研究者たちはシステムが生成するテキストの品質を測定し、フル圧縮されていない元のモデルの品質に非常に近いことを発見しました。システムはモデルの予測精度を維持し、最も積極的なメモリ節約設定を使用した場合でも、オリジナルのパフォーマンスの90パーセント以上を保持していました。これは、必要なデータのみを移動するという戦略が、言語を理解し生成するモデルの能力を低下させなかったことを裏付けています。システムは、即座に次のステップに必要なデータではないものを無視し、重要なものにのみリソースを集中させることを効果的に学習したのです。
この研究は、日常的なデバイス上で人工知能を実行する方法についての考え方の転換を強調しています。長年、小さなハードウェア上で大きなモデルを実行するための解決策は、モデルを小さくするか、圧縮することであり、それは時として能力を低下させることがあります。NeuroPrefetcherは、異なる道を提示しています。フルモデルをそのままの形で維持し、そのデータの移動を極めて精密に管理するのです。次にモデルが必要とするものを予測し、その特定の変化のみをフェッチすることで、システムはストレージドライブをボトルネックから、有用なパートナーへと変貌させます。このアプローチにより、強力な知能が、以前はそれを保持するには小さすぎたデバイス上で動作することが可能になり、遠く離れたサーバーへの接続を必要とせずに、ローカルで高度なAIを実行する道が開かれました。結果は、データの流れを適切に管理すれば、モデル自体の力を犠牲にすることなく、メモリの物理的な限界を克服できることを示しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。