2ヶ月前
LLM.int8(): 大規模トランスフォーマーのための8ビット行列乗算
Tim Dettmers; Mike Lewis; Younes Belkada; Luke Zettlemoyer

要約
大規模言語モデルは広く採用されていますが、推論には大量のGPUメモリが必要です。本研究では、トランスフォーマーのフィードフォワード層とアテンション射影層におけるInt8行列乗算の手順を開発しました。これにより、推論に必要なメモリを半分に削減しながら、完全な精度性能を維持することが可能になりました。当社の手法を使用することで、175Bパラメータの16/32ビットチェックポイントを読み込み、Int8に変換し、パフォーマンス低下なしで即座に使用できるようになります。これは、トランスフォーマー言語モデルにおいて注目度と予測性能を支配する高システマティックな新規特徴の性質を理解し、それらに対処することによって実現されました。これらの特徴に対応するために、我々は二段階量子化手順LLM.int8()を開発しました。まず、行列乗算の各内積に対して個別の正規化定数を使用したベクトルごとの量子化を行い、大部分の特徴を量子化します。しかし、新規的な外れ値に対しては、新たに混合精度分解スキームも導入しています。これにより、外れ値の特徴次元を16ビット行列乗算に分離しつつ、99.9%以上の値は8ビットで乗算されます。LLM.int8()を使用して実証した結果によると、最大175Bパラメータの大規模言語モデルでの推論がパフォーマンス低下なしで行えることが確認されました。この結果により、このようなモデルが大幅に利用しやすくなり、例えばOPT-175BやBLOOMを消費向けGPU搭載の単一サーバー上で使用することが可能になりました。当社はソフトウェアをオープンソース化しています。