Please enable JavaScript in your browser.

Arm CPUを利用してオンプレミス x 生成AIを低コストで実現! - fltech - 富士通研究所の技術ブログ

fltech - 富士通研究所の技術ブログ

富士通研究所の研究員がさまざまなテーマで語る技術ブログ

Arm CPUを利用してオンプレミス x 生成AIを低コストで実現! ~プライベートな環境で社外秘情報も活用可能!~

こちらの記事を読むのにかかる時間:10分

はじめまして。富士通研究所先端技術開発本部ソフトウェア開発統括部の野口、加藤です。 本記事では、社外秘情報を生成AIで活用したい方向けに、オンプレミス環境で生成AIを低コストで活用するための富士通研究所の取り組みをご紹介します。

AIが人間の生活のあらゆる面を変革している一方で、電力消費量や二酸化炭素排出量増加などの環境やコストへの影響は無視されがちです。富士通研究所では、環境負荷を軽減し、持続可能なAIの未来を目指すために、低消費電力なハードウェアであるArm CPUの活用と、その性能を最大限に引き出すためのソフトウェアであるArm CPU最適化技術の研究開発を行っています。 これらを生成AIに適用し、オンプレミス環境において低コストかつ高速な生成AIを実現しました。本記事では、その取り組み内容と技術的なアプローチを解説します。 また、これらの技術的なアプローチは富士通が2027年市場投入予定の次世代Arm CPU「FUJITSU-MONAKA」との連携も検討しています。その連携による期待効果もご紹介していきます。

生成AIの発展と課題

近年、生成AIは目覚ましい発展を遂げ、ChatGPTを始めとする多くのクラウドベースの生成AIサービスが提供されています。しかし、これらのサービスはデータを外部にアップロードする必要があるため、顧客情報や企業ノウハウといった社外秘情報の活用にはセキュリティリスクが伴います。

社外秘情報を生成AIで活用する方法として、データを外部へアップロードする必要のないオンプレミスでの生成AI構築が考えられます。 ただしGPUを利用したAI推論環境は、GPUコスト高騰によるサーバーコスト大幅増加や、GPU高消費電力/高発熱による集約性大幅減少など、導入に障壁があります(図1)。

図1:AI推論におけるGPU課題

そこで、富士通が研究開発している低コストかつ高速なAIサービスを実現するための高速AI推論技術 for Arm CPUを適用し、Arm CPUを利用したオンプレミス生成AIを低コストで実現します。これにより、プライベートな環境でデータが外部に流出しないため、安心して社外秘情報を生成AIに活用できます。また電力効率が高いAIエコシステム実現により、環境負荷軽減にも貢献します。

高速AI推論技術 for Arm CPU適用効果

  • コスト面:Intel製CPUと比較してコストパフォーマンスが2.4倍
  • 性能面:従来技術と比較してLLM推論性能は最大12倍

    想定ユーザー

  • 社外秘情報を生成AIに活用したいが、クラウドに外部にデータをアップロードすることにためらいがある方
  • オンプレミス生成AIを導入したいが、構築・運用コストが高額なため導入にためらいがある方

高速AI推論技術 for Arm CPUとは

高速AI推論技術 for Arm CPUとは、Arm CPUを利用した低コストかつ高速なAIサービスを実現するための技術です。 この技術は、ハードウェアとソフトウェアの両面から効率化を図ることで実現しています。

  • ハードウェア面
    • 低コストで消費電力の少ないArm CPUを採用し、AIサービスの構築・運用にかかる費用を大幅に削減します。
  • ソフトウェア面
    • 富士通独自のArm CPU最適化技術により、AIサービスにおける推論処理の高速化を実現し、Arm CPUの性能を最大限に引き出します。

富士通は、世界最高峰の性能を持つスーパーコンピュータ「富岳」の開発・運用経験を通じて、Arm CPUに関する深い専門知識と高度な技術力を蓄積してきました。ハードウェアとソフトウェアの両方を自社開発できる企業は世界的に見ても非常に少なく、この点が富士通独自の強みとなっています。

このスーパーコンピュータの開発・運用で培ったArm CPU並列演算技術をAI推論に応用し、高速AI推論技術 for Arm CPUはLLM推論性能の改善に成功しました。

改善箇所は推論プロセスにおける制御処理および行列積処理内の重み読込・計算になります(図2)。

図2:LLM推論性能プロセス


図2で示したLLM推進プロセス内の制御処理および行列積処理内の重み読込・計算に対して、モデルの量子化 Arm CPU向け最適化 バッチ処理対応技術を適用し、従来技術と比較してLLM推論性能が最大約12倍向上しました(図3)。

図3:高速AI推論技術 for Arm CPUによる改善箇所


また改善前後の性能比較を図4に示しました。推論同時実行数が16の場合、改善後スループットは161.84 tokens/secとなり、1処理あたり約10 tokens/secのLLM推論性能となります。 これは16人同時実行した際に、1人あたり10 tokens/sec、つまり人間の読解スピード同等のLLM推論が可能であることを意味しており、従来LLMと比較して大幅に性能が向上しました。c

