アナログ・テック 技術コラム

NPUや産業用PC、エッジコンピューティング、エッジAI、生成AIに関する技術情報や実装の考え方、最新トピックをアナログ・テックの視点で発信します。

学習済みモデルをMetis AIPUにデプロイする ─ 変換・最適化・推論の流れを整理する

— Axelera AI(Metis AIPU)入門 第3回 —

 

前回は、Metis AIPUの開発環境「Voyager SDK」の全体像と、Model Zooのモデルで最初の推論を動かすまでの流れを整理しました。今回はシリーズの最終回として、いよいよ自分で用意した学習済みモデルを、Axelera AIのMetis AIPUにデプロイする流れを整理します。

Model Zooの既製モデルを動かすところまでは、多くの環境で比較的スムーズに進みます。しかし現場で本当に必要になるのは、自社の検査対象や監視シーンに合わせて学習したモデルを動かすことです。本記事では、自前モデルを「変換 → 量子化 → コンパイル → 推論」の順でAxelera AIのMetis AIPU上へ載せていく流れと、各工程で押さえておきたい考え方を整理します。

なお、コマンドの正確な引数・対応バージョン・構成ファイルの記述方法はSDKのバージョンによって変わります。本記事は「何を・どの順で行い、どこに注意するか」という流れの理解を目的とし、具体的な手順は必ず最新の公式ドキュメントを参照してください。

1. なぜ「自前モデルのデプロイ」が一つの山場になるのか

学習済みモデルは、通常FP32(32ビット浮動小数点)などの高い精度で重みを保持しています。一方、エッジAIアクセラレータで高いスループットと低消費電力を実現するには、演算をINT8(8ビット整数)などの低ビット精度に変換する「量子化」が欠かせません。

ここが一般的に最も気を使う工程です。素朴に量子化すると、推論精度が落ちてしまうことがあるためです。精度を保つために再学習(QAT:量子化を考慮した学習)まで踏み込むケースもあり、これが導入のハードルになりがちでした。Metis AIPUとVoyager SDKは、この工程の負担を抑えることを一つの狙いにしています。

2. デプロイの全体像 ── 4つのステップ

自前モデルをMetis AIPUへ載せる流れは、大きく次の4ステップに整理できます。前回紹介した「ビルド環境(デプロイ)→ ランタイム環境(推論)」の2段構成を、もう少し細かく分解したものと考えてください。

  1. モデルの準備:学習済みモデルを、SDKが扱える形式(PyTorch / ONNX / TensorFlow)で用意する。

  2. 量子化(キャリブレーション):代表データを使ってモデルをINT8へ変換する。

  3. コンパイル(マッピング):量子化済みモデルをMetis AIPU向けの実行形式へ変換する。

  4. 推論と検証:デプロイ済みモデルで推論を実行し、精度とスループットを確認する。

これらのうち2〜3は、前回触れたデプロイツール deploy.py が担う中心的な工程です。順に見ていきます。

学習済みモデルをMetis AIPUへデプロイする流れ。モデル準備 → 量子化(INT8キャリブレーション)→ AIPU向けコンパイル → 推論・精度検証の4ステップ

3. ステップ1:PyTorch / ONNXモデルの準備

まず、デプロイの対象となる学習済みモデルを用意します。Voyager SDKはPyTorch・ONNX・TensorFlowに対応しており、一般的なフレームワークで学習したモデルをそのまま持ち込める設計です。

このとき重要なのは、モデル本体だけでなく、入力の前処理と出力の後処理を含めて「どう動かすか」を定義しておくことです。Voyager SDKでは、モデルやデータの取り扱いを記述した構成ファイルを用意し、それに沿ってデプロイを進めます。Model Zooのモデルがそのまま動くのは、この定義があらかじめ整っているからです。自前モデルでは、ここを自分で用意する必要があります。具体的な記述形式は公式ドキュメントの構成例を参照してください。

4. ステップ2:量子化(キャリブレーション)

次が、デプロイの肝となる量子化です。FP32のモデルをINT8へ変換する際に広く用いられるのが、学習後量子化(PTQ:Post-Training Quantization)です。再学習を行わずに量子化する方式で、ポイントは、変換のために代表データ(キャリブレーションデータ)を与えることです。

キャリブレーションデータとは、実際の推論に近い入力データのサンプル集合です。SDKはこのデータをモデルに通し、各層でどの程度の値の範囲が現れるかを観測して、INT8への最適な変換パラメータを決定します。ここで使うデータが本番の入力分布から大きくずれていると、量子化後の精度が落ちる原因になります。キャリブレーションデータは、実運用で入ってくる画像・シーンに近いものを選ぶのが鉄則です。

