Numenta とインテルが推論を高速化

HBM 搭載インテル® Xeon® CPU マックス・シリーズは、カスタム・トレーニング済み大規模言語モデルを、より高速に実行します。

概要:

  • 脳科学の原理を応用して革新的な AI ソリューションを開発するパイオニアである Numenta は、AI とディープラーニングにおいて革新的な進歩を遂げてきました。

  • Numenta は、プロセッサー上に高帯域幅メモリー (HBM) を搭載したインテル® Xeon® CPU マックス・シリーズ上で、シーケンス長の長い大規模なドキュメントに対してカスタム・トレーニングされた大規模言語モデルを、より高速に実行できることを実証しました。

author-image

投稿者:

概要

自然言語処理 (NLP) は、Transformer の進化とともに急速に普及が進んできました。しかし、実環境において低レイテンシーが要求されるメッセージやチャットなどのアプリで使用される短いテキストや、高スループットを要求される文書や記事などの長いドキュメントなどの言語モデルを、CPU 上で効率的に実行することは非常に困難でした。

Numenta は、短いテキストシーケンスの BERT 推論において、第 4 世代インテル® Xeon® スケーラブル・プロセッサー上でカスタム・トレーニング済みの言語モデルを 10ms 未満のレイテンシーで実行し、現世代の AMD Milan CPU での実装と比較して 100 倍のスループット速度を達成したことを以前の研究で示しました。1 今回のプロジェクトでは、Numenta がカスタム・トレーニング済みの大規模言語モデルを、プロセッサー上に高帯域幅メモリー (HBM) を搭載したインテル® Xeon® CPU マックス・シリーズ上で実行した場合、シーケンス長が長い大規模なドキュメントに対して、現行世代の AMD Milan CPU での実装と比較して 20 倍高速に実行できることを紹介しています。2 どちらのケースにおいても、インテルのプロセッサー上で言語モデルを実行することで、全体的なコストを大幅に削減し、顧客に対して新たな NLP 機能を提供できることを Numenta は実証しています。

背景

Numenta は脳科学の原理を応用して革新的な AI ソリューションを開発するパイオニアであり、AI とディープラーニングにおいて革新的な進歩を達成しています。これにより Numenta の顧客は、自然言語処理やコンピューター・ビジョンなどの幅広いユースケースにおいて、パフォーマンスを 10 倍から 100 倍以上も向上させています。3

Numenta は、大規模言語モデルを高速化するための専門知識を活用し、シーケンス長が短い場合と長い場合の両方のタスクにおいて、精度を犠牲にすることなく推論のパフォーマンスを向上させる支援をしています。NLP において長いシーケンス長のタスクは、文書やいくつもの単語が連なったテキストの分析を含んでおり、チャット型の AI などで、短い文や数単語の分析に使用される短いシーケンス長のタスクとは対照的です。このような顧客のワークフローをさらに高速・簡素化するために、Numenta はインテルが発表したばかりのインテル® Xeon® CPU マックス・シリーズをテストしました。

インテル® Xeon® CPU マックス・シリーズは、高帯域幅メモリー (HBM) を搭載したサーバー向けプロセッサーで、高速行列乗算のための新しいインテル® アドバンスト・マトリクス・エクステンション (インテル® AMX) 命令セットや、モデルを自動最適化する OpenVINO™ ツールキットも搭載しています。インテル® Xeon® CPU マックス・シリーズと Numenta の神経科学に着想を得たテクノロジーを組み合わせて実行すると、大規模言語モデルにおける推論スループットが 20 倍向上しました。4 この結果は、CPU がこれらの大規模言語モデルにおける推論で、最も効率的でスケーラブル、かつ強力なプラットフォームになり得ることを証明しています。

次章では、より長いシーケンス長に対して推論を実行する上での課題と、Numenta のテクノロジーとインテル製ハードウェアの組み合わせがどのようにその課題に対処していくかについて紹介します。

課題

推論操作を実行する際に Transformer モデルが一般的に分析するテキストの長さは、アプリケーション空間で大きく異なります。リアルタイムで会話するようなアプリケーションの場合、モデルはユーザーが入力した単文だけを考慮する傾向があるのに対し、ユーザーからの質問に応答したり、文書を要約するようなアプリケーションでは、各操作で文書や段落全体が考慮される傾向があります。Transformer モデルではテキストデータを直接操作するのではなく、入力テキストをトークン化して一連の埋め込みベクトルに変換してからモデルに入力します。BERT-Large の場合、埋め込みの各ベクトルは 1,024 個の要素で構成されており、FP32 を使用して表現する場合、トークンごとに 4 KB の状態を必要とします。

