今回からAIの量子化について、学んでいこうと思います。具体的には、量子化することによる推論の高速化について調べていきたいと思います。
最近のChatGPTなどに代表される「大規模言語モデル(LLM)」の動向としても、量子化が注目されてきています。
量子化によって、一定の精度劣化はありますが、モデルを小さくしたり、推論速度を改善したりできることから、エッジデバイスで推論する際に、よく使われています。
最近、スマホにLLMを搭載したというニュースが出てました。
AIの量子化では、大きく分けて、PTQ(Post Training Quantization)と呼ばれる「学習後の量子化」と、QAT(Quantization Aware Training)と呼ばれる「学習中の量子化」があります。
PTQは、既に学習が完了したモデルに対して、量子化したモデルに変換する手法で、QATより量子化の精度劣化は大きいものになりますが、手軽に量子化を試せるため、よく使われています。
一方、QATは、学習中に量子化モデルを作成する仕組みを使用するため、精度劣化は最低限に抑えることが出来ますが、学習してみないと、その精度劣化を確認できないため、PTQより手間がかかります。
現在、PyTorchやTensorFlowで実装されているQATは、Googleが2017年12月にarXivに登録した論文の「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」がベースになっていると思います。
まずは、量子化の基本から学び、この論文でQATの理論を学んでいこうと思います。
ある程度理解できたら、PyTorchの量子化学習を試してみて、この論文との違いや、特徴などを見ていきたいと思います。
続きを読む