1 bit llm の実力は？BitNet b1.58の登場

最近、1 bit LLM（Large Language Model）という新しい量子化技術を用いて学習したモデルが登場し、注目を集めています。この記事は、1 bit LLM の概要と実力について調べたメモです。

---

## 1 bit LLM とは？

1 bit LLM は、通常のLLMと比較して、情報の最小単位である「1ビット」を使用するモデルを指します。これは、従来のLLMとは大きく異なるアプローチであり、その特徴と可能性に注目が集まっています。

1 bit LLM の主な特徴は以下の通りです：

1. 極端な量子化：従来のLLMが32ビットや16ビット、さらには8ビットや4ビットの浮動小数点数を使用するのに対し、1 bit LLMは文字通り1ビット（0か1）のみを使用します。

2. 高速化と省メモリ化：1ビットへの量子化により、計算速度の向上とメモリ使用量の大幅な削減が期待されます。

3. エネルギー効率の向上：計算量の削減により、消費電力の低減が可能になります。

4. 小型デバイスでの利用：サイズの縮小により、より小さなデバイスでの使用が可能になります。

## 1 bit LLM の仕組みと利点

1 bit LLM は、従来のLLMの量子化をさらに進めた技術です。通常、LLMの重みは32ビットまたは16ビットの浮動小数点数で表現されますが、1 bit LLMでは各重みを1ビット（0または1）で表現します。

これにより、以下のような利点が生まれます：

1. モデルサイズの大幅な削減：重みの表現に必要なビット数が大幅に減少するため、モデルのサイズが劇的に小さくなります。

2. 処理速度の向上：1ビット演算は非常に高速であり、推論時間を大幅に短縮できます。

3. メモリ使用量の削減：重みの表現に必要なメモリが少なくなるため、GPUメモリの使用量が大幅に減少します。

4. エネルギー効率の向上：計算量と必要なメモリが減少するため、消費電力を抑えることができます。

5. 小型デバイスでの実行：サイズの縮小により、スマートフォンなどの小型デバイスでもLLMを実行できる可能性が高まります。

## 1 bit LLM の実例：BitNet b1.58

最近では、BitNet b1.58と呼ばれる1 bit LLMの一種が注目を集めています。このモデルは厳密には1ビットではなく、1.58ビット/重みを使用しています。具体的には、各重みが-1、0、1の3つの値を取ることができます。**1.58ビットという値は、log2(3)を計算して四捨五入した結果です。**

BitNet b1.58の特徴は以下の通りです：

1. 量子化機能：absmean量子化関数を採用し、重みを「-1, 0, +1」のいずれかに限定しています。これにより、線形変換を行う際に乗算をほとんど必要とせず、整数加算のみで済むため、エネルギー消費を抑えつつ高速な計算が可能です。

2. 活性化関数の量子化：非線形関数への入力前に活性化をスケーリングしない方式を採用しており、システムレベルでの最適化が容易です。

3. LLaMAコンポーネントの採用：RMSNorm、SwiGLU、ロータリー埋め込み等を利用しています。

4. 高速な処理：従来のFP16トランスフォーマーと比較して、メモリ、性能、処理量、エネルギー消費の面で効率的であることが示されています。

5. 省メモリ：GPUメモリの使用量が大幅に削減されます。

6. 性能維持：精度を犠牲にすることなく、高速な処理が可能です。

BitNet b1.58の性能に関しては、同程度の性能のモデルと比べて大きな性能の劣化は見られず、メモリ占有量とレイテンシーは量子化しているので明確に効率よくなっています。また、消費エネルギーの面でも効率が良いことが示されています。

BitNet b1.58は7つの異なるタスクと3つの異なるモデルサイズ（700M、1.3B、3B）において、LLaMAと比較して約1%以内の性能を示しています。

## 1.58ビットトランスフォーマーモデルの仕組み

1.58ビットトランスフォーマーモデルは、BNN（Binary Neural Network）の考え方を応用しています。具体的な仕組みは以下の通りです：

1. 順伝搬：重み行列を+1/0/-1の3値に制限します。

2. 逆伝搬：Straight-Through Estimatorを使用して微分を実現します。

この単純な仕組みで大きな効果が生み出せることが注目されています。

BitLinearの活性化と中間結果は、より高い8ビットの精度で保存されます。これにより、精度を維持しつつ、効率的な計算が可能になっています。