Metis AIPUが採用するD-IMC(メモリ内演算)アーキテクチャは、INT8演算を前提に設計されています。アナログ・テック株式会社が扱うMetis AIPU搭載機(AironiA AIR-AD-AI-001)では、INT8でFP32同等の推論精度を、再学習なしで得られるとされています。つまり、多くのケースでQATまで踏み込まなくても、学習後量子化とキャリブレーションだけで実用的な精度を狙えるという考え方です。これが、デプロイの負担を抑える鍵になります。

5. ステップ3:コンパイル(Metis AIPU向けマッピング)

量子化が済んだら、モデルをMetis AIPUの演算リソースに割り付けるコンパイル(マッピング)を行います。この工程で、モデルのグラフがAIPU上で実行できる形式へ変換され、前回触れたデプロイ済みモデル形式(.axm)として扱えるようになります。一連のデプロイ作業は、コマンドラインのデプロイツール deploy.py が担います。

Metis AIPUは複数のAIコアを持ち、マルチモデル・マルチストリームの並列実行に対応します。コンパイルの段階で、モデルをどのようにコアへ割り当てるかが性能を左右します。複数のモデルを同時に動かしたい場合や、1台で多チャンネルの映像を処理したい場合は、この割り付けを意識して構成を検討することになります。最適な設定はモデルや要件によって変わるため、まずは標準的な構成でデプロイし、結果を見ながら調整するのが現実的です。

6. ステップ4:推論と精度の検証

デプロイが完了したら、実際に推論を実行して結果を確認します。前回触れたとおり、コマンドラインの推論ツール inference.py でデプロイ済みモデルを動かせるほか、アプリケーションへ組み込む場合はPipeline Builder APIの op.load('model.axm') でAIPU上の推論を呼び出します。

ここで必ず行いたいのが、量子化前(FP32)と量子化後(INT8)の精度比較です。自分のデータセットで、検出率・分類精度などの指標がデプロイ前後でどれだけ変化したかを測定します。あわせて、スループット(FPS)や1台で処理できるチャンネル数といった性能面も、実際の入力条件で確認しておきます。なお、アナログ・テック株式会社のMetis AIPU搭載機では、YOLOv5使用時で最大24chの同時リアルタイム解析が可能とされていますが(条件により変動)、自前モデルでの実効値は必ず手元の環境で計測してください。

もし量子化後の精度が想定より落ちる場合は、まずキャリブレーションデータを見直すのが第一歩です。データの枚数や、本番分布との一致度を改善することで回復するケースが少なくありません。

7. つまずきやすいポイントと、本番運用に向けて

最後に、自前モデルのデプロイで迷いやすい点を整理します。第一に、キャリブレーションデータの質。量子化精度の大半はここで決まると言ってよく、本番に近いデータを十分な量だけ用意することが何より重要です。第二に、前後処理の整合。学習時と推論時で前処理(リサイズ・正規化など)がずれていると、モデル自体は正しくても結果が合いません。デプロイ前に学習側の処理と突き合わせて確認します。第三に、精度と性能は必ず自分のデータで測ること。カタログ値やModel Zooの結果は出発点に過ぎません。

なお、前回も触れたとおり、アプリケーションへの組み込みに使うPipeline Builder APIは現状Experimental(実験的)の位置づけの機能を含みます。試作・評価には十分活用できますが、本番システムへ採用する際は最新のリリース状況を確認したうえで判断することをおすすめします。

おわりに

整理すると、自前モデルをMetis AIPUへデプロイする流れは次の4点です。

  1. PyTorch / ONNX / TensorFlowのモデルを、入力の前処理と出力の後処理を含めて定義し、準備する。

  2. 代表データを使った学習後量子化でINT8へ変換する。ここがデプロイの肝であり、D-IMCアーキテクチャにより再学習なしでFP32同等精度を狙える点が大きな利点。

  3. deploy.py でMetis AIPU向けにコンパイルし、デプロイ済みモデル(.axm 形式)として扱えるようにする。

  4. 量子化前後の精度と実効性能を、必ず自分のデータで検証する。

全3回にわたり、Metis AIPUとは何か(第1回)、Voyager SDKの導入と最初の推論(第2回)、そして自前モデルのデプロイ(第3回)と、概念から実装までを順に整理してきました。エッジで高性能なAI推論を低消費電力で実現する選択肢として、Metis AIPUは検討に値する一手です。実際の評価や構成のご相談は、下記からお気軽にお問い合わせください。

本記事のシリーズ