Metaの大規模言語モデル「LLaMA」をM1搭載Macで実行可能にした「llama.cpp」がアップデートによりわずか6GB未満のメモリ使用量で実行可能に
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で問題なく動作していることが報告されています。
Yesterday my changes to the LLaMA C++ file format were approved. Here's how folks in the community have been reacting to my work. https://t.co/cLzg19n81f pic.twitter.com/5gcrVp8jvn
— Justine Tunney (@JustineTunney) March 31, 2023
報告者のpugzly氏は「最初はバグかと思いましたが、レスポンスの品質低下は感じられません。先日llama.cppに大きな変更があったようですが、その変更の根本的な部分は私には理解できません」と驚きを隠せない様子。
タニー氏によると、mmapを使った重みの読み込みをllama.cppに実装したことで、実際の推論に必要な部分の重みだけがユーザーのメモリにロードされるようになり、従来よりも少ないメモリ使用量が実現できたとのこと。
タニー氏は「この変更により、推論コマンドの読み込みが最大で従来の100倍高速になり、2倍以上のモデルを安定して搭載できる可能性があります。さらに、推論処理を多数同時進行させることができます」とメリットを強調しています。
一方でタニー氏は「私の理論が間違っていて、これが単なるバグである可能性もあります。私はLLaMAの30Bモデルの内部構造をよく理解していないので、なぜメモリ使用量が少なくなるのかよく分かっていません」と述べています。
ハッカーニュースには「メモリ使用量の現象による読み込み時間のパフォーマンス向上は、llama.cppの使いやすさにとって大きな進歩です。しかし、タニー氏がメモリ使用量の減少に成功した理由を説明するのに十分な説得力のある理論はまだありません」として、ユーザーに落ち着くことを求める書き込みが残されています。
・関連記事
GPT-3のライバルとなるMetaの「LLaMA」をM1搭載Macで実行可能に、大規模言語モデルを普通の消費者向けハードウェアで実行可能であることが示される - GIGAZINE
GPT-3に匹敵するチャットAIモデル「LLaMA」をiPhoneやPixelなどのスマホで動かすことに成功 - GIGAZINE
無料でノートPCでも実行可能な70億パラメータのチャットボット「GPT4ALL」発表 - GIGAZINE
Metaの大規模言語モデル「LLaMA-65B」のデータが4chanで流出 - GIGAZINE
ChatGPTやGoogleのBardに匹敵する精度の日本語対応チャットAI「Vicuna-13B」が公開されたので使ってみた - GIGAZINE
Metaが大規模言語モデル「LLaMA」を発表、GPT-3に匹敵する性能ながら単体のGPUでも動作可能 - GIGAZINE
・関連コンテンツ