LLMの推論を効率化する量子化技術調査 【技術動向調査】

本記事は、当社オウンドメディア「Doors」に移転しました。

約5秒後に自動的にリダイレクトします。


ブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。
本記事から週に1回程度の頻度で、社内で実施している生成AI・LLMに関する論文レビュー会の内容をピックアップのうえ配信していきますので、ぜひご期待ください。
今回は、LLMの学習や推論の効率化・高速化に関する4つの技術論文をご紹介させていただきます。

目次

こんにちは、アナリティクスコンサルティングユニット所属の辻です。
今回は社内のLLM研究プロジェクトの一つとして、新たに立ち上げたLLM論文レビュー活動の紹介と、実際にレビュー会で取り上げた論文をご紹介させていただきます。

LLM論文レビュー会とは

ブレインパッドでは、ChatGPTに代表される生成AI・LLMの社会実装をご支援するための技術的知見を蓄積するために、技術研究プロジェクトを複数立ち上げております。その複数あるプロジェクトの一つとして、進歩の早いLLMに関連する技術トレンドを追いかけるために、LLMの今後の発展において重要なテーマに関連する論文を取り上げ、社内でレビュー会を行う取り組みを始めております。

我々がLLMの技術トレンドをキャッチアップしていくのに際して、下記4つの注力テーマを設定しております。

  • 効率化
  • 性能改善
  • ツール拡張
  • マルチモーダル

今後は、毎週1つのテーマをレビュー会で取り上げていき、そのレビュー会の中で出てきたフィードバックも含めてブログで発信していきます。

注力する4テーマ

今回のテーマ

第1回目はLLMの学習や推論の高速化や効率化に関する論文、とりわけ量子化技術について取り上げた論文を中心にレビューを行いましたので、こちらをご紹介させていただきます。

A Survey of Quantization Methods for Efficient Neural Network Inference

量子化の基本コンセプト(左:均一量子化,右:非均一量子化) *論文のFigure.1より引用

選定理由

LLMのモデルサイズが急速に増加している現在、資源制約のある環境での効率的な実装が求められています。そういった背景を踏まえるとQLoRAのように量子化を前提としたPEFTの発展は今後も継続すると考えられます。今回選出した論文はその根幹となる量子化技術に関する基礎知識を網羅するのに適した論文となっています。

論文概要

Point

  • 大規模化を続けるディープラーニングモデルのモデルサイズと計算コストを削減するためのアプローチとして量子化が注目されている
  • 量子化の手法として、均一/非均一量子化や対称/非対称量子化等の手法が知られている
  • 発展的な手法として、層毎に量子化度合いを変更する混合精度量子化や1bitや2bitのような極端に低ビットな量子化の研究が進んでいる

この論文はニューラルネットワークの量子化手法に関するサーベイ論文であり、量子化に関する技術について基本的な手法から応用手法までを幅広くサーベイしています。
なお、量子化(Quantization)とは連続する値を低ビットの離散値にマッピングすることを指します。
上図のイメージのように、連続値を一定の範囲では同じ値として扱うことでメモリフット使用量を削減する手法であり、大規模化するディープラーニングモデルのモデルサイズを削減する手法として近年注目されてきています。また、大規模言語モデルは学習や推論にかかる計算コストが高いため、その点でも量子化による効率化が重要なトピックとなっています。

この論文では、量子化の歴史から振り返っており、量子化技術自体は信号処理分野の重要課題として研究されてきた経緯が説明された後、それぞれの手法の説明と課題が整理されています。

量子化の基本的な手法

サーベイ論文であるため包括的に各手法の解説を行っており、ここで一つ一つのアプローチを詳細に解説するのは困難であるため、紹介されている手法を表形式でまとめました。
参照いただき、気になるアプローチがありましたら、本論文で詳細を追っていただけると幸いです。

手法 (英語名) 特徴 メリット デメリット
均一量子化 (Uniform Quantization) 等間隔の量子化段階を設定する手法
*上図左
ハードウェア実装が容易 データ分布に合わせた最適化が困難
非均一量子化 (Non-Uniform Quantization) データ分布に合わせて量子化段階を設定する手法
*上図右
精度の低下を抑制できる ハードウェア実装が複雑
対称量子化 (Symmetric Quantization) ゼロ中心で正負対称な量子化を行う手法 ロバストで簡潔 データ分布に依存しやすい
非対称量子化 (Asymmetric Quantization) データ分布に合わせて正負非対称に設定する手法 最適な量子化が可能 パラメータ調整が困難
静的量子化 (Static Quantization) 固定の量子化パラメータを使用する手法 実装が容易 入力データの分布の変化に対応しにくい
動的量子化 (Dynamic Quantization) 入力データに応じて量子化パラメータを調整する手法 高精度が期待できる ハードウェア実装が複雑
量子化の発展的なトピック

