Metaの大規模言語モデル「LLaMA」をM1搭載Macで実行可能にした「llama.cpp」がアップデートによりわずか6GB未満のメモリ使用量で実行可能に

GIGAZINE



2023年2月にMetaが発表した大規模言語モデル「LLaMA」は、従来のGPT-3よりも小規模でありながらGPT-3に匹敵する性能を単体GPUの環境でも示すことが可能とされており、2023年3月にはエンジニアのジョージ・ゲルガノフ氏がM1などのApple シリコン搭載MacでLLaMAを動作させる「llama.cpp」を公開しました。そんな中、プログラマーのジャスティン・タニー氏がllama.cppが動作する際のメモリ使用量を減らすアップデートを行い、LLaMAの一部モデルに至っては6GB未満のRAMで動作することが報告されています。

Make loading weights 10-100x faster by jart · Pull Request #613 · ggerganov/llama.cpp · GitHub
https://github.com/ggerganov/llama.cpp/pull/613


30B model now needs only 5.8GB of RAM? How? · ggerganov/llama.cpp · Discussion #638 · GitHub
https://github.com/ggerganov/llama.cpp/discussions/638


LLaMAはMetaのAI研究組織であるMeta AI Researchが発表した大規模言語モデルです。大規模言語モデルの規模を示すパラメーター数は70億から650億で、LLaMAの13B(パラメーター数が130億)モデルのベンチマークテストの結果は、パラメーター数1750億のGPT-3に匹敵したと報告されています。

また、LLaMAは単体GPUでも問題なく動作することから、コンシューマーレベルのハードウェア環境でもChatGPTのような対話型AIを動かせる可能性も示唆されていました。

Metaが大規模言語モデル「LLaMA」を発表、GPT-3に匹敵する性能ながら単体のGPUでも動作可能 – GIGAZINE


その後、ゲルガノフ氏はLLaMAを使った推論をmacOS・Linux・Windowsで動作させるプロジェクト「llama.cpp」の開発を進め、M1搭載MacBook ProでLLaMAを動作させることに成功したと報告しました。ゲルガノフ氏にによると、LLaMAの13BモデルをM1搭載Macで、毎秒10トークンの処理速度で動作可能とのこと。

GPT-3のライバルとなるMetaの「LLaMA」をM1搭載Macで実行可能に、大規模言語モデルを普通の消費者向けハードウェアで実行可能であることが示される – GIGAZINE


そんな中、2023年3月31日にタニー氏はllama.cppのC++ソースコードにアップデートを加えたことを報告しました。タニー氏によるアップデートの結果、LLaMAの実行の際のメモリ使用量が大幅に減少し、従来は30GB必要だったLLaMAの13Bモデルのメモリ使用量が、システムメモリの使用量を含めてわずか5.8GBで問題なく動作していることが報告されています。


報告者のpugzly氏は「最初はバグかと思いましたが、レスポンスの品質低下は感じられません。先日llama.cppに大きな変更があったようですが、その変更の根本的な部分は私には理解できません」と驚きを隠せない様子

タニー氏によると、mmapを使った重みの読み込みをllama.cppに実装したことで、実際の推論に必要な部分の重みだけがユーザーのメモリにロードされるようになり、従来よりも少ないメモリ使用量が実現できたとのこと。

タニー氏は「この変更により、推論コマンドの読み込みが最大で従来の100倍高速になり、2倍以上のモデルを安定して搭載できる可能性があります。さらに、推論処理を多数同時進行させることができます」とメリットを強調しています。

一方でタニー氏は「私の理論が間違っていて、これが単なるバグである可能性もあります。私はLLaMAの30Bモデルの内部構造をよく理解していないので、なぜメモリ使用量が少なくなるのかよく分かっていません」と述べています。


ハッカーニュースには「メモリ使用量の現象による読み込み時間のパフォーマンス向上は、llama.cppの使いやすさにとって大きな進歩です。しかし、タニー氏がメモリ使用量の減少に成功した理由を説明するのに十分な説得力のある理論はまだありません」として、ユーザーに落ち着くことを求める書き込みが残されています。

この記事のタイトルとURLをコピーする

Source

タイトルとURLをコピーしました