メタ AI オープン ソース AITemplate (AIT)、ディープ ニューラル ネットワークを C++ コードに変換して推論サービスを高速化する Python フレームワーク

GPU は、コンピューター ビジョン、自然言語処理、マルチモーダル学習などのさまざまな機械学習ドメインで大規模な事前トレーニング済みモデルの AI モデルを展開するために必要な計算能力を提供する上で重要です。 現在、AI 実践者は、プラットフォーム固有の性質により、高性能 GPU 推論ソリューションを選択するという点で最小限の選択肢しかありません。 ある企業の GPU 用に作成された機械学習システムは、別のテクノロジ ベンダーのハードウェアで実行するには、完全に再実装する必要があります。 複雑なランタイム環境ではハードウェアに依存するため、これらのソリューションを構成するコードを維持することは困難です。 さらに、AI 生産パイプラインは頻繁に迅速な開発を必要とします。 TensorRT のようなプロプライエタリなソフトウェア ツールキットはカスタマイズ オプションを提供しますが、この要求を満たさないことがよくあります。 プロプライエタリなソリューションは、開発の俊敏性をさらに低下させ、コードを迅速にデバッグすることをより困難にする可能性があります。

Meta AI は、これらの業界の問題に対処するために、AMD および NVIDIA GPU テクノロジ用の明確なアクセラレーション バックエンドを備えた統合オープンソース推論ソリューションである AITemplate (AIT) を作成しました。 畳み込みニューラル ネットワーク、トランスフォーマー、ディフューザーなど、さまざまな一般的な AI モデルで、ハードウェア ネイティブの Tensor Core (NVIDIA GPU) および Matrix Core (AMD GPU) アーキテクチャとほぼ同じパフォーマンスを提供します。 チームは、AIT を利用した場合に NVIDIA GPU で最大 12 倍、PyTorch のイーガー モードを使用した場合に AMD GPU で最大 4 倍パフォーマンスを向上させました。 現在、AITemplate は NVIDIA の A100 および AMD の MI200 GPU システムで有効になっており、どちらもテクノロジー ビジネス、研究施設、およびクラウド コンピューティング サービス プロバイダーのデータ センターで一般的に使用されています。

AITemplate は、AI モデルを高性能な C++ GPU テンプレート コードに変換して推論を高速化する Python システムです。 さまざまなグラフ変換を実行してグラフを最適化するフロントエンド レイヤーと、GPU ターゲット用の C++ カーネル テンプレートを生成するバックエンド レイヤーがシステムを構成します。 フレームワークの背後にあるビジョンは、シンプルさを維持しながら高速をサポートすることです。 このプロジェクトには、強化されたカーネル フュージョン、複数のカーネルを 1 つのカーネルに統合してより効果的に動作させる最適化手法、高度なトランス ブロックの最適化など、いくつかのパフォーマンスの進歩が含まれています。 これらの改善により、AMD のマトリックス コアと NVIDIA の Tensor コアの使用が劇的に増加し、最先端のパフォーマンスが得られます。 さらに、AIT は外部ライブラリへの依存を最小限に抑えます。

AITemplate は、垂直、水平、およびメモリ フュージョンの 3 つの高度な最適化をサポートしているため、業界で最も洗練されたカーネル フュージョン システムの 1 つを誇っています。 さらに、デプロイが簡単なため、AITemplate は実行可能なソリューションになります。 AI モデルを含む独立した自己完結型のバイナリが作成されます。 このバイナリは、同じハードウェアと最新の CUDA 11 / ROCM 5 バージョンを備えた任意の環境で動作できるため、下位互換性が良好です。 さらに、AITemplate は、一般的に使用される事前に構築されたモデル (VisionTransformer、BERT、Stable Diffusion、ResNet、および MaskRCNN など) を提供します。 これにより、展開手順が合理化され、専門家が PyTorch の事前トレーニング済みモデルを簡単に展開できるようになります。 Python Jinja2 テンプレートと GPU Tensor Core/Matrix Core C++ テンプレートは、AITemplate を構成するテンプレート システムの 2 つのレイヤーです。 Python でプロファイリングした後、システムは Jinja2 テンプレートを C++ コードに変換して、最適なカーネル セットアップを決定します。 モデルの最終的なバイナリ コードは、GPU C++ コンパイラを使用して生成されたソース コードをコンパイルすることによって作成されます。 ユーザーは、PyTorch に似たフロントエンド設計により、PyTorch を含むさまざまなフレームワークから AITemplate にモデルを変換できます。

Meta AI は、AI で利用できるプラットフォームの数を増やすことに加えて、二酸化炭素排出量を削減することで環境問題の解決にも役立つ技術を開発したいと考えています。 研究によると、GPU の使用は炭素排出に影響を与える可能性があります。 AITemplate は GPU の実行を高速化し、排出量をさらに最小限に抑えることができます。 要約すると、AITemplate は、システムの複雑さを最小限に抑えながら、現世代および今後の AMD および NVIDIA GPU に最先端のパフォーマンスを提供します。 それにもかかわらず、研究者によると、彼らは高性能 AI 推論エンジンの開発の始まりにすぎません。 彼らは、新しい最適化と動的形状の完全なサポートにより、AITemplate を改善しようと積極的に取り組んでいます。 彼らの長期的な目標には、AITemplate をさまざまなテクノロジ ベンダーのより多くのハードウェア プラットフォームに拡張することが含まれます。 Meta は、より環境に優しく、より効果的で、より優れたパフォーマンス、柔軟性、およびバックエンド オプションを備えた AI 推論のエコシステムを作成することを目指しており、AITemplate の開発はその方向への足がかりです。

This Article is written as a research summary article by Marktechpost Staff based on the research article 'Faster, more flexible inference on GPUs using AITemplate, a revolutionary new inference engine'. All Credit For This Research Goes To Researchers on This Project. Check out the code and reference article.

Please Don't Forget To Join Our ML Subreddit


Khushboo Gupta は MarktechPost のコンサルティングインターンです。 彼女は現在、ゴアのインド工科大学 (IIT) で B.Tech を目指しています。 彼女は、機械学習、自然言語処理、および Web 開発の分野に情熱を注いでいます。 彼女は、いくつかの課題に参加することで、技術分野についてさらに学ぶことを楽しんでいます。


Leave a Comment

Your email address will not be published. Required fields are marked *