図4:高速AI推論技術 for Arm CPU適用によるLLM推論性能


高速AI推論技術 for Arm CPUの詳細

生成AIへの本技術適用において、実業務に耐えうる生成性能として人間の読解速度と同程度の速度(10 tokens/sec)を目指しました。この目標達成のために、生成AIモデルの量子化とソースコードのArm CPU向け最適化を実施しました。さらに、一定時間内のリクエストをまとめて処理するバッチ処理により、複数ユーザー同時利用時の演算効率を向上させました。結果、Llama3.1-8Bで16ユーザー同時利用下において10 tokens/secの生成速度を達成しました。ここでは、具体的にどのような技術を用いてCPU上で実用に耐えうる生成速度を実現したのか紹介します。

モデルの量子化

量子化によるモデルの軽量化と生成速度の高速化

技術の要約

量子化技術を活用することで学習済モデルのサイズを圧縮し、性能を向上させました。さらに、量子化ビット幅と推論精度の関係を調査し最適なビット幅を導き出すことで、必要な推論精度を維持しつつ性能の向上を達成しました。

図5:量子化技術と効果


技術の詳細

1. 量子化とは

量子化は学習モデルのパラメータを低ビット幅で表現する技術で、モデルのサイズを圧縮し、生成速度を向上させることができます。通常、モデルのパラメータは32ビットまたは16ビットの浮動小数点数で表現されますが、量子化により8ビットやそれ以下のビット幅に圧縮することが可能です。ビット幅を減らすことで計算量や読み込むメモリ量が削減され、より高速な推論が可能となります。しかし、ビット幅が小さくなると、数値の表現が粗くなり、推論精度は低下する傾向にあります。このため、推論精度と生成速度の適切なバランスを見つけることが圧縮するビット幅を決めるうえで重要です。

2. 量子化のためのソフトウェア紹介

今回はLLM量子化のフレームワークとして有名なllama.cpp を利用しました。llama.cppはLLMを効率的に実行するためのC/C++で書かれたソフトウェアです。さまざまな量子化手法をサポートしており、計算量やメモリ使用量の削減などにより、CPU環境でもLLMを快適に動作させることが可能です。

3. 量子化の効果とトレードオフ

推論精度と生成速度のトレードオフ評価のためにllama.cppの各データ型について量子化による”推論精度劣化度合い”と”生成速度”の関係を調べました。測定にはNVIDIAのGrace CPU(72コア)を利用し、モデルはLlama3.1-8Bで行いました。結果を図6に示します。各量子化手法の詳細については割愛しますが、Q8_0は8ビット、Q4_K_Mは4ビット、Q2_K_Sは2ビットに重みを圧縮して保存しています。量子化を行うことでFP32→Q8_0で約4.2倍、FP32→Q4_K_Mで約6.1倍の速度向上を達成しました。

図6:量子化手法を変えた際の生成速度と推論精度の関係


精度については、比較的劣化度合いの小さいQ8_0、Q4_K_Mに絞り、より実践的なベンチマークであるJapanese MT-BenchとJGRUEを利用して推論精度の評価を実施しました(表1)。結果、Q8_0やQ4_K_Mを用いた場合でも量子化なしの場合と同等の推論精度を実現可能であることがわかります。図6のスループットと併せると、Q4_K_Mが精度・性能ともにバランスの取れたデータ型といえます。

表1:推論精度ベンチマークの結果(量子化なし=1.00として正規化)

Japanese MT-Bench JGRUE
量子化なし 1.00 1.00
Q8_0 0.97 1.00
Q4_K_M 1.00 1.01

Arm CPU向け最適化

Arm CPUの性能を十分に引き出すための改善

技術の要約

CPUで推論する速度を向上させるため、性能のボトルネックを調査し改善を行いました。スレッドの排他制御方法や行列積計算に改善の余地があることが分かり、それらを改善することでLLMの文章生成の高速化を実現しました。

図7:Arm CPU最適化技術と効果


技術の詳細

1. スレッド制御の実装を改善

CPUで効率よく推論を行うためには、CPUが持つコアを効率よく使って計算する必要があります。llama.cppの場合、pthreadでコアの数だけスレッドを生成し並列計算をしています。llama.cppでどの程度スレッドを効率よく制御出来ているか確認するために、各処理の時間の内訳を調べました(図8)。図8 (a)の積み上げグラフに着目すると”スレッド制御”のコストが大きいことが分かります。そこで、スレッドの排他制御のアルゴリズムを改良することで、”スレッド制御”の時間を約1/3に削減しました(図8 (b))。

2. Arm専用の組み込み命令による最適化

次に、行列積のコストに着目します。図8 (b)でいうと青色の部分になります。この行列積の処理に対して、ArmのSIMD命令であるSVEを用いて再実装し、計算の効率化を実現しました。ArmにはSDOT命令やSMMLA命令など行列計算を高速に処理するための命令が用意されています。これらの命令を利用することで行列積の実行時間を約10%削減しました(図8 (c))。

