618ZXW

Microsoft のオープンソースで、非常に人気のある 1.58 ビット大規模モデル推論フレームワークです。量子化により、数千億のパラメータを持つモデルを 1 台の CPU で 1 秒あたり 5 ~ 7 トークンの速度で実行できます。

Microsoft が 1 ビットの大規模モデル推論フレームワークをオープンソース化しました。

現在では、1,000億のパラメータを持つ大規模なモデルを量子化後に1つのCPUで実行でき、速度は1秒あたり5〜7トークンです。

これは、今年話題になった論文「1 ビット LLM の時代」の公式コード実装であり、オープンソース化されてから 1 週間も経たないうちに GitHub で7.9k のスターを獲得しました。

従来の大規模モデル パラメータは 16 ビット浮動小数点数 (FP16 や BF16 など) で保存されますが、BitNet b1.58 ではこれらすべてが 3 進数、つまり{-1, 0, 1}変換されます。

ここでの「1.58 ビット」は、各パラメータが 1.58 ビットの情報で表せることを意味します。

変換後は、行列の計算には加算のみが含まれるため、大規模なモデルで一定レベルの精度を維持しながら、必要なストレージスペースとコンピューティングリソースを大幅に削減し、ローカルデバイスで LLM を実行する可能性も大幅に高まります。

プロジェクトがオープンソース化された後、X で大きな注目を集めました。

量子化後、数千億のパラメータを持つモデルを単一の CPU で実行できます。

bitnet.cppは、1 ビット LLM (例: BitNet b1.58) の公式推論フレームワークです。

このフレームワークには、CPU 上で高速かつロスレスな 1.58 ビット モデル推論をサポートする一連の最適化されたカーネルが搭載されており、将来的には NPU および GPU をサポートするように拡張される予定です。

bitnet.cpp の初期バージョンでは、主に CPU 推論がサポートされていました

具体的なパフォーマンスの向上に関しては、このフレームワークは ARM CPU で1.37 ~ 5.07 倍の高速化を実現でき、大規模なモデルではさらに大幅なパフォーマンス向上が期待できます。

同時に、エネルギー消費量を 55.4% ~ 70.0% 削減し、効率をさらに向上させます。

x86 CPU では、速度は 2.37 ~ 6.17 倍向上しエネルギー消費は 71.9% ~ 82.2% 削減されます

ネットユーザーはまた、x86 のパフォーマンス向上が ARM よりも大きいという重要な点を発見しました。

さらに、bitnet.cpp を使用すると、量子化後に数千億のパラメータを持つモデルを単一の CPU で実行することができ、人間の読み取り速度に近い 1 秒あたり 5 ~ 7 トークンの速度を実現できます。

Microsoft は、bitnet.cpp 推論フレームワークを使用してサポートされるさまざまな 1 ビット LLM もデモしました。

6 ページの論文で 1 ビット LLM を紹介しています。

Microsoft は 1 年間にわたり 1 ビット LLM 実装を研究しており、これを BitNet (Transformer の一種) と呼んでいました。これは nn.Linear をBitLinearに置き換えたものです。

今年 2 月、元の BitNet チームは以前の論文に基づいて最適化を行い、元の BitNet に0 値を追加する BitNet b1.58 を提案しました。

すると、わずか 6 ページのこの論文が、熱い議論を巻き起こしました。

BitNet b1.58 モデルの重みは 3 進数値 {-1、0、1} として量子化されます。これは、バイナリ システムで各重みを 1.58 ビットを使用して表すことと同じです

重みは絶対値平均量子化関数によって制約され、重み行列をその平均絶対値でスケーリングし、それを最も近い整数値 (-1、0、または 1) に丸めます。

活性化量子化では、ゼロ点量子化を排除するために活性化値が[−Qb、Qb]の範囲にスケーリングされます。

アーキテクチャ設計の面では、BitNet b1.58はLlamaからRMSNorm、SwiGLU、回転位置エンコーディングなどのコンポーネントを採用し、バイアス項をすべて排除しています。この設計により、BitNet b1.58は主要なオープンソースフレームワークへの容易な統合が可能です。

実験では、BitNet b1.58 はLlama と比較して行列乗算の計算エネルギー消費を 71.4 倍節約しました。

この方法が公開された後、多くの人々もこの研究に基づいてそれを研究してきました。

1 つの問題は、BitNet b1.58 では各パラメータを 3 値のみで表現しているが、これらすべてにモデルを最初からトレーニングする必要があり、すべての人が LLM 事前トレーニングを行う予算を持っているわけではないことです。

Huggingface Transformers は最近 BitNet b1.58 を統合し、いくつかのテクニックを使用して既存のモデルを 1.58 ビットに直接微調整できるようにしました。

興味のある人は自分で調べてみてください。

しかし、一部のネットユーザーはこの方法の限界を指摘した。

要約すると、1 ビット LLM には大きな可能性があります。

しかし、ネットユーザーが指摘したように、1 ビット LLM の鍵は実践で実証されつつあります。

参考リンク: [1]https://github.com/microsoft/... [2]https://x.com/rohanpaul_ai/status/1847814379657462201 [3]https://x.com/rohanpaul_ai/status/1848172443258728860?s=46&t=iTysI4vQLQqCNJjSmBODPw [4]https://huggingface.co/blog/zh/1_58_llm_extreme_quantization