paint-brush
大規模言語モデル (LLM) 推論最適化入門: 2. 人工知能 (AI) アクセラレータの概要@mandliya
703 測定値
703 測定値

大規模言語モデル (LLM) 推論最適化入門: 2. 人工知能 (AI) アクセラレータの概要

Ravi Mandliya8m2024/11/07
Read on Terminal Reader

長すぎる; 読むには

この投稿では、AI アクセラレータと、それが大規模言語モデル (LLM) の大規模な展開に与える影響について説明します。
featured image - 大規模言語モデル (LLM) 推論最適化入門: 2. 人工知能 (AI) アクセラレータの概要
Ravi Mandliya HackerNoon profile picture

AI アクセラレータと、大規模言語モデル (LLM) の展開に対するその影響について調査します。


このシリーズの投稿:

  1. 大規模言語モデル (LLM) 推論最適化入門: 1. 背景と問題の定式化

  2. 大規模言語モデル (LLM) 推論最適化入門: 2. 人工知能 (AI) アクセラレータの概要(この投稿)


前回の投稿では、高レイテンシ、集中的なリソース消費、スケーラビリティの問題など、大規模言語モデル (LLM) 推論の課題について説明しました。これらの問題に効果的に対処するには、適切なハードウェア サポートが必要になることがよくあります。この投稿では、AI アクセラレータ (LLM 推論を含む AI ワークロードのパフォーマンスを向上させるために設計された特殊なハードウェア) について詳しく説明し、そのアーキテクチャ、主要なタイプ、大規模な LLM の導入への影響について説明します。

AI アクセラレータを選ぶ理由

OpenAI や Google などの企業が、数百万のユーザーに同時にサービスを提供する大規模な言語モデルをどうやって実行しているのか疑問に思ったことはありませんか。その秘密は AI アクセラレータと呼ばれる特殊なハードウェアにあります。従来の CPU は汎用タスクを適切に処理しますが、AI ワークロードの要求に合わせて最適化されていません。対照的に、AI アクセラレータは AI タスク専用に構築されており、高速データ アクセス、並列処理機能、低精度演算のサポートを提供します。計算を AI アクセラレータに移行することで、組織はパフォーマンスを大幅に向上させ、コストを削減できます。特に LLM などの複雑なモデルを実行する場合に有効です。一般的な AI アクセラレータの種類と、これらのワークロードに対する独自の利点について見ていきましょう。

AIアクセラレータの種類

AI アクセラレータにはいくつかの形式があり、それぞれ特定の AI タスクと環境に合わせてカスタマイズされています。主な 3 つのタイプは GPU、TPU、FPGA/ASIC で、それぞれ独自の機能と利点があります。

グラフィックス プロセッシング ユニット (GPU)

もともとグラフィックス レンダリング用に開発された GPU は、並列処理機能により、ディープラーニング タスクの強力なツールになりました。そのアーキテクチャは、LLM 推論などのタスクに不可欠な高スループットの行列計算に適しています。GPU は、大規模なトレーニングや推論を行うデータ センターで特に人気があります。NVIDIA Tesla、AMD Radeon、Intel Xe などの GPU は、クラウド環境とオンプレミス環境の両方で広く使用されています。

テンソルプロセッシングユニット(TPU)

Google は、TensorFlow ベースのトレーニングと推論に最適化したディープラーニング ワークロード専用の TPU を開発しました。TPU は大規模な AI タスクを効率的に加速するように設計されており、検索や翻訳など、Google の多くのアプリケーションで活用されています。Google Cloud を通じて利用できる TPU は、トレーニングと推論の両方で高いパフォーマンスを発揮するため、TensorFlow ユーザーにとって最適な選択肢となっています。

フィールドプログラマブルゲートアレイ (FPGA) / 特定用途向け集積回路 (ASIC)

