巨大モデルの運用課題、クオンタイズとそのトレードオフ
大規模言語モデル(LLM)の進化は目覚ましく、メタのLlama 3.1 405Bのようなオープンソースの高精度モデルが理論上誰でも使えるようになった。しかし、その運用には現実的な課題が横たわる。
Llama 3.1 405Bは4,050億のパラメータを持ち、16ビットの精度(bfloat16)で約800GBのメモリを必要とする。これは、8台のNVIDIA H100 80GB GPUを搭載した単一ノードの総メモリ容量640GBを超える規模だ。H100を8台搭載したシステムのコストも30万ドルほどと安くはない。このような巨大モデルを効率的に運用するには、複数のノードにまたがる分散処理が不可欠となる。
Snowflakeの解説によると、巨大モデル運用の主な課題は3つある。まず、複数ノードへの分散配置。次に、低レイテンシー(素早い応答)と高スループット(大量の処理)の両立。そして、長いコンテキストウィンドウ(長い文章や複雑な情報)の処理だ。
これらの課題に対し、Snowflakeは独自の最適化スタックを開発。テンソル並列処理とパイプライン並列処理を組み合わせた2次元並列処理や、SplitFuseスケジューリングなどの技術を駆使し、単一ノード(1台のコンピューター)でも12万8,000トークンの長いコンテキストを処理できる能力を実現したという。
ただし、これらの技術を使いこなすには専門的な知識が必要だ。そのため、一般のユーザーが簡単に利用できるわけではない。
もう1つ、比較的簡易なハードウェア環境でも巨大モデルを利用するアプローチとして、クオンタイズが注目されている。クオンタイズは、モデルのサイズを縮小するアプローチだ。簡単にいうと、16ビットのAIモデルを8ビットや4ビットなどに縮小する方法となる。これに伴い、モデルの規模も2分の1、4分の1などに縮小され、必要となるメモリ容量を下げることができる。
クオンタイズには様々な種類があり、たとえばLLMのローカル利用を可能にするツールOllamaを使用した場合、Q2_K(2ビット量子化)、Q4_0(基本的な4ビット量子化)、Q4KS/Q4KM(知識蒸留を用いた高度な4ビット量子化)、FP16(16ビット浮動小数点)などが選択可能となっている。Ollamaでは、Llama 3.1 405Bも2ビット量子化版から8ビット量子化版まで選択でき、ローカル環境で利用することが可能だ。
しかし、クオンタイズにはトレードオフがある。モデルサイズはローカル環境で利用できるほど小さくなるものの、精度が低下する可能性があるのだ。たとえば、Yi 34bモデルの性能評価では、Q4KM量子化が他の量子化方式よりも優れたパフォーマンスを示したが、非量子化のFP16よりもスコア/精度が下がったと報告されている。
興味深いことに、モデルサイズが小さいほど、量子化の影響が顕著になる傾向があることも指摘されている。そのため、運用上可能な限り大きなモデルを選択し、「KM」量子化を優先することが推奨されるという。
クオンタイズは巨大モデルの運用を容易にする一方で、性能低下のリスクを伴う。この課題に対し、業界では新たなアプローチが模索されており、その取り組みは活発化の様相となっている。
クオンタイズではないアプローチ、プルーニングとディスティレーション
巨大モデルのサイズを縮小しつつ、精度を落とさない新たなアプローチとして、プルーニングとディスティレーションの組み合わせが注目を集めている。NVIDIAの研究チームが開発したこの手法は、Llama 3モデルを圧縮した「Llama-3.1-Minitron 4B」の開発に成功し、業界に衝撃を与えた。
プルーニングとは、モデルの重要度の低い部分を削除する技術だ。NVIDIAの研究者たちは、「デプス・プルーニング」と「ワイド・プルーニング」の2種類を適用。デプス・プルーニングはモデルの層を減らす手法で、ワイド・プルーニングは各層の幅(ニューロン数)を減らす手法だ。
一方、ディスティレーションは大きな「教師モデル」から小さな「生徒モデル」に知識を転移する技術。具体的には、教師モデルの出力を模倣するように生徒モデルを訓練する。この過程で、教師モデルの知識が凝縮された形で生徒モデルに転移される。
NVIDIAの研究者たちは、Llama 3.1の80億パラメータモデルを起点に、プルーニングとディスティレーションを適用して40億パラメータモデルを作成した。興味深いことに、940億トークンという比較的小規模なデータセットで学習させたにもかかわらず、Phi-2 2.7B(27億パラメータ)、Gemma2 2.6B(26億パラメータ)、Qwen2-1.5B(15億パラメータ)など、他の小型言語モデルに匹敵する性能を実現した。同規模モデルの学習トークン数は、たとえば、グーグルのGemma2 2Bで2兆トークン、Gemma2 7Bで6兆トークン、Llama3.1 8Bで15兆トークンなどとなっている。
この手法の最大の利点は、ゼロからモデルを学習させるよりも40倍少ないトークンで済むという、驚異的なコスト効率の高さにある。さらに、NVIDIAはこの手法で作成したモデルをオープンソースで公開しており、商用利用も可能としている。
プルーニングとディスティレーション、その効果とは?
NVIDIAの研究チームが開発したプルーニングとディスティレーションアプローチの効果は、ベンチマークテストの結果に如実に表れている。
Llama-3.1-Minitron 4Bモデル(ワイド・プルーニング版)は、さまざまなタスクで既存の小型モデルを凌駕する性能を示した。たとえば、MMLUタスク(多岐にわたる分野の知識や推論能力を測定)では60.5%のスコアを達成し、Gemma2 2Bの51.3%を大きく上回った。また起点となったLlama-3.1 8Bの65.3%に近い数値を記録した点も特筆に値する。さらにHellaSwagタスク(文脈理解と常識的推論を評価)でも76.1%のスコアを記録し、Gemma2の73%を上回った。
ARC-Challengeタスク(科学的推論能力を測定)では55.6%のスコアを記録。ここでもGemma2の55.4%を上回る結果となった。GSM8Kタスク(数学的問題解決能力を評価)では41.2%を達成し、Gemma2 2Bの23.9%を大きく上回った。この41.2%という数字は、2倍ほど規模が大きなGemma 7Bの52%、Llama-3.1 8Bの48.6%に近い値で、Mistral 7Bの37%を超える水準となる。コーディング能力を測るMBPPタスク(基本的なプログラミング問題の解決能力を評価)では32.4%を記録、Gemma2 2Bの29%を上回った。
NVIDIAのこのMinitron手法は、他の圧縮手法と比較しても優れた性能を発揮できる可能性がある点も注目に値する。たとえば、LLMPruner、SliceGPT、LaCo、ShortGPTなどの手法で圧縮されたモデルと別のMinitronモデルを比較した場合、MMLUタスクでMinitronモデルが58.6%を記録、他の圧縮モデルは23.33%から43.96にとどまったのだ。
これらの結果は、NVIDIAのプルーニングとディスティレーションアプローチが、モデルサイズの縮小と高い性能の両立を実現していることを示すもの。このような圧縮技術はどのような進化を見せるのか、今後の研究開発にさらなる期待が寄せられる。
文:細谷元(Livit)