Scribble at 2026-04-20 13:35:19 Last modified: 2026-04-20 14:31:40
コンピュータの計算精度は時代を追うごとに高くなってきていて、僕がはじめて使った「マイコン」と呼ばれた時代のコンピュータは8ビットのマシンだった。それが大学へ入る頃には16ビットのマシンが主流となり、やがて32ビットになって、いまでは64ビットのマシンで大半の人がパソコンを使っている。ところが、ここ最近の生成 AI の普及によって、開発されリリースされているモデルはファイル・サイズが大きくて、それを処理するために必要な計算リソース(VRAM やメイン・メモリなど)が大きいので、コンシューマ・スペックのパソコンで動かすために「量子化」という手法を使って、逆にモデルの計算精度を落としていくというアプローチが普及している。これにより、データ・セットのサイズが巨大でも、それを限られたスペックのパソコンで動かせるようになるわけだ。
量子化という手法は、量子力学のように最先端の物理学みたいな言葉を使うので、やたらと難解であるかのように思われているようだが、もともとは "discrete"(離散的)という言葉に近くて、要するに「連続ではなく飛び飛びの値を扱う」ということだ。なので、音楽の世界でもデジタル音楽を扱うのに「サンプリング」という手法があるが、あれも録音されたテープなどからオーディオ・インターフェイスのような機器を使って音のデータを取り込んで DTM 処理するときに、音の情報を文字通り「一定の区間に現れるデータの中から得たサンプル」として飛び飛びに取得して扱うことを意味する。8ビットよりも32ビットの音源が「高音質」であるとされるのは、それだけ単位時間あたりに扱う音のデータが多いからであり、それはつまり飛び飛びのデータであっても高音質なデータは処理しているデータどうしの間隔が短いため、音の変化を更に正確かつ精密にとらえていることになるということである。
だが、このような量子化なりサンプリングという手法には限界あるいは欠点がある。それは、もちろん元のデータからの短絡によって誤差が生じるということだ。コンピュータが内部でやっていることは計算であるから、精度が落ちると計算できる数の桁数が減る。このことだけで、高校数学のはじめに出てくるような「結合法則」が成り立たなくなるような状況が起きて、誤差が生じるのだ。結合法則とは、"(a + b) + c = a + (b + c)" であった。もちろん、高精度のコンピュータであれば、a = 100、b = 0.8、c = 0.8 であるとき、(100 + 0.4) + 0.4 = 100 + (0.4 + 0.4) であることは明白だろう。しかし、精度を落とすということは扱える数の桁が減るということを意味するので、ここで精度を落とした計算をするコンピュータを仮定して、3桁以上の数を与えられると四捨五入して丸めてしまうとしよう。すると、a, b, c はそれぞれ3桁であるから問題ないが、(a + b) + c を計算させると、(a + b) は (100 + 0.04) = 100.4 だが、これは 100 に丸められてしまう。そして c を足すと、100 + 0.4 = 100.4 だが、これも 100 に丸められてしまう。よって、100 が計算結果として返される。これに対して、a + (b + c) を計算させると、まず (b + c) = (0.4 + 0.4) = 0.8 であり、これは丸められない。次に 100 + 0.8 を計算し、これは 100.8 となって、丸められると 101 になる。お分かりのように、結合法則は成り立たず、このような単純な1回の計算だけでも誤差が生じる。そして、生成 AI のデータ処理は莫大な数の計算をしているので、こういう誤差による影響は非常に大きくなる可能性があるのだ。