BERT-Large は最大 512 個のトークンで構成されるテキストのシーケンスを考慮することができ、大規模なシーケンス長での操作では 2MB の状態に相当します。この時の入力はレイヤーからレイヤーへと Transformer を介して流れ、特定の線形レイヤーと相互作用する場合は拡張も可能です。例えば BERT-Large では最大 8MB まで拡張することができます。これらのアクティベーションの保持に連動した状態に加えて、モデルの重みを保持するには状態が必要であり、各レイヤーで入力を変換するには、かなりの一時的なスクラッチ領域を必要とします。

新しい GPT モデルでは、最大シーケンス長と埋め込みベクトルのサイズの両方が増加傾向にあります。例えば、GPT-J-6B では、シーケンスには最大 2,048 個のトークンを含むことが可能で、16KB の状態を表す各埋め込みと、最大のシーケンス長を活用した操作では、合計で 32MB が必要となります。その結果、特に大規模なテキスト入力を処理する場合、推論操作に関連したワーキングセットのサイズが大きくなります。

複数の入力ストリームを並列処理する推論サーバーを考えた場合、モデルの重みは処理オペレーション間で共有できる一方、入力状態は各ストリームの固有であり、同時処理数とともに直線的に増加します。

アプリケーション空間におけるもう 1 つの違いはバッチサイズです。リアルタイムで処理するアプリケーションの場合、通常バッチサイズは小さく、最小限のレイテンシー処理でユーザーのインタラクションにリアルタイムで応答するような場合は 1 です。しかし、オフラインで処理するアプリケーションでは、レイテンシーを犠牲にして 64、128、256 クエリを並列処理するなどバッチサイズを大きくすることで、全体的なスループットを向上させることができます。しかし、これにより各操作に必要なワーキングセットはさらに増大することになります。

今日のマルチコア・プロセッサーでは、プロセッサーのオンチップ・キャッシュ・リソースは、コア間で共有されています。例えば、56 コアの第 4 世代インテル® Xeon® スケーラブル・プロセッサーでは、チップに 112MB までのレベル 3 キャッシュを統合している製品があります。これはキャッシュとしてはかなりの量ですが、すべてのコアが使用されている場合は各コアのリソースは 2MB 相当のキャッシュしかありません。その結果、Transformer モデルを大規模な文書で動作させるような場合、必要なすべての状態を保持するキャッシュが不足するため、データをメモリーとの間で常にステージングする必要があります。これにより、メモリー帯域幅の使用率が大幅に向上することになります。

ワーキングセットが小さい場合は、プロセッサーが提供する総合的なパフォーマンスは、計算能力の限界まで使用され、達成可能な総 FLOPS (1 秒当たりの浮動小数点演算) は、データシートに記載されている値に近づくことになります。しかし、ワーキングセットが大き過ぎてチップ上で処理できない場合、アプリケーションのパフォーマンスは、利用可能なメモリー帯域幅で制約されることになり、プロセッサーの計算能力から期待できる結果から、程遠くなることがよくあります。

そのため、大規模な Transformer モデルによる推論演算の実行に、プロセッサーの計算能力が十分活用されていないことが多くあります。

ソリューション: 最適化されたモデルと CPU による NLP 推論の劇的な高速化

20 年以上にわたる神経科学の研究を活かして、Numenta はパフォーマンスを向上させる新しいアーキテクチャーやデータ構造、アルゴリズムを定義しました。GPT-3 や BERT-Large などのモデルに適用すると、精度を犠牲にすることなく、推論をより効率的に実行できます。これには、ハードウェアに対応した最適化アルゴリズムによるモデルのカスタム・トレーニングや、推論をコンピューティング・プラットフォームでフル活用するためのランタイムの最適化も含んでいます。

BERT-Large のカスタム・トレーニング済みバージョンに適用された人の頭脳を基にしたテクノロジーは、生産におけるスループットの向上を実現しました。しかし、AMD Milan などの前世代の CPU プラットフォームでこれらのモデルを実行しても、顧客のニーズを満たすのに十分なスループットが得られるとは限りません。そのため、コスト効率が悪く、メンテナンスに時間も必要な NVIDIA A100 等で運用されている製品も多数あります。NLP 推論向けの GPU システムを立ち上げるには、数週間のエンジニアリング時間を必要とすることもありますが、CPU プラットフォームを使用して同程度のシステムを立ち上げて稼働するには、通常 1 ~ 2 日しか必要としません。データセットの変化や顧客の要求に応えるためにコードを変更する場合も同様です。多くの場合、CPU プラットフォームよりも GPU プラットフォームの方が、より多くのエンジニアリングの労力を必要とします。