FPGA と ASIC は、特定の AI タスクをサポートするカスタマイズ可能なアクセラレータの 2 つの異なるタイプです。FPGA は再プログラム可能で、さまざまな AI モデルやアプリケーションに適応できます。一方、ASIC は特定のタスク専用に設計されており、それらのワークロードの効率を最大限に高めます。どちらのタイプも、低レイテンシと高スループットが重要なデータ センターやエッジで使用されます。例としては、Intel Arria と Xilinx Alveo (FPGA)、Google の Edge TPU (ASIC) などがあります。

CPUとAIアクセラレータの主な違い

CPU と AI アクセラレータのアーキテクチャはそれぞれ異なるため、さまざまな種類のワークロードに適しています。最も重要な機能のいくつかを比較すると次のようになります。

  • アーキテクチャ: CPU は汎用プロセッサですが、AI アクセラレータは AI ワークロードに最適化された専用ハードウェアです。CPU は通常、コア数が少ないですがクロック速度が高いため、シングルスレッドの高速パフォーマンスを必要とするタスクに最適です。一方、AI アクセラレータには、並列処理と高スループットに最適化された数千のコアがあります。
  • 精度とメモリ: CPU は、一般的なコンピューティング タスクをサポートする高精度の演算と大容量のキャッシュ メモリを使用することが多いです。対照的に、AI アクセラレータは 8 ビットや 16 ビットなどの低精度の演算をサポートし、LLM 推論の鍵となる精度をあまり損なうことなく、メモリ フットプリントとエネルギー消費を削減します。
  • エネルギー効率: 高負荷の AI タスク向けに設計されたアクセラレータは、CPU よりも操作あたりの消費電力が大幅に少なく、大規模に導入した場合のコスト削減と環境への影響の低減の両方に貢献します。


CPU と GPU のアーキテクチャを比較した図。コア数と並列処理能力の違いを強調しています。参考文献: David B. Kirk と Wen-mei W. Hwu 著『超並列プロセッサプログラミング』[1]


CPU ではコア数が少なく (4 ~ 8)、低レイテンシと高いシングルスレッド パフォーマンス向けに設計が最適化されていることに注意してください。対照的に、GPU には数千のコアがあり、高スループットと並列処理向けに最適化されています。この並列処理機能により、GPU は大規模な AI ワークロードを効率的に処理できます。

AI アクセラレータの主な機能と LLM 推論への影響

AI アクセラレータは、LLM 推論などの大規模な AI ワークロードの処理に最適ないくつかの機能を備えて構築されています。主な機能は次のとおりです。

並列処理

AI アクセラレータは、数千のコアを備えたアーキテクチャにより、大規模な並列処理向けに設計されています。この並列処理により、LLM 推論に必要な集中的な行列計算を効率的に処理できます。多くのアクセラレータには、行列乗算などのテンソル演算に最適化された特殊なテンソル コアも含まれています。これらの機能により、AI アクセラレータは、大規模な LLM タスクを処理する際に CPU よりも大幅に高速になります。

AI アクセラレータにおける密行列と疎行列の乗算参考文献: Youngsuk Park 他著「AI アクセラレータ上の基盤モデルの推論最適化」

高帯域幅メモリ

アクセラレータには高帯域幅を可能にする特殊なメモリが搭載されており、最小限のレイテンシで大規模なデータセットやモデル パラメータにアクセスできます。この機能は、入力テキストやモデル パラメータをロードするために頻繁なデータ アクセスが必要な LLM 推論に不可欠です。高帯域幅メモリにより、データ取得のボトルネックが軽減され、レイテンシが短縮され、パフォーマンスが向上します。

高速相互接続帯域幅

AI アクセラレータには高速インターコネクトが装備されており、マルチデバイス セットアップ内での高速データ転送を容易にします。これは、アクセラレータが効率的に通信してデータを共有する必要がある複数のデバイス間で LLM 推論をスケーリングする場合に特に重要です。高いインターコネクト帯域幅により、大規模なデータセットをデバイス間で分割し、ボトルネックを生じさせることなく同時に処理できます。

低精度演算

