ファーウェイ、LLMを効率化するオープンソース量子化手法「SINQ」を発表

読了時間:約9分
ファーウェイ、LLMを効率化するオープンソース量子化手法「SINQ」を発表

日常的なLLM運用でSINQが重要な理由

大規模言語モデルは大量のメモリを必要とする。そのため、高度なモデルの実行には高価なデータセンター向けGPUやクラウドノードが必要になることが多い。ファーウェイのチューリヒ計算システム研究所は、この状況を変えることを目指す新たな量子化手法「SINQ」を発表した。Sinkhorn正規化量子化(Sinkhorn Normalized Quantization)と呼ばれるこの手法は、出力品質をほとんど損なわずにメモリ使用量を減らすことを目指しており、Apache 2.0ライセンスのオープンソースとして公開されている。開発チームはSINQについて、高速で、キャリブレーションが不要で、既存のモデル処理ワークフローに簡単に組み込めるとしている。

目次
  1. 日常的なLLM運用でSINQが重要な理由
  2. SINQと従来の量子化手法との違い
  3. 検証で示されたメモリ削減、速度、品質
  4. ハードウェアとクラウドコストへの影響
  5. 開発者が今すぐ利用できるもの
  6. 技術的な特徴
  7. 二軸スケーリング
  8. Sinkhorn-Knopp正規化
  9. キャリブレーション不要の設計
  10. 制約と実運用での留意点
  11. 1社を超えて重要な理由
  12. 要点

量子化は、モデルの重みを表現するビット数を減らす手法だ。16ビットまたは8ビットの浮動小数点数から4ビット整数に移行すれば、メモリ使用量を半分以上削減できる。ただし、特に8ビットを下回ると、精度を損なわずに削減するのは難しい。SINQの中心的な特徴は、4ビット、場合によっては3ビットという低精度でも高い品質を維持し、多くの既存手法よりも迅速に適用できることだ。

著者らが検証したモデルやアーキテクチャでは、SINQによってメモリ使用量が約60~70%削減された。この規模の削減により、多くのモデルが、A100やH100などのエンタープライズ向けGPUを必要とせず、例えば24GBのメモリを搭載するNvidia GeForce RTX 4090のような一般向けGPU1台で実行できるようになる。クラウドでは、より安価なインスタンスで長時間の推論処理を実行でき、長期的には数千ドルの節約につながる可能性がある。研究機関やスタートアップ、個人の愛好家にとっても、高性能モデルをワークステーションで動かすハードルが下がる。

広告

SINQと従来の量子化手法との違い

実際に広く使われているLLM量子化手法の多くは、重みのみを対象とする。重みとは各層で学習されたパラメーターで、モデルサイズの大部分を占める。活性化値の量子化も可能だが、処理が複雑になり、実行速度に影響することがある。広く使われる手法の多くは、量子化による誤差を最小限に抑えるスケール係数を探すため、キャリブレーションと呼ばれる準備段階で計算時間をかける。キャリブレーションではデータサンプルを使い、モデルに追加の処理を行う。品質向上に役立つことはあるものの、時間がかかり、プロンプトを慎重に選ぶ必要があり、処理パイプラインも複雑になる。

SINQは別のアプローチを取る。重みを低精度に丸める前に、その分布を適切に保つことを目指す、相互に関連した2つの手法を導入する。1つ目は、重み行列の行方向と列方向にそれぞれ別のスケーリングベクトルを適用する二軸スケーリングだ。テンソル全体やチャネルごとに単一のスケールを適用する方法より、細かな調整が可能になる。誤差を分散させることで、外れ値や局所的な偏りの影響を抑える。

2つ目に、SINQはSinkhorn-Knopp正規化に着想を得た手順を用いる。このアルゴリズムは単純な正規化を交互に行い、行と列の統計量のバランスを取る。SINQでは、重み行列の特定の部分が過度な影響を及ぼさないよう、行と列の標準偏差を正規化する。このバランス調整によって重みが量子化に適した状態になり、層ごとに高コストなキャリブレーション用データを使わずに、全体の誤差を抑えられる。

広告

検証で示されたメモリ削減、速度、品質

