量子化とは

りょうしかquantization別名 モデルの量子化

1行定義

量子化とは、モデルの重みなどの値を、より少ないビット数の粗い段階で表すことで、メモリ使用量を減らし、計算を速く軽くする手法のことです。

くわしく

量子化は、数値をより粗い段階で表すことで、モデルを軽くする手法です。円周率を3.14159…ではなく3.14と書くように、少ない桁で近い値を表すイメージです。

ビット数とデータ量

ニューラルネットワークの重みは、通常32ビットの浮動小数点数で表します。これを16ビット、8ビット、4ビットなどに減らすのが量子化です。8ビットの整数なら、1つの値は256段階のどれかになり、データ量は32ビットのおよそ4分の1になります。パラメータの数は変わらず、1つあたりの大きさが小さくなります。整数の計算は浮動小数点数の計算より軽いため、推論の速度や電力の面でも有利です。

計算例

整数 q と、刻み幅を表すスケール S を使い、元の値を S × q で表すとします。S = 0.02 のとき、重み0.513は 0.513 ÷ 0.02 = 25.65 を丸めて q = 26 になります。元に戻すと 0.02 × 26 = 0.52 で、誤差は 0.52 - 0.513 = 0.007 です。この小さな誤差が多くの重みで積み重なると、精度が下がることがあります。

2つの進め方

  • 学習後量子化:学習を終えたモデルをそのまま変換します。手軽ですが、ビット数を減らしすぎると精度が落ちやすくなります。
  • 量子化を考慮した学習:学習中に量子化の誤差を模擬し、誤差に強い重みを学ばせます。手間はかかりますが、精度を保ちやすくなります。

量子化はエッジAIで広く使われるほか、大規模言語モデルを手元のPCで動かすためにも使われます。

同じ言葉の別の意味

音声のA-D変換でも、振幅を決まった段階に丸める処理を量子化と呼びます。連続的な値を限られた段階で表すという考え方は同じですが、扱う対象と目的が異なります。

覚え方

「桁を減らして、荷物を軽く」と覚えます。

G検定での出題

ビット数を減らして軽量化する仕組み、ビット数とデータ量の関係の計算、精度とのトレードオフ、プルーニングや蒸留との違いが問われます。A-D変換の量子化と同じ言葉である点にも注意が必要です。

混同しやすい用語

用語意味
A-D変換音声のように連続して変化するアナログ信号を、一定の間隔で読み取って数値に置き換え、デジタルデータにする処理

違いを表で比べる:プルーニング・量子化と蒸留

◯×チェック

  1. 量子化には、学習を終えたモデルをそのまま変換する方法のほかに、量子化による誤差を見込んで学習の段階から調整する方法がある。

    答えを見る

    答え ◯ 正しい

    前者を学習後量子化、後者を量子化を考慮した学習と呼びます。後者は手間がかかる分、少ないビット数でも精度を保ちやすくなります。

  2. 量子化は、層やニューロンの数を減らすことで、モデルのパラメータ数を少なくする手法である。

    答えを見る

    答え × 誤り

    量子化では、パラメータの数は変わりません。1つ1つの値を表すビット数を減らします。重みや結合そのものを取り除くのはプルーニングです。

  3. A-D変換の量子化も、モデル圧縮の量子化も、細かな値を、あらかじめ決めた限られた段階のうち近い値に丸めるという点では共通している。

    答えを見る

    答え ◯ 正しい

    A-D変換では音の振幅を、モデル圧縮では重みなどの値を丸めます。どちらも段階を粗くするほどデータ量は減り、誤差は大きくなります。

練習問題

量子化の問題(3問)
  1. モデル軽量化の手法
  2. 量子化による重みのデータ量
  3. エッジAIを採用する利点

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術34

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習