AI アクセラレータのもう 1 つの利点は、8 ビット整数や 16 ビット浮動小数点計算などの低精度演算をサポートしていることです。これにより、メモリ使用量とエネルギー消費が削減され、AI タスクの効率が向上します。LLM 推論の場合、低精度計算により、ほとんどのアプリケーションで十分な精度を維持しながら、処理が高速化されます。AI アクセラレータには、非常に豊富なデータ型の選択肢があります。

AI アクセラレータでサポートされるデータ型。参考文献: Youngsuk Park 他著「AI アクセラレータ上の基盤モデルの推論最適化」

最適化されたライブラリとフレームワーク

ほとんどの AI アクセラレータには、NVIDIA GPU 用の cuDNN や Google TPU 用の XLA など、一般的な AI フレームワーク向けに最適化されたライブラリが付属しています。これらのライブラリは、一般的な AI 操作を実行するための高レベル API を提供し、LLM 専用の最適化も含まれています。これらのライブラリを使用すると、モデルの開発、展開、推論の最適化を高速化できます。

スケーラビリティとエネルギー効率

AI アクセラレータは拡張性が高く、クラスターやデータ センターに導入して大規模なワークロードを効率的に処理できます。また、エネルギー効率に優れ、同等のタスクを CPU よりも少ない電力で実行できるように設計されているため、大規模な LLM 推論などの計算集約型アプリケーションに最適です。この効率性により、大規模な AI モデルの実行にかかる運用コストと環境への影響の両方を削減できます。

AIアクセラレータにおける並列処理

LLM 推論用の AI アクセラレータの効率を最大化するために、さまざまな種類の並列処理技術が採用されています。

データ並列処理

データ並列処理では、入力データを複数のバッチに分割し、各バッチを並列処理します。これは、ディープラーニングのトレーニングや推論など、大規模なデータセットを伴う AI ワークロードに役立ちます。データを複数のデバイスに分散することで、AI アクセラレータはワークロードをより速く処理し、全体的なパフォーマンスを向上させることができます。LLM 推論におけるデータ並列処理の例としては、入力テキストをバッチに分割し、各バッチを別のアクセラレータで処理することが挙げられます。

AIアクセラレータにおけるデータ並列処理

モデルの並列処理

モデル並列処理では、AI モデルのコンポーネントを複数のデバイスに分割し、異なるモデル部分の並列処理を可能にします。このアプローチは、単一デバイスのメモリ容量を超える、または効率的な処理のために分散コンピューティングを必要とする大規模な AI モデルにとって特に重要です。モデル並列処理は、モデル サイズが大きな制約となる大規模言語モデル (LLM) やその他のディープラーニング アーキテクチャで広く使用されています。

モデルの並列処理は、主に 2 つの方法で実装できます。

レイヤー内並列処理 (テンソル並列処理) : 個々のレイヤーまたはコンポーネントはデバイス間で分割され、各デバイスは同じレイヤー内の計算の一部を処理します。たとえば、トランスフォーマー モデルでは、アテンション ヘッドまたはフィードフォワード ネットワーク レイヤーを複数のデバイスに分散できます。このアプローチでは、デバイスはレイヤー境界でのみ同期する必要があるため、通信オーバーヘッドが最小限に抑えられます。

AIアクセラレータにおけるテンソル並列処理

レイヤー間並列処理 (パイプライン並列処理) : レイヤーの連続グループがデバイス間に分散され、計算のパイプラインが作成されます。各デバイスは割り当てられたレイヤーを処理してから、結果をパイプライン内の次のデバイスに渡します。このアプローチはディープ ネットワークに特に効果的ですが、パイプラインの遅延が発生します。

AIアクセラレータにおけるパイプライン並列処理

タスクの並列処理

タスク並列処理では、AI ワークロードを複数のタスクに分割し、各タスクを並列処理します。これは、自動運転など、複数の独立したタスクを伴う AI ワークロードに役立ちます。タスクを並列処理することで、AI アクセラレータは複雑なタスクを完了するのにかかる時間を短縮し、全体的なパフォーマンスを向上させることができます。タスク並列処理は、物体検出やビデオ分析などのタスクの AI アクセラレータでよく使用されます。

