bitsandbytes

Last-modified: 2026-01-04 (日) 02:29:50

GitHubで公開されているライブラリとしてのbitsandbytes

概要

量子化手法

BnBの8ビット量子化

8ビット量子化に適さない外れ値を検出し、外れ値だけfp16で持って精度を保つ方式

NF4量子化

LLMのパラメータが正規分布しているという観察に基づく手法
4ビット整数の取りうる16個の値それぞれに決め打ちで正規分布の分位点をあてて非線形変換する
NF4=NormalFloat、NはNormal Distribution(正規分布)のN

  • 4ビットで表せるのは16通りだが、そのうち1点を0にあてると残りは奇数になる為、NF4は正の値が負の値より一つ多い
  • LUT は /bitsandbytes/csrc/cpu_ops.cpp に基づく。小数点以下3桁で丸めた
  • fp4(e2m1)はレンジ±6だが、ここでは比較しやすいように6で割った表記
    NF4fp4
    15+1.000+1.000
    14+0.723+0.667
    13+0.563+0.500
    12+0.441+0.333
    11+0.334+0.250
    10+0.246+0.167
    9+0.161+0.083
    8+0.080+0
    7±0-0
    6-0.091-0.083
    5-0.185-0.167
    4-0.284-0.250
    3-0.395-0.333
    2-0.525-0.500
    1-0.696-0.667
    0-1.000-1.000

バージョン情報

※降順表示

0.41.1

  • sd-scriptsでは'23/10/2現在このバージョンが推奨されている。
    オプション扱いなので、該当するオプティマイザーを使わない場合は、インストールしなくても良い。
  • sd-scriptsのfull_fp16オプションを使う場合は、
    このVer.以降を使用する必要がある。

0.36~0.41.0

sd-scriptsにおいて不具合報告*1があり、回避推奨

0.35

sd-scriptsで使われていたバージョン。