マイクロソフトが偶然に作った史上最も効率的なAI

AGIに仕事を奪われたい
この記事は約8分で読めます。

4,548 文字

Microsoft Accidentally Created the Most Efficient AI Ever
Microsoft’s new AI model, BitNet b1.58 2B4T, is a groundbreaking transformer that uses ternary weights of only -1, 0, or...

マイクロソフトの汎用人工知能チームが、BitNet B1.58 2B4Tという新しいAIを発表しました。この名前はWi-Fiのパスワードのように聞こえますが、その発想は驚くほど洗練されています。特別な装置ではなく、一般的なCPUだけで本格的な大規模言語モデルを動かし、しかも電気代を破壊することなく実現しています。
最も驚くべき点は、このモデルが32ビットや16ビット、あるいは話題の8ビットすらも使わないということです。代わりに、ネットワーク内のすべての重みが-1、0、または+1という値しか取らず、平均してわずか1.58ビットの情報量しかありません。つまり、精度を極限まで絞り込み、たった3つの可能な値で全体をカバーしています。これは、log₂(3)が約1.58496だからです。
「でも、すでに1ビットや4ビットに量子化されたモデルはありますよね?」と疑問に思うかもしれません。確かにある程度はそうですが、そのほとんどはまず高精度モデルで作られ、その後に圧縮されたものです。このトレーニング後の量子化技術は確かにメモリを節約しますが、一般的には精度がゆっくりと漏れていくという問題があります。マイクロソフトはこの常識を覆し、最初からビット単位でトレーニングしました。
彼らはモデルに3値表現で一から学習させたため、浮動小数点時代の記憶を引きずることがありません。その結果、4兆トークンでトレーニングされた20億パラメータのトランスフォーマーが誕生しました。チームは、このモデルが浮動小数点の重荷を背負ったオープンソースのライバルたちに引けを取らないと主張しています。
ハードウェアへの影響について話しましょう。ここからが面白いところです。通常の20億パラメータの高精度モデルは、埋め込みテーブルを除いても2〜5GBのVRAMを占有します。BitNetはどうでしょうか?わずか0.4GBです。この劇的な削減により、多くのCPUのLキャッシュ層に快適に収まるほどのサイズになりました。そのため、Apple M2チップでのデモでは毎秒5〜7トークンを生成できます。これはほぼ人間が本を一行一行読む速度に相当します。
生成中、研究者たちは同様の浮動小数点モデルと比較して85〜96%も低いエネルギー消費を測定しました。これは基本的に、プリウスをアイドリング状態で走らせることと、マッスルカーをフル加速させることの違いに等しいです。
もちろん、回答の質が悪ければこれらは意味がありません。そこでチームは、通常の一連のベンチマークテスト(MMLU、GSM8K、ARC Challenge、Hellaswag、PiQA、Truthful QAなど)を実施しました。17の異なるテストの平均では、BitNetは54.19%のマクロスコアを獲得し、同クラスの最高の浮動小数点ベースの競合モデルであるLLaMA派生のQwen 2.5の55.23%にわずか1ポイント差まで迫りました。
BitNetが本当に力を発揮するのは論理的推論です。ARC Challengeでは49.91%でトップ、ARC Easyでは74.79%をマーク、そして非常に難しいことで知られるWinoGrandeでは71.9%で全員を上回りました。
数学も得意分野です。GSM 8Kでは58.38%の完全一致を達成し、リスト上の他の2B標準モデルをすべて上回り、Qwenの56.79%を上回りました。しかも、おそらく10分の1の電力消費で実現しています。
4ビットのトレーニング後の量子化テクニックと比較するとどうなのかと疑問に思うなら、論文がはっきりと示しています。彼らはQwen 2.5 1.5BにGPTQとAWQ int4の標準的な手法を適用し、メモリを0.7GBまで削減しました。これは良い結果ですが、それでもBitNetのフットプリントの約2倍です。さらに重要なことに、量子化されたQwenは精度が3ポイント以上下がって52%台前半になったのに対し、BitNetは55%前後を維持しました。つまり、少なくともこの領域では、ネイティブな3値表現は後付けのint4よりも優れているということです。
モデルの内部を覗いてみましょう。技術に詳しくない方でも理解できるよう簡単な例を使います。通常のAIモデルを、棚がびっしりと並んだ巨大な倉庫だと考えてください。各棚には正確な数値が入った大きな瓶がたくさん置かれています。モデルが質問に答えるたびに、これらの瓶をすべて運び回さなければなりません。
BitNetはこれらの瓶を、小さなカラーコードのポーカーチップに置き換えます。赤は-1、白は0、青は+1を表します。チップの種類は3つしかないので、ほとんど重さがありません。そのため、倉庫全体が数ギガバイトからモバイルゲーム1つ分のダウンロードサイズまで縮小されます。
ABS平均量子化器と呼ばれる小さな作業者が、どのチップがどの場所に適合するかを判断し、モデルの実行中にそれをリアルタイムで行います。一方、棚の間を走るメッセージは子供サイズのレゴブロック(8ビット数値)に圧縮されるため、通路がスムーズに保たれ、すべてが高速に移動します。
このチップとブロックの削減は構造を不安定にする可能性があります。そこで設計者たちは、サブレイヤーノルムという安定剤を少量加え、また複雑な活性化関数をよりシンプルな二乗RELUに置き換えます。単純な方が粗い扱いにも強いからです。さらに、Llama 3のトークナイザーを借用しています。これは、モデルが新しいアルファベットを一から学ぶ必要がないように、すでに記入された辞書を持ってくるようなものです。
なぜ3つのラウンドでトレーニングするのでしょうか?子供に教えることを想像してみてください。まず、図書館のすべての本を最高速度で読み聞かせます。これが高い学習率での4兆トークンの事前トレーニングです。途中で速度を落とすことで、子供が表面的な読みから詳細の吸収へと移行します。これがクールダウンです。
次に、明確な答えのある練習テストを与えます。これが微調整段階で、人とだらだら話さずに会話する方法を学びます。ここで教師たちは、採点ポイントを平均化するのではなく合計することで、この低ビットの脳がより安定することを発見しました。また、小さなポーカーチップは刺激を与えても爆発しないため、レッスンをさらに厳しくすることができました。
最後に、答えのペアを見せて「人々はこちらの方が好きだから、こういう風にしなさい」と教えます。これが直接選好最適化です。穏やかな指導で、極めて小さな学習率で2回の短いパスを行います。こうすることで、学生は知識を保ちながらマナーを学びます。
重要なのは、子供が決して重い教科書に戻らないということです。最初から最後まで、チップとレゴブロックだけで学習するため、変換過程で何も失われません。
モデルの実行には特別な配管が必要です。なぜなら、グラフィックカードはチップではなく正規化された瓶を期待しているからです。マイクロソフトは、4つのチップを1バイトにまとめ、それをGPUハイウェイに沿って滑らせ、数学エンジンのすぐ隣で解凍し、8ビットのブロックと掛け合わせるカスタムソフトウェアを作成しました。このトリックにより、BitNetはラップトップのCPUだけで毎秒5〜7語を読むことができます。
GPUがなくても、BitNet CPPプログラムは通常のデスクトップやMacで同じ処理を行います。必要なメモリはわずか400MBほどなので、ウルトラブックでも動作します。
その成果は単純なグラフに表れています。一方の軸はメモリ、もう一方の軸はテストスコア(賢さ)です。ほとんどの小型オープンモデルは2〜5GBを必要とし、スコアが50点台のところに固まっています。BitNetは左側の0.4GBの位置にあり、スコア線で60点以上に浮かんでいます。後に低ビットに圧縮されたより大きなライバルでさえ、まだより多くのメモリを引きずり、スコアで数ポイント遅れをとっています。
簡単に言えば、BitNetはバイト単位とワット単位あたりの脳力をより多く絞り出すため、日常的な機器で堅実なAIを求める人にとって大きな飛躍のように見えるのです。
当然、マイクロソフトはこれで完成とは考えていません。論文の最終セクションはToDoリストのように読めます。彼らは、ネイティブな1ビットのスケーリング法則が70億、130億パラメータ以上でどの程度有効かをテストしたいと考えています。また、彼らはハードウェア設計者に、特殊な低ビットロジックを持つアクセラレーターを構築するよう実質的に懇願しています。そうすれば、3値表現をint8の難民のように扱う必要がなくなるからです。
彼らはまた、現在の4Kトークンのコンテキストは文書の長さに関するタスクのために拡張が必要であること、データが英語に偏っており多言語領域に拡大すべきであること、そしてテキスト+画像のハイブリッドなマルチモーダルモデルはまだ3値アプローチの未踏領域であることを認めています。また、理論家たちは、なぜこのような過酷な量子化が学習の軌跡を台無しにしないのかという疑問を持ち続けています。そのため、今後数ヶ月の間に損失景観やビット反転耐性に関する論文が出てくることが予想されます。
しかし少し視点を広げてみましょう。BitNet B1.58が本当に示しているのは、日常的なデバイスに有用なAIを押し込むためにH100のファームが必要ないかもしれないということです。最高の20億パラメータの浮動小数点モデルに匹敵するモデルを0.5GB未満で持ち運び、単一のCPUコアで読書速度で処理し、1トークンあたり30ミリジュールしか消費しないならば、スマートキーボード、オフラインチャットボット、エッジデバイスのコパイロットが、バッテリー寿命やデータセンターの請求書を気にすることなく現実味を帯びてきます。
現在、Hugging Faceで圧縮された重みをダウンロードすることができます。推論用のパック、再トレーニングを試みる勇気のある人のためのBF-16マスター、そしてBitNet CPP用のGGUFファイルの3つの形式があります。寝る前にダジャレを言わせたいだけなら、Webデモも用意されています。
誰もが10万トークンのコンテキストウィンドウと10億ドルのクラスターを持つ巨大モデルを愛していますが、BitNet B 1.58は、時には小型クーペが咆哮するマッスルカーを上回ることがあるという良い例です。道が狭く、ガス代が高い場合は特にそうです。この分野に注目していてください。ハードウェアが追いつき、シーケンス長が成長すれば、3値表現の全盛期を目にするかもしれません。それまでは、CPUを手に取り、400MBの重みをダウンロードして、1.58ビットの未来がどのように感じるか体験してみてください。
ご視聴ありがとうございました。何か学ぶことがあったらいいねボタンを押してください。次回もお会いしましょう。

コメント

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