図8:Llama3.1-8Bの演算時間内訳


バッチ処理対応

バッチ処理による推論スループットの向上

技術の要約

LLMは膨大な重みを読み込む必要があるため、一般的に重みをメモリからキャッシュへロードする時間がボトルネックになることが多いです。そこで、LLMの推論をバッチ処理することにより、一度キャッシュにロードした重みの再利用性を高め、推論のスループットを向上させました。

図9:バッチ処理対応技術と効果


技術の詳細

前章では行列積を再実装することで性能改善を試みました。しかし、改善効果は10%程度に留まり、期待ほどの効果は得られていません。これは、行列積において演算によるコストよりもロードによるコストが大きくなっているためです。そこで、複数の推論を同時に行うバッチ推論により、スループット向上を試みました。バッチ推論では複数の行列演算をまとめて行うことで、ロードした重みの再利用性が高まり、メモリ帯域幅への負荷軽減が期待されます。実際に推論をバッチ処理化した場合の性能を図10に示します。バッチサイズが大きくなるとメモリ帯域の圧迫が解消され、前章で行った改善の効果がより顕著に表れています。横軸のバッチサイズはLLM推論を利用するサービスにおいて、同時利用者数と見なすことができます。図10の破線は1人あたりの目標生成速度(=10 tokens/sec)を示しており、16人の同時利用者数であれば、目標の要件を満たすことができます。この条件下で、今回紹介した最適化技術を適用することで、スループットは約2倍に向上します。

図10:バッチ推論におけるスループット


コストパフォーマンス・競合他社との比較

今回はコスト面で優位性のあるArm CPUでLLM推論性能の高速化を実現しました。Arm CPUを利用することでどの程度コストパフォーマンスが良くなるか評価した結果を表2に示します。コストにはAWSのインスタンス料金を採用しました。なお、公平性の観点から評価はおよそ同時期にリリースされたXeon 8488CとGraviton3Eについて行っています。結果、我々の最適化技術を適用することで、Intel製CPUに比べ約2.4倍コストパフォーマンスを向上させることができました。

表2:コストパフォーマンス比較(モデル:Llama3.1-8B)

インスタンス m7i.16xlarge
CPU:Xeon 8488C
hpc7g.16xlarge
CPU:Graviton3E
hpc7g.16xlarge
CPU:Graviton3E
(最適化あり)
batch_size=1 28 [Ktokens/USD] 54 [Ktokens/USD] 66 [Ktokens/USD]
batch_size=16 117 [Ktokens/USD] 169 [Ktokens/USD] 346 [Ktokens/USD]

FUJITSU-MONAKAとの連携

ここまで、ソフトウェア面を中心に高速AI推論技術 for Arm CPUを説明してきました。しかし富士通は環境負荷を軽減し、持続可能なAIの未来を目指すためにソフトウェアだけでなく、ハードウェア開発にも注力しています。それが2027年の市場投入予定の次世代Arm CPU「FUJITSU-MONAKA」です。FUJITSU-MONAKAは、同年同価格帯の他社CPUと比較してアプリケーション性能2倍、電力効率2倍を目指して開発しています(図11)。

図11:富士通Arm CPU「FUJITSU-MONAKA」について


高速AI推論技術 for Arm CPUは他社Arm CPUでも低コスト・高速なAIサービスを実現できますが、FUJITSU-MONAKAと組み合わせることで、さらなる性能向上、費用抑制、環境負荷軽減が期待できます。特に、低消費電力かつコア数の多いFUJITSU-MONAKAはバッチ処理性能が向上し、低電力で同時利用可能なユーザー人数の増加が見込めます。

FUJITSU-MONAKAの詳しい情報はこちらのページをご覧ください

今後の展望

今後の展望として、本技術を生成AI以外のAI分野にも展開していきます。音声認識やテキスト・画像を用いたマルチモーダルAIへの適用は既に完了しており、今後も顧客ニーズと市場動向を踏まえ、最適なAI技術を選択し、適用を進めていきます。 また前セクションで説明した通り2027年市場投入予定のFUJITSU-MONAKAとの連携強化により、本技術で使用しているArm CPUをFUJITSU-MONAKA(Armベース)に置き換えることで、更なる性能向上とコスト削減を実現していきます。

お問い合わせ先

本技術にご興味ある方は、以下お問い合わせ先からお気軽にご連絡ください。

  • お問い合わせ先:fj-ccsoft-contact-jp@dl.jp.fujitsu.com
  • お問合せ内容:資料請求/技術紹介会/無償デモ申請/PoC検証(自社利用中のAIに高速AI推論技術 for Arm CPUを適用希望)など

また富士通Salesと接点がある方は、Fujitsu Kozuchi Research versionの「GPUレスAI推論エンジン」を利用したいとお尋ねください。問合せ内容を円滑に実施可能です。

謝辞

この成果は、NEDO (国立研究開発法人新エネルギー・産業技術総合開発機構)の助成事業の結果得られたものです。