生成AIでGPUがいらなくなる? 業界を揺るがす「1ビットLLM」とは何か、識者に聞いた

生成AIでGPUがいらなくなる? 業界を揺るがす「1ビットLLM」とは何か、識者に聞いた

 米Microsoftの研究チームが発表した「BitNet」、通称「1bit LLM」と呼ばれる論文が波紋を呼んでいる。これまでのLLMとは違い、演算が軽くなるのに精度が上がり、そしてこれまで必須だと思われていたGPUが不要で、CPUでもLLMが動作することを示唆している。

ではそもそも“1bit”とは何が1bitなのか、どうして1bitになるとGPUが不要になるのか。LLMでGPUが不要になるとどんな世界が訪れるのか。オーダーメイドによるAIソリューション「カスタムAI」の開発・提供を行うLaboro.AIの椎橋徹夫CEOに聞いた。

──まず、1bit LLMについて教えてください

椎橋:1bit LLMについてできるだけ分かりやすく解説しましょう。ChatGPTに代表される生成AIは、LLM、つまり大規模言語モデルです。何が大規模かというと、ニューラルネットがものすごく大きくてパラメータがたくさんあります。大規模にすることがブレークスルーの根源だったんです。

 でも大規模にすると、使うときに計算コストや時間がかかるようになり、消費エネルギーについても課題視されています。またモデルをメモリに乗せて使うので、たくさんパラメーターがあると容量も大きくなってしまいます。学習のときも、推論、つまり使うときもモデルが大きいと、計算量とメモリが大量に必要になります。

 これに対して、モデルを圧縮する技術は昔からいろいろあります。2020年に「ディープラーニングを軽量化する『モデル圧縮』3手法」というエンジニア記事を載せたこともあります。小さくしても同じ性能、小さくしても少ししか性能が悪化しないようにする取り組みは、LLM以前からあったんです。

 モデル圧縮は大きく分けて3つの方法があります。

 1つ目は枝刈りです。ニューラルネットはニューロンがたくさん重なっていますが、多層のニューロンがあったとき、計算にあまり効いていない、貢献していないノードが、最終的なモデルを見るとあるんです。それは取り払ってもあまり精度が変わらない。プルーニング、つまり枝刈りですね。これを行うとパラメータが減るので軽くなります。

 2つ目は蒸留です。大きいモデルで学習して、そのモデルを使って学習データを生成して、小さいモデルで学習するんです。もう少し説明すると、例えば犬か猫か判定するとき、人間が作った訓練データは100%犬か100%猫かのどちらかのラベルが付いています。0か1かが教師ラベルとなる学習データですね。

 これを大きいモデルで学習すると、最後に犬か猫と判断する前の段階では60%で犬、40%で猫という確率で表現しているんです。その大きいモデルが出力した60%犬、40%猫という値を教師データとして小さいモデルで学習すると、どれくらい犬っぽいか、どれくらい猫っぽいかという中間的な情報になります。そうすると、小さいモデルでも同じような性能が出せるようになるんです。最初から小さいパラメータのモデルを学習させるわけですね。

 3つ目が量子化です。これが1bit LLMに関係します。1つ目と2つ目はパラメータの数を減らす方法でした。量子化は、1個1個のパラメータをどういう数字で持っているかというところに注目します。普通は1つのパラメータは16bitとか32bitの情報量を持っているんですが、この桁数をぐっと丸めてしまうんです。

 例えば、0.34567という値だったら、0.35と丸めるわけです。LLMの領域では、最近は32bitや16bitから、8bitや4bitといった低bit化がトレンドになってきていますが、それをさらに1bitまで減らしてしまおうというのが1bit LLMの考え方です。

──bitというのはどういう意味ですか?

椎橋:bitというのは、ある数字を2進法で表したときの桁数のことです。

 1bitだと、0か1の2値しか表現できません。2bitになると、00、01、10、11の4通りを表現できるようになります。3bitだと、2通りが3回重なるので、2の3乗で8通りになるんです。

 1bit LLMでは、桁をとことん丸めて、-1か1の2値にしてしまおうという発想なんです。具体的には、ニューラルネットの中の重みパラメータの数値を、大胆に-1か1にしてします。これをBitNetと呼んでいます。

 この仕組みをLLMに適用してみようというのが1bit LLMの基本的なアイデアです。この基本アイデアに対して今回の論文では1つ工夫があって、-1か1だけでなく、0も加えて、0、1、-1の3値を使っています。3通りというのは、2の1.58乗に相当するんですよ。だから実際は1.58bitになります。

──1bit LLMにすると何が変わるんですか?

椎橋:メモリに乗せるモデルサイズは、4bitのモデルに比べてもだいぶ圧縮でき、これまでの量子化の延長線上にあります。でもそれだけではなく、計算量という点では、3値になると計算原理が変わってくるんです。

 ニューラルネットは計算を行列計算で行っているんですが、ノード間をつないでいるエッジの重みを3値にすると、積算ではなく和算になるんです。

 LLMのようなディープラーニングは行列計算をたくさん行うと聞いたことがあると思います。これまでなら行列の一番上の行、モデルのパラメータにあたる0.2961と入力のx0を掛け算して、次に-0.0495とx1を掛け算、次に-0.0924とx3を掛け算、続いてに-0.4765とx3を掛け算して、全部足し合わせたものが出力になります。小数点の掛け算をたくさんしなくてはなりません。

 こんなときGPUは並列計算が得意なので、行列の掛け算を並列に計算できるんです。4個の計算を同時に行って足し合わせるようなこともできます。これがAIにGPUが必要な理由です。このとき、パラメータを4bitに減らしても、掛け算自体を行う必要があることは変わりません。

 でも、3値になると符号の計算になり、入力の和算だけでいいようになります。3値、つまり-1、0、1しかない場合、先の例だと、x0と1を掛けて、x1と-1を掛けて、x2と-1を掛けて、x3と1を掛けて足し合わせることになります。これはつまりx0-x1-x2+x3という、符号だけを変えて足し合わせれば良いことになります。掛け算がなくなってしまうのです。

 そうなると、CPUとGPUの計算効率がそこまで変わらなくなる、GPUよりも最適な半導体の設計があり得るかもしれません。つまり、1bitまで減らすと積和演算が和算だけになって、計算の質が変わるんです。これによって、GPUがいらなくなるんじゃないか、といわれているんですよ。

