Apple Core AI 統合#
Ultralytics は format=coreai または Apple の .aimodel 形式への直接のエクスポートをサポートしていません。Apple へのデプロイには、サポートされている Core ML 統合を使用してください。
Core AI は、Apple シリコン上でニューラルネットワークを直接実行するための Apple の新しいフレームワークです。これには、.aimodel モデル形式、最新の Swift 推論 API、PyTorch ベースの変換ツール、事前コンパイル、モデル最適化、専用のデバッグおよびプロファイリングツールが含まれます。
Apple は Core AI を、オンデバイス AI 実行の次なる進化であり、オンデバイスの Apple Intelligence を支える推論フレームワークであると説明しています。これは、コンパクトなビジョンモデルから大規模な生成モデルまで、現在のニューラルネットワークアーキテクチャ向けに設計されており、CPU、GPU、および Apple Neural Engine (ANE) にタスクを分散配置できます。
Core AI は Core ML の新しい名称ではなく、新しいデプロイメントパスです。これらのフレームワークは、異なるモデル形式、変換ツール、ランタイム API、およびアプリケーション統合パターンを使用します。
Core AI と Core ML の比較#
| 機能 | Core AI | Core ML |
|---|---|---|
| モデル成果物 | .aimodel | .mlpackage または .mlmodel |
| Ultralytics エクスポート | 利用不可 | format=coreml で利用可能 |
| Apple ランタイム API | AIModel、InferenceFunction、および NDArray | MLModel (通常は VNCoreMLModel および VNCoreMLRequest を使用) |
| 変換ワークフロー | PyTorch torch.export through coreai-torch | coremltools を介した TorchScript 変換 |
| 主な焦点 | 最新のニューラルネットワークおよび生成 AI | ニューラルモデルや非ニューラルモデルを含む幅広い機械学習デプロイメント |
| 画像統合 | アプリケーション側でテンソルを準備するか、Core AI の画像記述子とバッファを使用 | 画像のサイズ変更、向き調整、リクエストのための Vision フレームワークとの直接統合 |
| ハードウェア | CPU、GPU、および Apple Neural Engine | CPU、GPU、および Apple Neural Engine |
| モデル準備 | インストール時または初回使用時の最適化、およびオプションの事前コンパイル | Xcode またはオンデバイスでのモデルコンパイル |
| カスタムオペレーション | カスタム Core AI lowering および Metal カーネル | Core ML カスタムレイヤーおよびサポートされている MIL オペレーション |
| デプロイメントの可用性 | 新しい Apple オペレーティングシステム世代。現在はベータ版 | 既存の Apple オペレーティングシステム全体での幅広いサポート |
| Ultralytics iOS および Flutter SDK | 未サポート | フルサポート |
幅広いデバイス対応、Vision フレームワークとの統合、あるいは決定木や表形式パイプラインなどのモデルタイプが必要な場合には、引き続き Core ML が適切な選択肢です。Apple は引き続き Core ML をサポートしており、非ニューラルモデルタイプを使用する開発者に対しては Core ML を推奨しています。
Core AI 形式の仕組み#
Core AI のオーサリングワークフローは、PyTorch モデルから開始されます。
PyTorch model
↓ torch.export
ExportedProgram
↓ coreai-torch
Core AI program
↓ optimize and save
.aimodel
↓ specialize or compile ahead of time
Apple silicon executableApple の coreai-torch パッケージは、PyTorch ATen オペレーションを Core AI オペレーションに変換(lowering)することで torch.export.ExportedProgram を変換します。サポートされていないオペレーションは、カスタム lowering またはカスタム Metal カーネルを使用して実装できます。
生成された .aimodel は、非最適化モデルアセットです。アプリケーションがモデルを準備する際、Core AI は対象デバイスに合わせて最適化を行います。アプリケーションは、初回使用時にこれを実行させるか、事前に最適化をリクエストするか、あるいは事前コンパイル済みモデルを出荷することで初期ロード時間を短縮することができます。
Swift では、アプリケーションは Core AI フレームワークでアセットをロードし、推論関数を選択し、型指定された NDArray 入力を提供して、名前付き出力を受け取ります。これは Core ML モデルを Vision リクエストでラップする手法とは異なるため、Core AI の採用には .aimodel アセット向けに設計されたアプリケーションランタイムが必要です。
実装の詳細については、Apple の AIModel、モデルの最適化とキャッシュ、および モデルの事前コンパイル に関するドキュメントを参照してください。
今後の Ultralytics での利用#
以下の例は意図した統合を示すものであり、現在の Ultralytics リリースでは利用できません。現在サポートされている Apple 向けエクスポートには format=coreml を使用してください。
計画中の統合がリリースされた後、Python API では、専用のフォーマット値を使用して YOLO26 モデルを .aimodel にエクスポートできるようになる予定です。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreai") # Planned: creates yolo26n.aimodelこれに対応する計画中の CLI コマンドは以下の通りです。
yolo export model=yolo26n.pt format=coreai # Planned: not yet available最終的な引数、サポートされる YOLO タスク、精度オプション、および動的形状の挙動については、エクスポーターの実装と検証が完了した後に エクスポートモード で文書化されます。
iOS 27 または macOS 27 では、アプリケーションは Apple の Core AI Swift API を通じてエクスポートされたアセットをロードして実行します。以下の関数名とテンソル名は例示です。サポートされる Ultralytics の出力コントラクトは、エクスポーターと共に公開される予定です。
import CoreAI
let modelURL = Bundle.main.url(forResource: "yolo26n", withExtension: "aimodel")!
let model = try await AIModel(contentsOf: modelURL)
guard let function = try model.loadFunction(named: "main") else {
throw AppError.missingInferenceFunction
}
let outputs = try await function.run(inputs: ["image": imageTensor])現在の Core ML および Vision ワークフロー とは異なり、今後の Core AI パスでは、画像の前処理、NDArray の構築、モデルメタデータ、および出力のデコードを Ultralytics iOS SDK 内で定義する必要があります。Apple は現在の API の詳細を Core AI フレームワークドキュメント に、動作するモデルの例を Core AI models リポジトリ に提供しています。
Core AI の利点#
Core AI は、将来の Ultralytics デプロイメントに向けて、いくつかの期待できる利点を提供します。
- 最新の PyTorch エクスポートパス: 変換は
torch.exportから開始され、多くの既存エクスポーターで使用されているトレースワークフローよりも表現力の高い PyTorch グラフを保持します。 - 詳細なランタイム制御: アプリケーションは、最適化、コンパイル済みモデルキャッシュ、推論関数、メモリ、および演算配置を管理できます。
- 高度なモデルサポート: ステートフルな実行、動的形状、単一成果物内での複数関数、およびカスタム Metal カーネルは、最新のビジョンおよび生成アーキテクチャ向けに設計されています。
- 専用の開発者ツール: Core AI Debugger はグラフやテンソル値を検査し、元の Python コードまでトレースバックできます。Xcode と Instruments はランタイムプロファイリングを提供します。
- ゼロコピーの機会: Core AI は、カメラ、グラフィックス、推論ワークロード間でのコピーを削減することを目的としたストレージおよびバッファ制御を公開しています。
- Apple シリコンの最適化: デバイス固有の最適化により、Apple は特定のデバイスで使用可能な CPU、GPU、および Neural Engine に合わせてモデルを最適化できます。
- 柔軟な圧縮: Apple の Core AI Optimization ツールは、量子化、パレット化、およびプルーニング(低ビット重み形式を含む)をサポートしています。
これらの機能は、動的実行を伴う将来の YOLO モデルや、より大きなマルチモーダルコンポーネント、または既存の Core ML オペレーションに明確にマッピングできないカスタムオペレーションにとって特に有用である可能性があります。
現在の欠点と制限#
Core AI は現時点では、プロダクション環境における Core ML パスの代替ではありません。
- 新しいオペレーティングシステムが必要: パブリックフレームワークは iOS 27 および macOS 27 世代をターゲットとしていますが、Core ML はより大規模なインストールベースをサポートしています。
- ベータソフトウェア: Apple の Core AI フレームワークおよび Python ツールチェーンの一部はまだ予備段階であり、安定版リリースまでに変更される可能性があります。
- より狭いエクスポート環境:
coreai-torchは現在 Python 3.11 以降と最新の PyTorch バージョンを必要としており、これは Ultralytics がサポートする Python および PyTorch の範囲よりも大幅に限定されています。 - 現在の Ultralytics コマンドなし:
yolo export format=coreaiは実装されておらず、テストもされておらず、Ultralytics の互換性保証の対象外です。 - Ultralytics アプリケーションランタイムが未対応: 公式の YOLO iOS アプリ および Flutter プラグイン は、現在
MLModelと Vision を通じて Core ML 成果物をロードしています。 - アプリケーション移行が必要:
.aimodelを.mlpackageの代わりに使用することはできません。モデルのロード、前処理、推論呼び出し、メタデータ処理、出力デコードには Core AI の実装が必要です。 - プロダクションでの実績不足: パフォーマンス、消費電力、初回実行時の最適化時間、精度、および圧縮については、サポート対象の YOLO タスクとデバイスのマトリックス全体で検証が必要です。
- 確立されたレガシー NMS パイプラインがない: Core ML は、古い YOLO 検出モデル用に NMS ステージをパッケージ化できます。最初の Core AI 統合は、NMS を必要としない YOLO26 モデルに焦点を当てることが予想されます。
どちらの Apple 形式を使用すべきか?#
以下が必要な場合は、現在 Core ML を使用してください。
- サポートされている Ultralytics エクスポートコマンド
- 現在および旧世代の Apple オペレーティングシステムでのデプロイメント
- Ultralytics iOS または Flutter SDK との統合
- Vision フレームワークによる画像処理
- テスト済みの FP16 および INT8 YOLO デプロイメント
- 互換性のあるレガシー検出モデル向けの組み込み NMS
iOS 27 または macOS 27 が必要であり、以下が必要な場合は 将来 Core AI を評価してください。
- 最新の Apple オンデバイスニューラルネットワークランタイム
- 明示的な最適化とキャッシュ管理
- 高度な動的またはステートフルなモデル実行
- カスタム Core AI オペレーションまたは Metal カーネル
- 詳細な Core AI グラフデバッグおよびランタイムプロファイリング
アプリケーションが移行を行う間、Core ML と Core AI は共存することが予想されます。Core AI をサポートしても、デプロイメントターゲットとアプリケーションコントラクトが異なるため、直ちに Core ML の必要性がなくなるわけではありません。
Ultralytics ロードマップ#
Ultralytics は専用の coreai エクスポートターゲットを評価中です。計画や可用性についてはリンクされたロードマップとリリースノートをご確認ください。Core ML は引き続きサポートされる Apple デプロイメントターゲットです。
Core AI がサポートされるエクスポート形式になる前に、統合には以下が必要です。
- 検出、インスタンスセグメンテーション、セマンティックセグメンテーション、分類、ポーズ、および指向性バウンディングボックス全体でのエクスポートと数値検証。
- PyTorch および Core ML ベースラインに対する FP16 および量子化精度のテスト。
- オンデバイスでのレイテンシ、メモリ、消費電力、および最適化のベンチマーク。
- Ultralytics iOS SDK における Core AI モデルのロードと前処理。
- Flutter 統合および iOS 27 未満のデバイスに対する互換性戦略。
- 安定した Apple フレームワークおよび変換ツールのリリース。
可用性については Ultralytics ロードマップ およびリリースノートを確認してください。サポートが開始されるまで、.aimodel ファイルを生成するコマンドやサードパーティのパッチは実験的なものであり、Ultralytics のサポート対象外です。
追加リソース#
- Apple Core AIの概要
- Core AIフレームワークドキュメント
- Core AI PyTorch拡張
- Core AI最適化
- Apple Core AIモデルリポジトリ
- Ultralytics Core ML統合
よくある質問 (FAQ)#
Ultralytics で YOLO モデルを .aimodel にエクスポートできますか?#
No. Ultralytics exports Apple models as Core ML .mlpackage files through model.export(format="coreml", imgsz=640) (imgsz=224 for classification); .aimodel is not an export target.
Core AIはCore MLに代わるものですか?#
すぐには代わりません。Core AIはAppleによる現代的なニューラルネットワークのための新しい手法ですが、Core MLは引き続きサポートされており、より広範なOSサポート、Visionとの統合、およびニューラルネットワーク以外のモデルへの対応を提供しています。
.mlpackageを.aimodelに名前変更できますか?#
いいえ。これらは異なるモデル表現を含んでおり、それぞれ異なるフレームワークによって読み込まれます。変換は、適切なAppleのツールチェーンを使用してソースモデルから行う必要があります。
UltralyticsのCore AI統合はformat=coremlに取って代わりますか?#
初期の統合はCore MLと共存する見込みです。将来的な置き換えの決定は、OSでの採用状況、ツールの安定性、パフォーマンス、そしてiOSやFlutterでのサポート状況に依存します。