著者らによると、フル精度の重みと比べてメモリ使用量を一貫して60~70%削減し、さまざまなアーキテクチャで元のモデルに近い精度を維持した。実際には、メモリを60GB以上必要としていたモデルを、約20GBで動かせる可能性がある。一般向けGPUでは、この違いによってモデルがメモリに収まるか、速度の遅いホストRAMにあふれ出すかが決まることもある。

量子化の速度は、研究と本番運用のどちらでも重要だ。報告された検証では、SINQによるモデルの量子化はHQQの約2倍、AWQの30倍以上速い。モデルを繰り返し調整するチームにとって、この時間差により、数時間かかる前処理を開発サイクル内で完了する迅速な工程に変えられる可能性がある。

品質は、パープレキシティやフリップ率などの指標で評価される。パープレキシティは、言語モデルがどれだけ適切にテキストを予測できるかを測る指標だ。フリップ率は、量子化後に上位トークンがどれだけの頻度で変化するかを数える。複数のベンチマークで、SINQは他のキャリブレーション不要のベースライン手法よりパープレキシティを下げ、フリップ率も抑えた。これは、出力がより安定することを示している。この手法は非一様量子化方式にも対応し、プロジェクトでさらなる精度向上を目指す場合はキャリブレーションと組み合わせることもできる。

広告

ハードウェアとクラウドコストへの影響

推論コストはメモリ使用量に左右される。単一のGPUに収まるモデルなら、高コストなモデル並列構成やネットワークのオーバーヘッドを避けられる。SINQによる削減で、中規模から大規模の多くのモデルが、メモリ容量の大きい一般向けGPU1枚で動かせる範囲に入る。これまでA100やH100搭載ノードに頼っていた運用者は、より手頃なGPUで推論を提供できれば、月々の請求額を抑え、最上位のハードウェアを学習用に回せる。

クラウド利用者は、より小規模なGPUインスタンスを選ぶか、1つのノードでより多くのモデルを同時に実行できる。チャットアシスタントや検索拡張生成サービスなどの長時間稼働する処理では、低コストのGPUを使うことで、数週間から数カ月にわたり数千ドルを節約できる可能性がある。自社内でデータを管理したいチームにとっては、小規模なオンプレミスクラスターも現実的な選択肢になる。

レイテンシーとエネルギー消費にも副次的なメリットがある。使用するデバイスの数やノード間の通信、ホストとデバイス間のメモリ転送が減れば、応答時間と消費電力を抑えられる可能性がある。全体として、構成要素が少なく、より効率的な推論基盤につながる。

広告

開発者が今すぐ利用できるもの

SINQはApache 2.0ライセンスのオープンソースとして公開されている。リリースには実装コード、主要なモデルハブからモデルを量子化する手順、量子化した重みを保存・再読み込みするためのユーティリティーが含まれる。パッケージには評価用のフックが用意されており、チームはデプロイ前にパープレキシティやフリップ率を測定できる。また、ハードウェアや精度の目標に応じて調整できるパラメーターも公開されている。

著者らは、量子化済みモデルを公開し、Hugging Face Transformersエコシステムとの統合を目指すとしている。実現すれば、開発者は使い慣れたAPIで量子化済みチェックポイントを読み込めるようになり、導入が簡単になる。独自の推論基盤を管理しているチームは、まず重みを量子化し、その結果を選択したランタイムで4ビットまたは3ビットの保存形式に対応するカーネルに接続できる。

技術的な特徴

SINQは、モデル準備のパイプラインにプラグアンドプレイで組み込める工程として設計されている。重み行列を整形し、低精度で表現しても推論に重要な構造が保たれるようにしたうえで、整形した重みをコンパクトな整数形式に変換することを目指す。

二軸スケーリング

従来のテンソル単位またはチャネル単位のスケーリングでは、単一方向に1つの係数を適用する。二軸スケーリングでは、各重み行列の行方向と列方向にそれぞれベクトルを適用する。行によって外れ値を含んでいたり、特定の列の分散が大きかったりする場合に、この分離が役立つ。両方向を正規化することで、量子化誤差を行列全体により均等に分散させる。その結果、誤差の急激な突出が減り、重みの相対的な大きさを保ちやすくなる。

Sinkhorn-Knopp正規化