──AIを動かすのにGPUがいらなくなる! どんな可能性が開けるんですか?

椎橋:今回の結果から、LLMの推論において、GPUではなく別の半導体の機構が最適になって、劇的に計算が軽く早くなる可能性が開けてくるんです。

 LLMを動かすのに必要な消費電力、計算処理能力、メモリサイズを大幅に抑えることができますからね。そうすると、推論についてはエッジ側、つまりモバイルやセンサーなどに近いデバイス側で行えるようになる可能性が高まります。大きなサーバに置かないと使えなかったものが、軽く推論できるようになるんです。サーバに置く場合でも、電力効率が良くなるので、より多くの推論を行えるようになります。

 将来的には、普通のスマホでLLMが動くこともあり得るかもしれません。

──じゃあ、GPUはもういらなくなるんですか?

椎橋:いえ、そんなことはないですね。

 短期から中期でみると、学習にはGPUが引き続き重要な役割を果たします。また、推論においても、今回のBitNetの様に特定のアーキテクチャが固まったら、それに特化したチップを設計するのが良いでしょう。でも、研究開発の段階では、いろいろなアーキテクチャを探索する必要がありますよね。その際は、GPUやTPU(Googleの行列計算に特化したAIチップ)のような汎用的な計算資源がまだまだ必要とされるんです。

 NVIDIAもAIの半導体分野を起点にビジネス展開しています。いまのNVIDIAのポジションから見ると、重要なプレイヤーであり続ける可能性は高いと思いますよ。

 ただし同時に、今回のような特定のニューラルネットのアーキテクチャに対して、GPUを劇的に上回る計算効率を実現するようなAIチップが数多く生まれてくるのではないかという「AIチップのカンブリア爆発」の可能性が語られるようにもなってきています。

 論文中でも、GroqというLLMの推論に特化したLPU(Language Processing Unit)の登場に触れられています。次世代半導体での復活を狙う日本の産業にとっても、注視していくべきトピックではないかと思います。

──学習にはGPUが必要なんですね。学習も1bitではできないんですか?

椎橋:実は学習は基本的にいままでと変わらないやり方が必要になります。学習にはGPUを使って、16bitとかの浮動小数点数演算をしないといけないんです。さらに、何も考えずに普通に学習したモデルを、あとから1bitに丸めてもあまりうまくいかないんですよ。

 ディープラーニングの学習のときは、誤差逆伝播という手法を使います。入力からニューラルネットを通って出力が出ますよね。そのあと、教師データとの差を見て、その差を小さくするように逆向きに伝播させていきます。そのとき、どの層のパラメータをどのくらい更新するべきかを、傾きを計算して決めていきます。その傾きを勾配と呼ぶんですが、勾配を計算するには、小数値である必要があるんです。

 だから、1bit LLMの学習には新しい工夫が必要になります。最終的に1bitに丸めることを前提として学習を行うんです。学習の途中でも、1bitに量子化した状態で出力を計算して、正解とどれだけずれているかを見て、そのずれを逆伝播させるんです。

 ちょっと分かりにくいかもしれないのでイメージとして近い例を挙げますね。画像をモザイク化する場合を考えてみましょう。モザイクの一区画に入るピクセルの色の平均を取るのは、丸めているのと同じようなことですよね。ここで、人が見たときに何の画像か分かるようなモザイク画を作ってくださいと言われたとします。これが、学習だと考えてください。

 出来上がったモザイク画を見て、元の画像が何か分かるかな? っていうのを考えるわけです。最終的にモザイク化されることを念頭に置いて、そのモザイク画から推測しやすいような元の画像を作るにはどうしたらいいか、というのが1bit LLMの学習における発想なんです。

──1bitまで丸めてもうまくいくなんて信じられないですが、本当にできるんですか?

椎橋:そうなんですよ。3値までまるめてうまくいくなんて、直感的にはあり得ないと思うんです。私も最初は半信半疑でした。

 でも、パラメータ数がものすごく多いと、1bitになっていてもちゃんと機能するのかもしれません。1bit LLMの論文では、7億から700億パラメータのモデルを検証しているんですが、実際にパラメータ数が多くなると16bitのモデルと精度差が小さくなり、30億パラメータでBitNet b1.58が16bitのモデルを上回る結果になっています。

 パラメータ数が膨大になると、1bitでもモデル全体としての表現力が十分になるのかな、と思えてきます。

 とはいえ、やはり学習時の工夫は必要不可欠です。量子化を前提とした学習をするからこそ、うまくいっているんだと思います。

 まだまだ発展途上の技術ではありますが、将来の可能性を感じさせるブレークスルーだと私は考えています。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