論文の後半では、単なる量子化の手法の解説にとどまらず、ハードウェアに最適化された量子化にどう取り組むかや解釈性に関する話題が触れられています。

トピック 概要 意義
ハードウェア最適化量子化 TPUやGANなど、専用ハードウェアのアーキテクチャに合わせて最適な量子化方法を設計するハードウェアレベルでの実装を前提としたアプローチ ハードウェアに最適化されたモデル構造の探索が可能になり、実行効率と低消費電力化を最大限に引き出せる
混合精度量子化 モデルの層ごとに必要な計算精度に応じて、異なるビット数の量子化を適用することで計算コストと精度を柔軟にバランスできる 計算資源の有効活用と精度維持の両立が可能になるため、ハードウェア性能を最大限に引き出す上で重要な手法
量子ニューラルネット 量子ビットを活用した量子コンピュータ上でニューラルネットを実行。量子並列性により極端な並列計算が可能 従来の計算限界を突破する飛躍的な性能向上が期待される
量子化による解釈性向上 量子化はモデル構造を単純化し、動作を可視化しやすくする効果があるため結果の解釈性が向上する 説明可能なAIシステムの実現に貢献
極端な低ビット量子化 1~4ビットという極端に低いビット数での量子化手法 モデルサイズと計算コストを劇的に減らせる一方、推論精度の劣化が避けられない

レビュー会FB

Q: 量子化による精度劣化はどの程度か?

  • 量子化による精度劣化は、量子化の方法や対象モデルによって異なるが、8ビット量子化の場合、32ビット浮動小数点に対して1-2%程度の精度低下が一般的
  • 2ビットや1ビット量子化の場合、20%を超える大きな精度低下が発生することがあるが、論文中では「量子化誤差の最小化」、「損失関数の改善」、「トレーニング手法の改善」の3つの分類でその精度低下を抑える方法が提案されている

Q:量子化用に再学習(fine-tuning)するのか?

  • 量子化後のモデルで精度を回復するために、再学習(fine-tuning) を行うのが一般的
  • 量子化では、重みの値域が制限されるため、その重み分布では最適な学習結果が得られないので、量子化後のモデルをもう一度学習データで学習することで、量子化可能な重み空間内で最適な重みを再取得する
  • この再学習により、多くの場合で量子化前の精度に近いレベルまで回復でき、ハードウェアへの展開時には、この再学習プロセスが必要不可欠となる

関連論文

タイトル 概要
Optimal Brain Compression: A Framework for Accurate Post-Training Quantization and Pruning 量子化と剪定を統合し、精度を落とさずに圧縮率を大幅に改善する手法を提案
GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers 提案手法のGPTQは、近似2次情報に基づき重み量子化を行う手法が提案されており、非常に正確かつ効率的
GPTQは1750億パラメータのGPTモデルを約4時間のGPUで量子化でき、重みあたり3-4ビットに削減しつつ、精度低下はほとんどない
A Survey of Techniques for Optimizing Transformer Inference 推論フェーズを最適化する技術について包括的なサーベイを行っており、アルゴリズムレベルでの知識蒸留、剪定、量子化、ニューラルアーキテクチャ探索、軽量ネットワーク設計などの技術を調査している
さらに、ハードウェアレベルでの最適化手法と、トランスフォーマー用の新しいハードウェアアクセラレータの設計についても解説がなされており本論文同様推論を効率化する技術に関して包括的なレビューがされている

Incrementally-Computable Neural Networks: Efficient Inference for Dynamic Inputs

ベクトル量子化のイメージ図 *論文 Figure.1より引用

選定理由

先ほど(1つ目)の論文は、2021年に発表された量子化に関する包括的なサーベイ論文であり最新手法が収録されていなかったため、量子化に関する最新の手法(2023/6/27に公開された手法)を紹介するべくこの2つ目の論文を取り上げました。また、推論を効率化するためにベクトル量子化を導入することを提案した初めての論文でもあるため、今後の実務上の発展性も考慮し選出しています。