Sinkhorn-Knopp法は、単純な正規化を交互に繰り返し、バランスの取れた状態に到達させる古典的な反復手法だ。SINQの目的は二重確率行列を作ることではなく、行と列の標準偏差を均衡させることにある。アルゴリズムは、標準偏差を目標値に近づけるため、行と列を繰り返し再スケーリングする。この意味で行列のバランスが取れると、極端な値が少ない重み分布に対して量子化を行えるため、丸め誤差を抑えられる。この手順は高速で、時間のかかるキャリブレーション処理と比べてオーバーヘッドが小さく、キャリブレーション用データセットも不要だ。

キャリブレーション不要の設計

キャリブレーション段階では、プロンプトのセットを選び、モデルを実行して統計量を集め、スケールを計算する必要がある。そのため手間が増え、キャリブレーション用データが本番環境での利用状況と合わない場合には、結果に偏りが生じる可能性がある。SINQは重みの統計量を直接扱うことで、この段階を省く。多くのチームにとって、キャリブレーションの省略は自動化と再現性の向上につながる。プロジェクトでキャリブレーションが必要な場合は、SINQによる整形の後にキャリブレーション探索を組み合わせ、さらなる精度向上を目指すこともできる。

制約と実運用での留意点

報告された効果の大半は、重みのみの量子化によるものだ。生成中には活性化値とキー・バリューキャッシュも引き続きメモリを消費し、プロンプトや出力が長いほどその量は増える。ランタイムによっては活性化値の量子化やKVキャッシュの圧縮も可能だが、それぞれ別のトレードオフが伴う。チームはディスク上のモデルサイズだけでなく、エンドツーエンドのメモリ使用量とレイテンシーを測定する必要がある。

ランタイムの対応状況も重要だ。推論時の高速化を実現するには、カーネルがパックされた4ビットまたは3ビットの重みを効率的に読み込めなければならない。llama.cpp、TensorRT LLM、vLLMなどの主要なエンジンは急速に進化しているが、精度、アテンションカーネル、GPUアーキテクチャのすべての組み合わせが同じように成熟しているわけではない。本番環境にサービスを移行する前に、バッチサイズやコンテキスト長を含む実際の構成で、スループット、レイテンシー、安定性をテストする必要がある。

極端に低い精度では、特定のタスクで問題が生じる可能性がある。コード生成、ツール利用、構造化出力は、日常的なチャットより影響を受けやすい場合がある。パープレキシティなどの指標は参考になるが、本番環境でのテストにはタスクの正確さ、応答スタイル、安全性の確認も含めるべきだ。用途が限界に近い場合は、混合精度にするか、影響を受けやすい層だけ精度を高めることで、メモリ削減効果の多くを維持しながら品質を保てる。

1社を超えて重要な理由

量子化は、LLMを実用的に運用するための基盤になっている。高速で、キャリブレーションが不要で、低精度でも効果を発揮するオープンソース手法は、エコシステム全体に役立つ。メモリ使用量が減れば、教育、市民活動、小規模事業者にとって高性能モデルを利用しやすくなる。また、供給が限られる高性能GPUへの負担も軽減され、学習や研究に回せる計算資源が増える。

推論関連ツールをめぐる競争は激しさを増している。SINQのような手法は、効率的なアテンションカーネル、ページング方式のKVキャッシュ、最適化されたスケジューラーと組み合わせることで、1ドル当たりの毎秒トークン数を増やせる。得られるのは、推論コストの低下だけではない。プライバシー、データのローカル管理、スタックの制御を重視するチームにとって、選択肢も広がる。

要点

  • ファーウェイのSINQは、LLMの重みを対象とする量子化手法で、Apache 2.0のオープンソースライセンスで公開されている
  • SINQではメモリ使用量を60~70%削減でき、4ビット、場合によっては3ビットでも高い品質を維持できると報告されている
  • この手法はキャリブレーションが不要で、既存のワークフローに簡単に組み込めることを目指している
  • SINQは二軸スケーリングとSinkhorn-Knopp方式の正規化を用いて、重み行列のバランスを取る
  • 報告された検証では、量子化速度はHQQの約2倍、AWQの30倍以上
  • 品質指標はベースラインのキャリブレーション不要手法を上回り、パープレキシティとフリップ率が低下した
  • 60GB以上を必要としていたモデルを約20GBで実行でき、RTX 4090などの一般向けハードウェアでGPU1枚による運用が可能になる
  • 今後の更新では、Hugging Face Transformersとの統合や量子化済みモデルの公開が予定されている
この記事を共有

こちらもおすすめ