以下は、1.58ビットトランスフォーマーモデルで使用されるRoundClip関数のPythonコードの例です：

```python
def RoundClip(W, gamma):
    return torch.clamp(torch.round(W / gamma), -1, 1)
```

この関数は、重みWをgammaで割って四捨五入し、その結果を-1、0、1の3つの値のいずれかに制限します。これにより、重みを3値（-1, 0, 1）に量子化することができます。

上の図は、1.58ビットトランスフォーマーモデルで使用されるhardtanh関数のグラフを示しています。この関数は、入力を-1から1の範囲に制限する役割を果たし、モデルの量子化に重要な役割を果たしています。

## BitNet 1.58Bitsの性能

BitNet 1.58Bitsは従来の70億パラメータモデルと比較して、スループットが8.9倍向上したことが報告されています。さらに、Llamaモデルと比較して、精度を落とすことなく3倍高速であることが示されています。

この驚異的な性能向上は、1ビット処理能力によるものです。BitNet 1.58Bitsは、計算を加算のみで行うことができるため、計算負荷とメモリ使用量を大幅に削減することができます。

## 1 bit LLM の可能性と課題

1 bit LLM の登場により、以下のような可能性が期待されています：

1. エッジデバイスでの利用：省メモリ化と低消費電力化により、スマートフォンや各種組み込み機器でChatGPTレベルのAIを単独で動作させる可能性が出てきています。

2. 大規模モデルの普及：モデルサイズの大幅な削減により、より多くのデバイスで大規模なLLMを利用できるようになる可能性があります。

3. AI技術の民主化：計算リソースの要求が減少することで、より多くの研究者や開発者がLLMを扱えるようになる可能性があります。

4. コンピューティングリソースの変革：GPUから加算に最適化されたハードウェアへの移行が示唆されています。

5. LLMの課題解決：1 bit LLMは、従来のLLMが抱える巨大なサイズの問題を解決する可能性があります。

一方で、以下のような課題も存在します：

1. 精度の維持：極端な量子化による精度低下をどこまで抑えられるかが課題です。

2. 学習の困難さ：1ビットでの学習が本当に可能かどうか、まだ検証が必要です。

3. 実用化への道のり：理論上の可能性と実際の応用には、まだギャップがあります。

4. モデルの公開：BitNetモデルとその詳細はまだ完全には公開されていません。

## まとめ

1 bit LLM は、LLMの世界に革命をもたらす可能性を秘めた技術です。処理速度の向上、省メモリ化、エネルギー効率の改善など、多くの利点が期待されています。特に、推論用途ではメモリ容量を十数分の１に小型化でき、複雑で消費電力の多い浮動小数点演算回路（GPU）を大幅に削減できる点が注目されています。

BitNet 1.58Bitsの登場は、1 bit LLMの実用化に向けた大きな一歩となりました。従来のモデルと比較して大幅な効率向上を実現しつつ、精度を維持できることが示されています。特に、LLaMAとほぼ同等の性能を示しながら、大幅に効率的な処理が可能であることが明らかになりました。

しかし、精度の維持や実用化に向けてはまだ課題が残されており、今後の研究開発の進展が注目されます。AI技術の急速な発展により、1 bit LLMのような革新的なアプローチが次々と登場しています。これらの技術が実用化されれば、AIの利用範囲がさらに広がり、私たちの生活や社会に大きな影響を与える可能性があります。今後の動向に注目していく必要があるでしょう。

## 参考文献
5. [什么是1-bit LLM - DeepInMind](https://it.deepinmind.com/llm/2024/03/29/what-is-1bit-llm.html)
9. [The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits](https://emeraldgoose.github.io/paper/1-bit-llm/)
10. [What are 1-bit LLMs? | daily.dev](https://app.daily.dev/posts/what-are-1-bit-llms--4ezlg9kl1)
11. [LLMs only need three weight values (-1, 0, and 1)](https://learnandburn.ai/p/llms-only-need-three-weight-values)
12. [The Era of 1-bit LLMs - Medium](https://medium.com/neoxia/the-era-of-1-bit-llms-c7761b3688ce) (アクセス日: 2024-09-01)
13. [BitNet: Scaling 1-bit Transformers for Large Language Models](https://blog.ngzhian.com/one-bit-llm.html) (アクセス日: 2024-09-01)