論文概要

Point

  • 従来のニューラルネットは入力のわずかな変更に対して効率的に対応できない課題がある
  • 中間層にベクトル量子化(VQ)を導入することで、入力の変更に対する計算の再利用性を大幅に向上
  • VQをTransformerに対して適用した本手法(VQT)は従来のTransformerとほぼ同等の精度を達成しつつ、12倍の計算量削減を実現

この論文は、動的な入力(センサーデータやユーザー入力など)を効率的に処理することが困難なディープラーニングの課題に対する解決策として、ネットワークの中間層にベクトル量子化(Vector Quantization)を導入することで効率的な推論を可能にする手法を提示しています。

課題背景

LLMの利用シーンとして、センサーデータやユーザー入力のような刻々と入力が変化するものに対して効率的に処理する必要に迫られることがあります。
例えば、文書が編集されるたびに、AIライティング・アシスタントがリアルタイムで提案を更新する必要がありますが、既存の効率化技術を使用しても、毎回モデルを再実行するのはコストがかかりクイックに推論を返せない問題が存在します。
従来のネットワークアーキテクチャが密な接続を持っていることが漸進的な(インクリメンタルな)計算の障害となっていることに注目し、その改善を図るためのアプローチとしてVTQと呼ばれる本アプローチを提案しています。

提案手法

ネットワークの中間層にベクトル量子化(VQ)を導入することで中間層の値が離散化されるため、意味のない出力の変動を抑制し計算結果の再利用を可能にしています。
本論文ではこの手法をTransformerに適用し、Incrementally-Computable Neural Network (VQT) として提案されています。

本アプローチは以下のような流れで構成されています。

1. 中間層にベクトル量子化(VQ)を導入

  • 中間層のベクトルをあるコードブックから選択するように学習させる
  • これにより中間層の値が離散化され、入力の小さな変化でも値が一定に保たれる

2. 離散化による計算の再利用

  • VQにより中間層が離散化されるため、入力が少し変わっても値は同じ
  • 計算結果の大半を再利用でき、編集距離に比例する計算で推論可能

3. Transformerへの適用

  • TransformerのエンコーダにVQ層を導入
  • Attention layerのクエリ、キー、バリューをVQ層の出力で置き換えることでAttention計算を効率的に再利用

実験結果として、VQTは従来の大規模Transformerとほぼ同等の精度を保ちながらWikipediaの編集履歴に対して12.1倍の演算量削減を達成したことが報告されています

このアプローチの有効性がさらに検証されていけば、リソース制約のある環境でもLLMを効率的に実行し低レイテンシーなサービスを維持することが可能になります。この技術は、リアルタイム分析、対話型サービス、オンラインコラボレーションツールなど、さまざまな分野での採用が期待できます。

レビュー会FB

Q:本アプローチで具体的に精度がどう変化したか?

  • Wikipediaの編集履歴データを用いて、1つの単語を置換するタスクでVQTと標準のTransformerを評価した結果、1単語置換タスクの精度はVQTで2.3ポイント低下した
    • ただし、3単語までの置換ではVQTの方が逆に0.1ポイント精度が高かった
    • これは標準のTransformerが1単語の変更に対して精度面で脆弱であることを示唆している
  • VTQは一定の情報損失は生じるものの、小規模な入力変化に対しては精度が維持できることが示されている

Q:VQは拡散生成モデルにも使われることがあるが、サンプル数が少ない場合などに精度が悪くなるという仮説はある

関連論文

タイトル 概要
Neural Discrete Representation Learning VAEに対してベクトル量子化を用いることで「事後崩壊」問題を回避するアプローチが提案されており本論文の着想元となった論文

FaaSwap: SLO-Aware, GPU-Efficient Serverless Inference via Model Swapping

FaaSwapのアーキテクチャ *論文 Figure.3より引用

選定理由

現在、LLMの技術検証を進めている中で弊社内で課題となっているのは、OSSのLLM(Llama-2など)を用いる場合にはそれなりに高級なGPUが乗ったサーバーをホストしなければ使うことができないため、そこにそれなりのコストを払っているという点です。
それぞれのクラウドプラットフォーマーがGoogle CloundでいえばCloud Function、AWSでいえばAWS Lambdaのようなサーバレスな実行環境をGPU向けに用意してくれるとありがたいのですが、現状はサービスとして提供されていません。
そこで、GPUがサーバレス化するためには何がボトルネックになっているのかを理解するために、ニッチなネタではあるものの今回、この3つ目の論文を選出しました。

