「BitNet b1.58」の版間の差分
Administrator (トーク | 投稿記録) 細 Administrator がページ「1bit LLM」を「BitNet b1.58」に移動しました |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
1bit LLM | '''BitNet b1.58'''とは、2024年2月末に[[マイクロソフト]]が発表したパラメータを3値(-1, 0, +1)で表現する超軽量で超高速な1ビットLLMアーキテクチャです。「[[1bit LLM]]」とも呼ばれます。 | ||
業界をあげて「[[bfloat16]]だ」「[[FP8]]だ」とデータサイズの削減を続けた結果、ついにパラメータが取り得る値は3種類(-1, 0, 1)になりました。なお内部的には2ビットで3値を保持する「1.58ビット」を採用しています。2ビットだと4値を表現できますがゼロを表現するために3値だけを使うようにしているようです。 | |||
通常、[[ニューラルネットワーク]]の[[内積]]計算は各要素の[[乗算]]とその結果の[[加算]]から成り立ちます。例えば、ベクトル <math>( \mathbf{a} = [a_1, a_2, a_3] ) </math>と <math>( \mathbf{b} = [b_1, b_2, b_3] )</math> の内積は次のように計算されます。 | |||
通常、[[ニューラルネットワーク]]の[[内積]]計算は各要素の[[乗算]]とその結果の[[加算]] | |||
:<math>[ \mathbf{a} \cdot \mathbf{b} = a_1 \cdot b_1 + a_2 \cdot b_2 + a_3 \cdot b_3 ]</math> | :<math>[ \mathbf{a} \cdot \mathbf{b} = a_1 \cdot b_1 + a_2 \cdot b_2 + a_3 \cdot b_3 ]</math> | ||
しかし、1bit LLMでは[[乗算器]]が不要になり[[加算器]]だけで[[行列積]] | しかし、1bit LLMでは[[乗算器]]が不要になり[[加算器]]だけで[[行列積]]の計算が行えるようになります。例えば、行列<math> ( A ) </math>と <math>( B )</math> の積<math> ( C ) </math>を計算する場合、各要素<math> ( C_{ij} ) </math>は次のように計算されます。 | ||
: <math>[ C_{ij} = \sum_k (A_{ik} \cdot B_{kj}) ]</math> | : <math>[ C_{ij} = \sum_k (A_{ik} \cdot B_{kj}) ]</math> | ||
| 22行目: | 18行目: | ||
最近の人工知能でよく使われているバーテックスシェーダー系の行列演算メインの回路ではなく、 | 最近の人工知能でよく使われているバーテックスシェーダー系の行列演算メインの回路ではなく、 | ||
古典的な[[GPGPU]]で使われたピクセルシェーダー系の技法(回路)を使えば爆速な気がする。 | 古典的な[[GPGPU]]で使われたピクセルシェーダー系の技法(回路)を使えば爆速な気がする。 | ||
== 関連項目 == | |||
* [[Bonsai-8B]] | |||
[[category: 人工知能]] | [[category: 人工知能]] | ||
[[category: | [[category: 2024年]] | ||