Axelera AIのエクスポートとデプロイ#
UltralyticsはAxelera AIと連携し、エッジAIデバイスで高性能かつエネルギー効率に優れた推論を実現します。Ultralytics YOLOモデルをVoyager SDKを使用してMetis® AIPUに直接エクスポートしてデプロイできます。
Axelera AIは、独自のデータフローアーキテクチャとインメモリーコンピューティングを活用し、低消費電力で最大856 TOPSを実現する、エッジ向けのコンピュータービジョン専用ハードウェアアクセラレーションを提供します。
適切なハードウェアの選択#
Axelera AIは、さまざまなデプロイ制約に適合する複数のフォームファクターを提供しています。以下の図を参考に、Ultralytics YOLOのデプロイに最適なハードウェアを特定できます。
ハードウェア製品ラインアップ#
Axeleraのハードウェア製品ラインアップは、Ultralytics YOLO26および従来バージョンを、高いワット当たりFPS効率で実行できるよう最適化されています。
アクセラレータカード#
これらのカードを使用すると、既存のホストデバイスにAIアクセラレーションを追加でき、既存環境への導入が容易になります。
| 製品 | フォームファクター | コンピューティング | 性能(INT8) | 対象アプリケーション |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | Metis AIPU 4基 | 856 TOPS | 高密度のビデオ分析、スマートシティ |
| Metis PCIe x1 | PCIe Gen3 x1 | Metis AIPU 1基 | 214 TOPS | 産業用PC、小売業の待ち行列管理 |
| Metis M.2 | M.2 2280 M-Key | Metis AIPU 1基 | 214 TOPS | ドローン、ロボティクス、ポータブル医療機器 |
| Metis M.2 MAX | M.2 2280 | Metis AIPU 1基 | 214 TOPS | 高度な熱管理が必要な環境 |
統合システム#
ターンキーソリューションとして、Axeleraはメーカーと連携し、Metis AIPU向けに事前検証済みのシステムを提供しています。
- Metis Compute Board:Metis AIPUとRockchip RK3588 ARM CPUを組み合わせたスタンドアロンのエッジデバイスです。
- ワークステーション:Dell(Precision 3460XE)およびLenovo(ThinkStation P360 Ultra)のエンタープライズ向けタワー型ワークステーションです。
- 産業用PC:AdvantechおよびAetinaの、製造自動化向けに設計された堅牢なシステムです。
対応タスク#
深度推定はサポートされていません。深度ヘッドが出力する演算子を、Metis AIPUコンパイラーが低レベル表現に変換できないためです。YOLO26のインスタンスセグメンテーションも、Ultralyticsのexportではサポートされていませんが、以下の説明に従ってVoyager SDK経由でデプロイできます。YOLO26のセマンティックセグメンテーションはサポートされています。
YOLO26のインスタンスセグメンテーションは、Ultralyticsのexportコマンドではまだサポートされていません。yolo26-segが必要な場合は、ユーザー空間での回避策を提供するdeploy.pyを使用し、Voyager SDK経由でデプロイできます。ネイティブコンパイラーでのサポートは、今後のリリースで追加される予定です。
インストール#
Axelera形式へのエクスポートには、以下が必要です。
- オペレーティングシステム:Linuxのみ(Ubuntu 22.04/24.04を推奨)
- ハードウェア:Axelera AIアクセラレータ(Metisデバイス)
- Python:バージョン3.10、3.11、3.12、3.13
- PyTorch:
torch>=2.8,<2.13 - Voyager SDK:1.8.0。エクスポート時にはこのバージョンの開発キットがインストールされ、推論時にはこのバージョンのランタイムがインストールされます。
- Metisカーネルドライバー:
metis-dkms1.6.2以降。pipとは別にインストールします。 - システム依存関係:
sudo apt install libgl1(OpenCVに必要ですが、pip経由ではインストールされません)
Ultralyticsのインストール#
pip install ultralytics詳しい手順については、Ultralyticsのインストールガイドを参照してください。問題が発生した場合は、よくある問題のガイドをご覧ください。
Axeleraドライバーのインストール#
-
Axeleraリポジトリーキーを追加します。
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
リポジトリーをaptに追加します。
使用するOSに合った以下のスニペットを選択してください。
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
ドライバーをインストールしてロードします。SDK 1.8には
metis-dkms1.6.2以降が必要なため、ここでは最新バージョンをインストールします。sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
カーネルドライバーはPython SDKパッケージとは別にインストールされるため、SDKをアップグレードした後は、ドライバーもそのSDKの最小要件(SDK 1.8では1.6.2)まで更新する必要があります。インストール時にはこの要件の確認が行われないため、最小要件を下回るドライバーではデバイスを使用できません。axdeviceは必要なバージョンを報告し、デバイスを開けずに終了します。
[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0手順3:Metisカーネルドライバーのインストールも参照してください。Ubuntuで以前のSDKをすでに使用している場合は、ドライバーを更新してカーネルモジュールを再ロードしてください(再起動は不要です)。
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis続いてaxdeviceを再実行し、デバイスが検出されることを確認します。
Axeleraモデルを使用するyolo export format=axeleraまたはyolo predictを初めて実行すると、Axelera SDKパッケージが自動でダウンロードされ、インストールされます。接続速度によっては数分かかる場合があり、ダウンロード中は進行状況が表示されません。事前に手動でインストールするには、以下を実行します。
pip install axelera-devkit==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.8では、コンパイル済みの.axmモデル形式のバージョンが引き上げられるため、以前のSDKで生成された_axelera_modelディレクトリは、読み込み時に拒否されます。アップグレード後、各モデルを再エクスポートしてください。
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.YOLOモデルのAxelera形式へのエクスポート#
Axelera形式は、エクスポート、予測、検証の各モードをサポートしています。推論と検証はAxelera Metis AIPUハードウェア上で実行されます。モデルをエクスポートした後、エクスポート済みモデルを読み込んで推論を実行するか、精度を検証してください。
from ultralytics import YOLO
# YOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")
# モデルをAxelera形式にエクスポートします
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# エクスポート済みのAxeleraモデルを読み込みます
model = YOLO("yolo26n_axelera_model")
# 推論を実行
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# エクスポート済みのAxeleraモデルを読み込みます
model = YOLO("yolo26n_axelera_model")
# COCO8データセットで精度を検証します
metrics = model.val(data="coco8.yaml")エクスポート引数#
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
format | str | 'axelera' | Axelera Metis AIPUハードウェア向けのターゲット形式です。 |
imgsz | intまたはtuple | 640 | モデル入力の画像サイズです。 |
batch* | int | 1 | エクスポートモデルのバッチ推論サイズ、またはpredictモードでエクスポートモデルが同時に処理する画像の最大数を指定します。 |
quantize | intまたはstr | 8/自動 | 量子化精度です。Axelera AIPUでは8(INT8)が必須で、自動的に有効になります。非推奨のhalf/int8フラグを置き換えるものです。INT8量子化を参照してください。 |
data | str | None | キャリブレーションデータセットのYAMLファイルです。分類タスクでは、代わりにデータセットディレクトリまたは組み込みデータセット名を指定します。省略した場合、Ultralyticsがタスクに応じたキャリブレーションデータセットを選択します。 |
fraction | float、int、またはlist | 1.0 | キャリブレーション用サブセットを、割合、画像数、または[train, val, test]の割合/画像数で指定します。2要素のリストではtestは全件を使用し、0はスキップします(100~400枚を推奨)。 |
device | str | None | エクスポートデバイス:GPU(device=0)またはCPU(device=cpu)。 |
* batch>1による推論にはVoyager SDK 1.8.0以降が必要です。モデルは単一画像用にコンパイルされます。
すべてのエクスポートオプションについては、エクスポートモードのドキュメントを参照してください。
出力構造#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Axelera AI ベンチマーク#
Metis AIPUは、エネルギー消費を抑えながらスループットを最大化します。
| モデル | Metis PCIe FPS(フレーム/秒) | Metis M.2 FPS(フレーム/秒) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
ベンチマークはAxelera AIのデータに基づいています。実際のFPSは、モデルサイズ、バッチ処理、入力解像度によって異なります。
これらは、720pの動画ファイルに対してVoyager SDKのストリーミングパイプラインを使用し、モデルZooで測定したホストスループットの値です。単一のpredict呼び出しでは画像あたりのレイテンシが報告されますが、これは別の指標です。
実際の用途#
Axeleraハードウェア上のUltralytics YOLOにより、高度なエッジコンピューティングソリューションを実現できます。
- スマートリテール:物体カウントとヒートマップ分析をリアルタイムで行い、店舗運営を最適化します。
- 産業安全:製造環境における低レイテンシのPPE検出。
- ドローン分析:農業や捜索救助活動向けに、UAV上で高速な物体検出を実現します。
- 交通システム:エッジベースのナンバープレート認識と速度推定。
推奨ワークフロー#
- UltralyticsのTrain Modeを使用してモデルをトレーニングします
model.export(format="axelera")を使用してAxelera形式にエクスポートしますyolo valを使用して精度を検証し、量子化による損失が最小限であることを確認します- 定性的な検証には
yolo predictを使用して推論します - PyTorchに依存しない高性能なエンドツーエンドパイプラインにデプロイします。
axelera-rtを使用した構成可能なPythonパイプラインについては、Voyager SDKでのYOLOの例をご覧ください
デバイスのヘルスチェック#
Axeleraデバイスが正常に動作していることを確認します。
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice詳細な診断については、AxDeviceのドキュメントをご覧ください。
最大パフォーマンス#
モデルは単一画像向けにコンパイルされます。複数の画像をPredictに渡すと、Axeleraスケジューラー(Voyager SDK 1.8以降)を通じて処理されるため、batch>1は正しく実行されます。ただし、単一デバイスでエンドツーエンドの測定を行った場合、batch=1より高速にはなりません。
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8最大スループットが求められる本番環境では、Axelera Voyager SDKにより、次の機能を利用できます。
- 複数のフレームを同時に処理するストリーミング推論パイプライン
- 複数のコアにまたがるモデルのコンパイル
- 高解像度カメラ向けのタイル分割推論
FPSベンチマークについてはモデルZooをご覧ください。本番環境でのサポートについてはAxeleraにお問い合わせください。
既知の問題#
- M.2の電力制限:電源の制約により、M.2アクセラレーターでは大規模または特大規模のモデルで実行時エラーが発生する場合があります。
サポートについては、Axeleraコミュニティをご覧ください。
よくある質問#
はい。Ultralytics Train Modeを使用してトレーニングしたモデルは、サポート対象のレイヤーと演算を使用していれば、Axelera形式にエクスポートできます。
画像は100~400枚を推奨します。400枚を超えても追加の効果はなく、量子化にかかる時間が長くなります。100枚、200枚、400枚で試し、最適なバランスを見つけてください。
SDK、ドライバー、コンパイラーツールは、Axelera Developer Portalから入手できます。