Back to Blog

PyTorch、TensorFlow Lite、ONNXモデルでエッジAIソフトをつなぐ|EdgeCortix

Image of Antonio Nevado
Antonio Nevado

データサイエンティストの皆さんは、PyTorch、TensorFlow、ONNXのモデルをエッジAIソフトウェアアプリケーションに移行することに懸念を抱いているかもしれません。ー MERAはモデルに依存することなくアプリケーションへの移行を簡単できます。

PyTorch、TensorFlow、ONNXは、多くのデータサイエンティストやAIソフトウェア開発者にとって馴染みのあるツールです。これらのフレームワークは、CPU上でネイティブにモデルを実行したり、GPU上でアクセラレーションを行うため、ハードウェアに関する知識はほとんど必要ありません。しかし、実際にエッジデバイスにアプリケーションを移行するとなると、突然、AIアクセラレーション・ハードウェアについての知識が必要となり、おそらく不慣れな人にとっては少し不安を感じるかもしれません。 それを解決するのがEdgeCortixMERAです。ソフトウェアコンパイラとランタイムフレームワークであるMERAは、エッジAIコプロセッサやFPGAで動作するPyTorch、TensorFlow、ONNXモデルとエッジAIソフトウェアの接続を可能にします。

Product-Mera

エッジAIアプリケーションは何が違うのか。

エンタープライズAIアプリケーションでは、多くの場合、AI学習プラットフォームはサーバーやクラウドベースのハードウェア上で動作し、投資費用と運用コストによってのみ制限される、事実上無制限の性能、電力消費、ストレージ、数学的精度を利用しています。AI推論は、同様のCPUGPU技術を使用した物理的に小さなサーバークラスのマシンにスケールダウンするか、データセンターやクラウドにとどまるのが常です。

エッジAIアプリケーションでは、AI推論に異なるハードウェアを使用することが多く、サイズや消費電力、精度、リアルタイムで決定すべき制約に対処します。 ホストプロセッサは、ArmRISC-Vコアを搭載する場合もあれば、より小型でエネルギー効率に優れたIntelAMDのプロセッサを搭載する場合もあります。モデルは、専用の処理コアを持つエッジAIチップや、推論ロジックがプログラムされたFPGAを含む高性能PCIアクセラレータカード上で実行される可能性もあります。

このようなエッジに対応するハードウェア環境は、データサイエンティストやハードウェアをあまり重視しない人々にとっては、謎めいた領域かもしれません。中には、以下のような懸念が挙げられるでしょう。 

  • モデルは書き直す必要があるのか。また、モデルの書き直しはどの程度難しく、どれくらいの時間がかかるのか。
  • 性能と効率を高めるために、モデルをどのようにハードウェアにマッピングするのか。
  • 計算精度についてはどうなのか。再トレーニングや検証は必要なのか。
  • ホストプロセッサ上で動作するアプリケーションに対して、AIアクセラレーションはどのように動作するのか。

エッジプラットフォームへのAIアプリケーションの導入は、障害が発生するようなものであってはなりません。エッジAIアプリケーションの開発者は、使い慣れた環境(ワークステーション、サーバー、クラウドプラットフォーム上のPyTorch、TensorFlow、ONNX)でモデル研究を行い、エッジAIアクセラレータへのデプロイメントに自動変換できるのが理想的です。

MERAを使ったPyTorch、TensorFlow、またはONNXモデルのインタープリト

MERAは、エッジAIソフトウェアへのスムーズな移行を後押しします。開発者は、他のプログラミング言語やFPGA用語の代わりに、最初から最後まで使い慣れたPythonで作業を行うことができます。MERAは、エッジデバイスのホストプロセッサとAIアクセラレーションハードウェアの間で演算グラフを自動的に分割し、最適な結果が得られるようにアクセラレーションIPを再構成します。

EdgeCortix-Mera-Compiler-Software-Framework