論文概要

Point

  • 現在のサーバレスプラットフォームはGPUを効率的にサポートしてないため、関数利用時のオーバーヘッドが大きくサービス提供されていない
  • 提案手法であるFaaSwapではモデルスワッピングを利用することでGPUメモリを効率的に共有
  • 実験ではミリsecレベルのSLOを達成しつつ、コストを10倍削減できたことが報告されている

この論文は、GPUを効率的に活用したサーバレス推論システムFaaSwapを提案した論文となっています。FaaSwapは、GPUへのプロビジョニングとオーバーヘッドの課題を解決し、リソースの効率的な使用を実現する手法です。

課題背景

現在のサーバレスプラットフォームはGPUを効率的にサポートしていないため、GPU関数をプロビジョニングするとコールドスタートによるオーバーヘッドが大きくなっています。そのため、関数を長時間実行し続ける必要があるのですが、これはコストがかかり、サーバレスコンピューティングの従量課金モデルに反するため、サービス提供が進んでいないものと考えられます。

提案手法

提案手法のFaaSwapはモデルスワッピングを利用することでモデルをホストメモリにキャッシュしておき、リクエスト時にのみGPUにスワップするアプローチをとっています。
モデルは大量の安価なメモリを持つホストに保持されるためアイドル時のコストが抑えられ、要求に応じて迅速にGPUにスワップされることでGPUメモリを効率的に共有できるようになります。
システムとしては上図にあるように、GPUプールアーキテクチャを採用し、効率的なモデルスワッピングとユーザへの透過性を実現しており、非同期APIリダイレクト、パイプライン実行、メモリ管理などの設計により、低レイテンシーのモデルスワッピングを実現しています。

また、リクエストスケジューリング、モデルキャッシュアルゴリズムなどの方策により、SLO*1を満たしつつリソース効率を最大化させることに成功しており、実験ではミリsecレベルのSLOを達成しつつ10倍のコスト削減を実証しています。

FaaSwapのアーキテクチャを簡潔に説明すると下記のような流れとなります。

  1. GPUプールを用意し、各GPUに複数のモデルを格納可能な状態にする
  2. リクエストが来たら、要求されたモデルがGPUメモリにない場合、キャッシュアルゴリズムに基づき別のモデルをアンロードし、要求モデルをロード
  3. ロード処理は非同期で行い、ロード中もリクエストは別のGPUで処理できるようにスタンバイ
  4. モデルのロード/アンロードはパイプライン化し、メモリ転送と実行をオーバーラップ
  5. スケジューラがリクエストを各GPUに割り当て、SLOを満たすよう調整
  6. モデルの利用頻度に基づき、キャッシュ内の各モデルの優先度を動的に変更
提案手法の課題

論文内では本アプローチの課題についても述べられており、まだまだ発展段階という印象です。

  • モデルのロード/アンロードタイミングの決定が難しく、最適化が課題
  • モデルやリクエストの特性に応じた最適なキャッシュアルゴリズムの設計が必要
  • 異なるモデルアーキテクチャ間の最適化が困難(EfficientNetとBERTなど)
  • GPU以外のリソース(CPU、メモリなど)の最適化が不十分
  • 結果は1GPU環境でのみで検証したものであり、スケールアウトできるか検証が必要

レビュー会FB

Q: 面白い論文だと思うが、このアプローチを模倣しようとする人はほぼいなそう

  • 確かに取り上げてみたのはいいものの、クラウドプラットフォーマー以外は興味ないテーマだったかも
  • ただし、GPUのスワッピングの技術などはGPUを用いるモデルを運用するシステムを検討する際に参考になるかも

Q:GPU間のスワッピング部分でハードウェアとしての工夫はあるか?

  • FaaSwapはGPU間のデータ転送を高速化するためにハードウェアの工夫を行っている
    • NVLinkを利用したGPUダイレクト転送によりGPUメモリ間の直接アクセスが可能
    • また、NVLinkを利用し異なるGPU間でのモデルデータの転送を高速化
    • ピアツーピアDMAエンジンを利用しCPUを介さずGPU間でデータ転送を行うことで、オーバーヘッドを削減

Q:用いることができるモデルに制限はあるか?

  • FaaSwapは異なる種類のモデルに広く適用可能
    • 画像分類、物体検出、自然言語処理といった異なるタスクのモデルを実験で使用している