AIアクセラレータにおけるタスク並列処理

700 億のパラメータを持つ LLM がテキスト入力のバッチを処理する場合を考えてみましょう。

  • データ並列処理: 入力バッチは複数の GPU に分割され、各 GPU が入力の一部を個別に処理します。
  • テンソル並列処理: トランスフォーマー モデルのアテンション ヘッドは複数のデバイスに分散され、各デバイスはヘッドのサブセットを処理します。
  • パイプラインの並列処理: トランスフォーマー モデルのレイヤーは連続したグループに分割され、各グループはパイプライン方式で異なるデバイスによって処理されます。
  • タスクの並列処理: 複数の独立した推論要求が異なるアクセラレータ ユニットで同時に処理されます。

AIアクセラレータのコプロセッシングモード

AI アクセラレータは、多くの場合、メイン CPU と連携して、負荷の高い計算タスクの負荷を軽減します。メイン CPU は汎用タスクを担当し、AI アクセラレータは負荷の高い計算タスクを担当します。これは通常、コプロセッシングと呼ばれます。以下は、AI アクセラレータがメイン CPU と連携して動作する様子を示す簡単な図です。以下は、コプロセッシングの簡単な用語です。

  • ホスト: メイン CPU。プログラムの主なフローを担当します。メイン データをロードし、入出力操作を処理することでタスクを調整します。コプロセッシング モードでは、ホストがプロセスを開始し、データを AI アクセラレータに転送し、結果を受信します。計算以外のロジックはすべてホストが処理し、数値計算は AI アクセラレータに任せます。
  • デバイス: AI アクセラレータ。これらは、負荷の高い計算タスクを担当します。アクセラレータは、ホストからデータを受信した後、それを専用のメモリにロードし、行列乗算などの AI ワークロードに最適化された並列処理を実行します。処理が完了すると、結果を保存し、ホストに転送します。

共同処理ワークフロー

AIアクセラレータの新たなトレンド

AIワークロードの複雑さと規模が拡大するにつれて、AIアクセラレータは現代のアプリケーションの需要を満たすために進化しています。AIアクセラレータの将来を形作るいくつかの重要なトレンド[3]は次のとおりです。

インテリジェント プロセッシング ユニット (IPU)

Graphcore によって開発された IPU は、複雑な機械学習タスクを高効率で処理できるように設計されています。そのアーキテクチャは並列処理に重点を置いており、大規模な AI ワークロードに適しています。

再構成可能なデータフローユニット (RDU)

SambaNova Systems が開発した RDU は、プロセッサ内のデータ フローを動的に最適化することで AI ワークロードを高速化するように設計されています。このアプローチにより、LLM 推論などのタスクのパフォーマンスと効率が向上します。

ニューラル プロセッシング ユニット (NPU)

NPU はディープラーニングとニューラル ネットワーク タスクに特化しており、AI ワークロードに合わせた効率的なデータ処理を提供します。デバイス上で AI 機能を必要とするデバイスにますます統合されています。

結論

この記事では、LLM 推論を含む AI ワークロードのパフォーマンスを向上させる AI アクセラレータの役割について説明しました。アクセラレータの並列処理機能、高速メモリ、低精度演算を活用することで、組織は LLM を大規模に導入する際に大幅なパフォーマンス向上とコスト削減を実現できます。AI アクセラレータの主な機能と種類を理解することは、LLM 推論を最適化し、大規模な AI 導入で効率的なリソース利用を確保する上で不可欠です。次の記事では、AI アクセラレータを使用して LLM を大規模に導入するためのシステム最適化手法について説明します。

参考文献

  • [1] デビッド・B・カークとウェンメイ・W・フー著『超並列プロセッサプログラミング』
  • [2] Youngsuk Park他「AIアクセラレータ上の基礎モデルの推論最適化」
  • [3] 新しい AI/ML アクセラレータの評価: IPU、RDU、および NVIDIA/AMD GPU (Hongwu Peng ら)