一般的なMERAのデプロイメントプロセスには、次のようなステップがあります

  • Model Zoo: MERAは多くのオープンソースの事前学習済みモデルを備えており、開発者はこれを使用して作業を開始することができます。また、開発者は、AI推論プロジェクトにあたり、これらを修正したり、全く新しいカスタムモデルを作成することもできます。
  • キャリブレーションと量子化: PyTorch、TensorFlow、およびONNXは、モデルを32ビット浮動小数点などの高精度フォーマットから、8ビット整数やEdgeCortix Dynamic Neural Accelerator(DNA)IPでサポートされている別のフォーマットに変換するためのモデル量子化ツールを内蔵し、より高速で効率の良いハードウェア実行を可能にします。キャリブレーションは、トレーニングデータセットからサンプルを取り出し、新しい量子化で推論を実行し、モデルノードの統計情報を見て、精度を向上するためにパラメータを調整します。MERA 1.3.0 のリリースでは、PyTorch、TensorFlow、または ONNX からの組み込み量子化ツールを使用する代わりに、新しい代替手段として、MERA に直接量子化できる機能を追加しました。
  • モデルインポート:MERAは量子化されたモデルをTorchScript IR、TFLite、またはONNXフォーマットから直接インポートすることができます。エクスポートする前に、開発者はモデルがTensorFlowのモバイルフレンドリーなサブセットであるTensorFlow Liteと互換性があることを確認する必要があります。
  • コンパイル: MERAは、インポートと演算グラフのオフロードのためにApache TVMをフロントエンドに採用し、コンパイルと最適化のために全く新しいEdgeCortix拡張バックエンドを使用しています。 パラメータデータとPythonC++からロード可能な共有ライブラリを含む一連のバイナリアーティファクトが出力されます。
  • インタプリタとシミュレータ: MERAでは、初期の開発やデバッグを支援するために、開発ホストベースのインタプリタが利用でき、EdgeCortix DNA IPと同じ精度で実行可能です。また、EdgeCortix DNA IPとターゲットの動作の一致をサイクル精度で表現した、完全な開発用ホストベースのシミュレータも用意されており、実際にハードウェアを使用する前にレイテンシと決定性を評価するのに役立ちます。
  • デプロイメント: MERAは、SoC内のエッジホストプロセッサやアクセラレーションハードウェア、あるいはシステム内のFPGAベースのPCIアクセラレータカードに対してターゲットのクロスコンパイルを行います。 EdgeCortix DNA IPの設定ルールを理解し、自動的に正しいバージョンのコードをコンパイルします。また、使用率を最大化し、レイテンシーを最小化するための構成の最適化とワークロードのスケジューリングも行います。

AエッジAIソフトウェアのための、より簡単でモデルに依存しないワークフロー

データサイエンティストやPythonを使用する開発者は、MERA を使用して EdgeCortix DNA IP を実行するエッジ デバイスにアプリケーションを簡単に導入することができます。ハードウェアとして、 EdgeCortix SAKURA エッジAIコプロセッサ、 EdgeCortix DNA IPで設計したSoC、 EdgeCortix Inference Pack on BittWare FPGA cardsのいずれを選択しても、開発プロセスは同じように進めることができます。

最新のリリースであるMERA 1.3.0は、EdgeCortix GitHubリポジトリからダウンロード可能で、コードファイル、学習済みモデル例、ドキュメントが含まれています。EdgeCortix対応ハードウェアのコンパニオンツールとしてMERAを使用することで、開発者はエッジAIハードウェアの複雑さを懸念することなく、エッジAIソフトウェアの堅牢性と性能に注力することができます。

MERAは皆様のエッジAIプロジェクトにどのように貢献できるでしょうか?

MERAについて詳しく見るGithubでMERAのコードを取得する

 


より多くのデバイスでエッジAI推論を実現するには?

Image of ジェフリー H グロスマン
ジェフリー H グロスマン
Read more
SAKURA-I efficient edge AI chips from EdgeCortix outperform the NVIDIA Jetson AGX Orin

再構成可能なアクセラレータを搭載した効率的なエッジAIチップ

Image of ニコライ・ネズ
ニコライ・ネズ
Read more