関連論文

タイトル 概要
MArk: Exploiting Cloud Services for Cost-Effective, SLO-Aware Machine Learning Inference Serving サービス コストを最小限に抑えながら、推論ワークロードの応答時間のSLOを満たすためのアプローチを提案

Skeleton-of-Thought: Large Language Models Can Do Parallel Decoding

Skeleton-of-Thoughtの概念図 *論文 Figure.1より引用

選定理由

量子化や蒸留などアーキテクチャによる効率化の工夫だけでなく、入力の与え方そのもので推論の効率化を図るアプローチも研究が進んでいるため、最近(2023年7月)提案された手法を選出しました。

論文概要

Point

  • 現在のLLMの推論は逐次的な推論を行なっているので、レスポンス速度が遅く実運用時に支障をきたしている
  • 提案手法であるSkeleton-of-Thought (SoT)はLLMに骨子を生成させそれを並列展開させることで推論の高速化を図っている
  • 実験の結果、最大で2.39倍の高速化を達成しているものの、精度や速度はタスクの精度によってバラつきが生じている

この4つ目の論文は、Skeleton-of-Thought (SoT)と呼ばれるLLMの推論速度を改善するための新しい手法を提案しています。

課題背景

現在のLLMはtokenを1つずつ順次デコードする自己回帰的な生成を行うため、推論が非常に遅いことが知られています。低速な推論はLLMが対話的に利用することを阻害しており、円滑なコミュニケーションを図るために推論速度の改善が強く求められています。

弊社でもLLMを用いたチャットデモ環境を構築し検証した結果、LLMのレスポンスの遅さが理由でレコメンデーション機能やチャット機能をそのまま既存システムと代替させるのは難しく、レスポンス速度を改善させるためのサービスとしての工夫が別に必要であるという結論を得ています。

提案手法

SoTは人間の思考プロセスに着想を得ており、LLMにまず骨子(skeleton)を生成させ、その後各要点を並列に展開させる手法を提案しています。これにより並列計算が可能となり、推論を高速化できるようになるというのが本アプローチのポイントです。

SoTは以下のような流れで構成されます。

  1. LLMに対して、質問に応答するための骨子(skeleton)を生成するプロンプトを入力
  2. LLMはこのプロンプトから、回答のための骨子(要点のリスト)を自然言語で生成
  3. 生成された骨子から、各要点を示す部分を正規表現で抽出
  4. 抽出された要点ごとのテキストを入力として、LLMに対して各要点を詳細に生成するタスクを並列に実行
  5. 生成されたすべての要点テキストを組み合わせて、最終的な回答とする

論文では、11個のLLMを用いて評価を行い、最大2.39倍の高速化を達成したことが報告されています。
質問のカテゴリやモデルによっても高速化の度合いは異なり、計算や論理的な説明が必要な数学に関する質問に対しては低い精度に留まっています。

提案手法の課題

論文内で提案手法に関する課題が述べられており、評価の妥当性が十分に検証されていないことや適用できるタスクに限界があることがわかっています。

  • 回答の質の評価が不十分で、BLEUスコアでの簡易的評価にとどまっており、人手による評価が必要な段階
  • 数学的推論を必要とする質問への対応が弱く、計算や論理的な説明が必要な場合に品質が低下してしまう
  • 同様に長文生成タスクへの適用が課題で、論文では短い回答に適用範囲が限定されている
  • 並列実行のためのインフラが必要でコスト上の課題も存在している

レビュー会FB

Q:数学の問題が苦手な場合CoTを使うと改善した例があったと思うが、SoTだとどうか?

  • SoTの場合は数学の問題が極端に苦手であり、並列で分けるという前提の枠組みと問題の相性が悪いと思われる
  • Plan and Solveなどもあるが、逐次で実行しないと次のプラン実行に問題が生じ精度が下がる

関連論文

タイトル 概要
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 連鎖思考(CoT)によりタスクのパフォーマンスを向上させるプロンプトエンジニアリングアプローチ
Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models タスク全体を小さなサブタスクに分割する計画を立て、次にその計画に従ってサブタスクを実行させることで推論精度を向上させるアプローチ

まとめ

今回は、量子化を中心としてLLMの効率化や高速化に関連する技術論文を4つご紹介させていただきました。
今後も、社内で実施しているレビュー会での発表内容をブログで発信させていただくつもりですので、ご期待ください。




*1:サービスパフォーマンスの目標値