はじめに
Sky株式会社では受託開発のひとつとしてエッジ向けの組込みAI開発を行っています。 エッジ向けのAI開発ではAIモデル訓練から組込みデバイスへの組込み、精度や速度評価まで行います。 様々なAIアクセラレータを扱うことがありその一つであるHailoについて今回紹介したいと思います。
Hailoとは
Hailoは2017年にイスラエルで設立されたスタートアップ企業で近年AIチップメーカーとして注目されています。 HailoはHailo-8をはじめとする様々なタイプのAIチップの提供をしています。 これらの強みは低消費電力、低遅延でエッジでリアルタイムにAIモデルが動作し、競合チップであるIntel MyriadやGoogle Edge TPUに並ぶ性能を持ちます。
HailoのAIチップのシリーズ
Hailo-8
Hailo定番のチップシリーズで26 TOPSの性能を持ち、消費電力はわずか2.5Wで競合のAIチップと比較しても性能が良いです。また様々なモジュールで製品展開されています。
Hailo-10
Hailoの第二世代AIアクセラレータであり、このチップは生成AI機能を備えており、エッジデバイス上での高性能なディープラーニングアプリケーションを可能にします。
Hailo-15
AIビジョンプロセッサであり、特にスマートカメラ向けに設計されています。このプロセッサは、Hailoの特許取得済みのAI推論能力と高度なコンピュータビジョンエンジンを組み合わせており、プレミアムな画像品質と高度なビデオ分析を実現します。
AIモデル開発プロセス

HailoのAIチップへのモデル開発プロセスは、以下のステップで構成されています。
① モデル学習
モデルはTensorFlow、Keras、PyTorchなどのフレームワークを使用して学習されます。
② ONNX変換
学習されたモデルはONNX(Open Neural Network Exchange)形式に変換されます。ONNXは異なるフレームワーク間でモデルを交換するためのオープンソースフォーマットです。
③ HAILO Archive変換
ONNX形式のモデルはHAR(Hailo Archive)形式に変換されます。この段階では32ビットの重みが使用されます。
④ Hailoモデル最適化
HAR形式のモデルは、量子化などの最適化が行われます。キャリブレーションデータとモデルスクリプトが使用され、量子化された重みを持つHAR形式のモデルが生成されます。モデルスクリプトでは最適化レベル、圧縮レベルなどを設定できデプロイ環境に応じて精度や速度を調整することができます。
また入力のリサイズ、回転などや、物体検出の後処理できるNMS処理のアクセラレート(モデルによる)もサポートされておりこれもモデルスクリプト中で設定します。
⑤ バイナリファイル変換
最適化されたHAR形式のモデルは、HEF(Hailo Executable File)形式に変換されます。これはHailoのAIチップ上で実行可能なバイナリファイルです。
⑥ AIチップ上での推論
最終的に、HEF形式のファイルはHailo-8チップ上で実行され、HailoRTによる推論が行われます。
Hailoの優れた機能紹介
仮想デバイスのスケジューリング機能
HailoRTでは仮想デバイスのスケジューリング機能により、マルチプロセスで複数のモデルを効率的に実行することが可能です。この機能は、リソースの最適化と高いパフォーマンスを実現し、複雑なAIタスクを同時に処理する際に非常に有用です。
HailoRTの汎用性
HailoRTはPythonのAPIとC, C++のAPIを提供しており、様々な環境でモデルを実行することができます。 これにより、開発者は自分の好みやプロジェクトの要件に応じて、最適なプログラミング言語を選択することができます。
公開モデルとベンチマーク
Hailoは、多くの公開モデルを提供しており、ユーザーはこれらのモデルをベンチマーク結果から選んで再学習することができます。 特に、Hailo Model Zooは、様々な用途に対応したモデルを集めたリポジトリであり、開発者にとって非常に便利なリソースです。
- Hailo model zoo: hailo-ai/hailo_model_zoo: The Hailo Model Zoo includes pre-trained models and a full building and evaluation environment
- モデル性能比較表: AI Model Explorer to Find The Best NN Model | Hailo Zoo
モデル変換オプション
Hailoのモデル変換には、精度劣化の改善やモデル圧縮の調整が可能なオプションが含まれています。これにより、ユーザーは自分のニーズに合わせてモデルを最適化し、効率的に利用することができます。変換時はモデルスクリプトで設定をします。
継続的なアップデートと新機能のサポート
Hailoは、頻繁にアップデートを行い、新しい機能をサポートしています。例えば、Hailo-10では生成AIモデルの実行がサポートしました。これにより、最新のAI技術を活用した高度なアプリケーションの開発が可能となります。
最後に
AIの推論が必要なエッジ環境でHailo-8を使って推論を導入検討してはいかがでしょうか。Sky株式会社ではエッジ環境でのAIモデル開発するエンジニアがいます。興味があればぜひお声掛けください。