従来よりも計算効率が高い Numenta のモデルは、効率性の向上により、メモリー帯域幅に対する要求が高くなる傾向にあります。大規模なディープラーニング・モデルを本格的に実行する場合、メモリー帯域幅がスケーリングの制限値になりますが、メモリー帯域幅が 3 倍となる HBM を使用すると、Numenta モデルは計算のリソースをより有効的に活用することができます。

これが新しいインテル® Xeon® CPU マックス・シリーズで大きな違いが出る理由です。HBM を搭載しているため、利用可能なオフチップ帯域幅の合計は HBM 非搭載のプロセッサーと比較して 3 倍以上となります。5

インテル® Xeon® CPU マックス・シリーズは、インテル® AMX のサポートなど、ディープラーニング・アプリケーションを高速化するイノベーションを多数搭載しています。インテル® AMX は、16 ビット BF16 演算をサポートし、アクティベーションや重さに関連するメモリー・フットプリントを削減するだけでなく、従来のインテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 命令による機能と比較して、ピーク演算性能が大幅に改善されています。大幅なコンピューティング・スループットの加速を実現するインテル® AMX は、32 ビット表現から 16 ビット表現に移行させて、メモリー帯域幅の要件を本質的に半分に抑えることで、大規模モデルでの推論スループットを向上させました。この潜在的なコンピューティング・スループットの大幅な増加により、インテル® AMX を完全に活用するために必要なメモリー帯域幅の需要が高くなり、AI 推論における課題は、計算能力からメモリー帯域幅による制限に変換されています。プロセッサー上に HBM を配置したインテル® Xeon® CPU マックス・シリーズは、インテル® AMX と連携して、こうした課題に対しシームレスに対応できるよう設計されています。

成果

インテルの最新プロセッサーと Numenta のテクノロジーを相乗的に組み合わせるメリットを示すため、512 要素の長いシーケンス長を使用した場合の BERT-Large による推論スループットの向上を実証することにしました。このベンチマークは、インテルの OpenVINO™ ツールキットで最適化された ONNX モデルを使用して実行され、同時ストリーム数は利用可能なプロセッサー・コア数と一致しています。インテルが最適化した、オープンでスケーラブルなソフトウェアは oneAPI 経由で利用できるため、Numenta は自社のテクノロジーを OpenVINO™ ツールキットに効率的に統合できました。

Numenta のテクノロジーと最新世代のインテル® Xeon® スケーラブル・プロセッサーを組み合わせなくても、顧客が利用可能なパフォーマンスを示すパフォーマンス・ベースラインは、48 コアの AMD Milan システムで OpenVINO™ ツールキットを使用して作成されています。図 1 に示すように、48 コアのインテル® Xeon® マックス・シリーズで Numenta が最適化した BERT-Large モデルを使用すると、48 コアの AMD Milan システムで Huggingface.com の標準的な BERT-Large モデルを使用した場合と比較して、実行時の推論スループットが 20 倍以上も向上しています。6

図 1. 512 の長いシーケンス長に対して、AMD Milan システムよりも 20 倍のスループット速度を達成。6

まとめ

大規模な Transformer モデルを使用するアプリケーションでは、インテルの最新プロセッサーと Numenta のテクノロジーを組み合わせることで、従来のシステムを使用するよりも、生産性と効率性を大幅に向上できることが明らかになりました。

  • Numenta が最適化したバージョンの BERT-Large はパフォーマンスを向上させ、実行対象となるターゲットの計算能力を十分に活用できるよう設計されています。
  • インテル® Xeon® CPU マックス・シリーズは、第 4 世代インテル® Xeon® スケーラブル・プロセッサー上に HBM を配置しており、帯域幅に制限のあるワークロードを 3 倍の帯域幅で実行できます。
  • 第 4 世代インテル® Xeon® スケーラブル・プロセッサーに搭載されたインテル® AMX は、前世代のインテル® AVX-512 よりも大幅に高速化されており、一般的な AI タスクの効率性が大幅に向上しています。
  • OpenVINO™ ツールキットとインテルが提供しているオープンな oneAPI ソフトウェア・スタックは、シームレスに動作するパワフルな開発者体験を即座に可能にし、エンジニアリング・チームのメンテナンスのオーバーヘッドを大幅に削減します。
  • インテル® Xeon® CPU マックス・シリーズと Numenta が最適化したバージョンの BERT-Large の組合せは、顧客のニーズに対応できる十分に高速なスループットで稼働できるため、NVIDIA A100 で運用する必要がなくなります。

もっと詳しく

アプリケーションの帯域幅制限における課題を抱えている場合は、課題の解決に向けた以下の手順をご検討ください。

インテルと Numenta は AI に関するどんな課題に対しても、ニーズに最適な幅広いソリューションをご用意しています。