YOLO Vision 2026:

Apple-Core-AI-Integration#

Der Core-AI-Export erfordert macOS 26 oder neuer auf Apple-Chips

coreai-core veröffentlicht ausschließlich macosx_26_0_arm64-Wheels, daher läuft der Export auf Macs mit Apple-Chip. Das exportierte .aimodel läuft unter iOS 27 und macOS 27. Die Ultralytics iOS- und Flutter-SDKs laden .aimodel-Assets derzeit noch nicht — verwende dafür Core ML.

Core AI ist Apples neues Framework, um neuronale Netze direkt auf Apple-Chips auszuführen. Es führt das Modellformat .aimodel, eine moderne Swift-Inferenz-API, PyTorch-basierte Konvertierungswerkzeuge, Kompilierung vor der Ausführung, Modellspezialisierung sowie dedizierte Werkzeuge zum Debuggen und Profiling ein.

Apple beschreibt Core AI als die nächste Entwicklungsstufe der geräteinternen KI-Ausführung und als Inferenz-Framework hinter der geräteinternen Apple Intelligence. Es ist für aktuelle neuronale Netzarchitekturen ausgelegt, von kompakten Bildverarbeitungsmodellen bis hin zu großen generativen Modellen, und kann die Arbeit auf CPU, GPU und Apple Neural Engine (ANE) verteilen.

Core AI ist ein neuer Bereitstellungspfad und keine neue Bezeichnung für Core ML. Die Frameworks verwenden unterschiedliche Modellformate, Konvertierungswerkzeuge, Laufzeit-APIs und Muster für die Integration in Anwendungen.

Core AI und Core ML im Vergleich#

FunktionCore AICore ML
Modellartefakt.aimodel.mlpackage oder .mlmodel
Ultralytics-ExportMit format=coreai verfügbarMit format=coreml verfügbar
Apple-Laufzeit-APIAIModel, InferenceFunction und NDArrayMLModel, häufig über VNCoreMLModel und VNCoreMLRequest
KonvertierungsworkflowPyTorch torch.export über coreai-torchTorchScript-Konvertierung über coremltools
SchwerpunktModerne neuronale Netze und generative KIBreit gefächerte Bereitstellung von Machine-Learning-Modellen, einschließlich neuronaler und nicht neuronaler Modelle
Integration von BildernAnwendungen bereiten Tensoren vor oder verwenden Core-AI-Bilddeskriptoren und -PufferDirekte Integration in das Vision-Framework für Bildskalierung, Ausrichtung und Anfragen
HardwareCPU, GPU und Apple Neural EngineCPU, GPU und Apple Neural Engine
ModellvorbereitungSpezialisierung bei der Installation oder der ersten Verwendung, mit optionaler Kompilierung vor der AusführungKompilierung des Modells mit Xcode oder auf dem Gerät
Benutzerdefinierte OperationenBenutzerdefinierte Core-AI-Lowerings und Metal-KernelsBenutzerdefinierte Core-ML-Schichten und unterstützte MIL-Operationen
Verfügbarkeit für die BereitstellungNeue Generation der Apple-Betriebssysteme; derzeit BetaBreite Unterstützung über bestehende Apple-Betriebssysteme hinweg
Ultralytics iOS- und Flutter-SDKsNoch nicht unterstütztVollständig unterstützt

Core ML bleibt die geeignete Wahl, wenn eine Anwendung eine breite Geräteabdeckung, die Integration in das Vision-Framework oder Modelltypen wie Entscheidungsbäume und tabellarische Pipelines benötigt. Apple unterstützt Core ML weiterhin und verweist Entwickler mit nicht neuronalen Modelltypen darauf.

Funktionsweise des Core-AI-Formats#

Der Core-AI-Erstellungsworkflow beginnt mit einem PyTorch-Modell:

PyTorch model
    ↓ torch.export
ExportedProgram
    ↓ coreai-torch
Core AI program
    ↓ optimize and save
.aimodel
    ↓ specialize or compile ahead of time
Apple silicon executable

Apples Paket coreai-torch konvertiert ein torch.export.ExportedProgram, indem es PyTorch-ATen-Operationen in Core-AI-Operationen überführt. Nicht unterstützte Operationen können mit einem benutzerdefinierten Lowering oder einem benutzerdefinierten Metal-Kernel implementiert werden.

Das daraus resultierende .aimodel ist ein nicht spezialisiertes Modell-Asset. Wenn eine Anwendung das Modell vorbereitet, spezialisiert Core AI es für das Zielgerät. Anwendungen können dies bei der ersten Verwendung geschehen lassen, die Spezialisierung früher anfordern oder ein vorab kompiliertes Modell ausliefern, um die anfängliche Ladezeit zu verkürzen.

In Swift laden Anwendungen das Asset mit dem Core-AI-Framework, wählen eine Inferenzfunktion aus, übergeben typisierte NDArray-Eingaben und erhalten benannte Ausgaben. Dies unterscheidet sich davon, ein Core-ML-Modell in eine Vision-Anfrage einzubetten. Die Einführung von Core AI erfordert daher eine für .aimodel-Assets ausgelegte Anwendungsumgebung.

Einzelheiten zur Implementierung findest du in Apples Dokumentation zu AIModel, zu Modellspezialisierung und Caching sowie zur Kompilierung vor der Ausführung.

YOLO26-Modelle nach Core AI exportieren#

Beispiel
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="coreai")  # creates 'yolo26n.aimodel'
model.export(format="coreai", quantize=16)  # FP16 asset

# Run the exported model
coreai_model = YOLO("yolo26n.aimodel")
results = coreai_model("https://ultralytics.com/images/bus.jpg")

Die vollständige Liste der Argumente findest du im Exportmodus. Der Graph ist statisch: Er wird bei der Übergabe von imgsz an export nachverfolgt, daher musst du bei derselben Größe vorhersagen. Die Ultralytics-Metadaten werden im eigenen metadata.json des Assets gespeichert, sodass Klassennamen, Stride und Aufgabe den Hin- und Rückweg überstehen.

Auswahl des Kopfes#

Mit nms=False exportiert YOLO26 seinen End-to-End-Kopf, der Erkennungen innerhalb des Graphen auswählt. Core AI besitzt kein Top-k-Primitiv, sodass diese Auswahl auf eine vollständige Sortierung heruntergebrochen wird und an der Partitionierungsgrenze der Apple Neural Engine mit Fixkosten von etwa 1,7 ms belastet wird – unabhängig von max_det. Das Exportieren mit nms=None gibt stattdessen die rohen (1, 84, 8400)-Vorhersagen aus und überlässt die Non-Maximum Suppression dem Prädiktor:

yolo export model=yolo26n.pt format=coreai nms=None quantize=16

Auf einem iPhone 17 Pro unter iOS 27.0 misst YOLO26n bei 640 3,01 ms mit dem Kopf im Graphen und 1,28 ms ohne diesen (FP16, Ahead-of-Time kompiliert, drei verschachtelte Blöcke mit je 50 Iterationen). Beide laufen für die Inferenz über YOLO(...). Nutze nms=False, wenn ein einzelner Graphaufruf fertige Erkennungen zurückgeben muss, oder behalte den Standardwert nms=None für externes NMS bei.

Unter iOS 27 oder macOS 27 würde eine Anwendung das exportierte Asset anschließend über Apples Core-AI-Swift-API laden und ausführen. Exportierte Assets verwenden den Einstiegspunkt main, erwarten eine einzelne images-Eingabe mit der Form [batch, 3, imgsz, imgsz] und geben output0 zurück:

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: ["images": imageTensor])

Im Gegensatz zum aktuellen Core-ML- und Vision-Workflow muss der künftige Core-AI-Pfad die Bildvorverarbeitung, die Erstellung von NDArray, die Modellmetadaten und die Ausgabedekodierung im Ultralytics iOS SDK definieren. Apple stellt aktuelle API-Details in der Dokumentation zum Core-AI-Framework und funktionierende Modellbeispiele im Core-AI-Modellrepository bereit.

Vorteile von Core AI#

Core AI bietet mehrere vielversprechende Vorteile für künftige Bereitstellungen mit Ultralytics:

  • Moderner PyTorch-Exportpfad: Die Konvertierung beginnt mit torch.export und bewahrt einen ausdrucksstärkeren PyTorch-Graphen als der in vielen bestehenden Exportern verwendete Tracing-Workflow.
  • Feingranulare Laufzeitsteuerung: Anwendungen können Spezialisierung, Caches für kompilierte Modelle, Inferenzfunktionen, Speicher und Rechenzuweisung verwalten.
  • Erweiterte Modellunterstützung: Zustandsbehaftete Ausführung, dynamische Formen, mehrere Funktionen in einem Artefakt und benutzerdefinierte Metal-Kernels sind für moderne Bildverarbeitungs- und generative Architekturen ausgelegt.
  • Dedizierte Entwicklerwerkzeuge: Der Core-AI-Debugger kann Graphen und Tensorwerte untersuchen und sie bis zum ursprünglichen Python-Code zurückverfolgen. Xcode und Instruments ermöglichen das Laufzeit-Profiling.
  • Möglichkeiten zur Vermeidung von Kopien: Core AI stellt Speicher- und Puffersteuerungen bereit, die Kopien zwischen Kamera-, Grafik- und Inferenzprozessen reduzieren sollen.
  • Optimierung für Apple-Chips: Die Gerätespezialisierung ermöglicht es Apple, ein Modell für die auf dem jeweiligen Gerät verfügbaren CPU-, GPU- und Neural-Engine-Ressourcen zu optimieren.
  • Flexible Komprimierung: Apples Core-AI-Optimierungswerkzeuge unterstützen Quantisierung, Palettierung und Pruning, einschließlich Gewichtsformaten mit geringer Bitbreite.

Diese Funktionen könnten für künftige YOLO-Modelle mit dynamischer Ausführung, größeren multimodalen Komponenten oder benutzerdefinierten Operationen, die sich nicht problemlos auf bestehende Core-ML-Operationen abbilden lassen, besonders nützlich sein.

Aktuelle Nachteile und Einschränkungen#

Core AI ist derzeit kein Ersatz für den produktiven Core-ML-Pfad:

  • Neue Betriebssysteme erforderlich: Das öffentliche Framework zielt auf die Generation von iOS 27 und macOS 27 ab, während Core ML eine deutlich größere installierte Basis unterstützt.
  • Beta-Software: Apples Core-AI-Framework und Teile seiner Python-Werkzeugkette befinden sich noch in einer frühen Phase und können sich vor den stabilen Veröffentlichungen ändern.
  • Engere Exportumgebung: coreai-torch erfordert derzeit Python 3.11 oder neuer, aber niedriger als 3.14, sowie aktuelle PyTorch-Versionen. Das ist deutlich enger als der von Ultralytics unterstützte Python- und PyTorch-Bereich.
  • Export läuft nur unter macOS: coreai-core veröffentlicht ausschließlich macosx_26_0_arm64-Wheels, daher benötigt format=coreai einen Mac mit Apple-Chip und macOS 26 oder neuer.
  • Noch keine Ultralytics-Laufzeit für Anwendungen: Die offizielle YOLO-iOS-App und das Flutter-Plugin laden Core-ML-Artefakte derzeit über MLModel und Vision.
  • Migration der Anwendung erforderlich: Ein .aimodel kann nicht durch ein .mlpackage ersetzt werden. Für das Laden des Modells, die Vorverarbeitung, Inferenzaufrufe, die Verarbeitung der Metadaten und die Ausgabedekodierung ist eine Core-AI-Implementierung erforderlich.
  • Begrenzte Erfahrungen aus dem Produktiveinsatz: Leistung, Energieverbrauch, Spezialisierungsdauer beim ersten Start, Genauigkeit und Komprimierung müssen über die unterstützte YOLO-Aufgaben- und Geräte-Matrix hinweg validiert werden.
  • Keine NMS-Pipeline: Core ML kann eine NMS-Stufe für ältere YOLO-Erkennungsmodelle verpacken. Core AI exportiert standardmäßig rohe One-to-Many-Vorhersagen; verwende nms=False für den NMS-freien Kopf von YOLO26. Eingebettetes NMS (nms=True) und dynamic=True werden nicht unterstützt. coreai-torch bietet kein Lowering für torchvision::nms, sodass NMS auf dem Host verbleibt.
  • Feste Eingabegröße: Der exportierte Graph wird bei einer imgsz nachverfolgt und verfügt über keine dynamischen Formen. Daher musst du bei der exportierten Größe vorhersagen.
  • FP16-Assets können beim Laden den Prozess abbrechen: Einige FP16-.aimodel-Assets können ihr Apple-Neural-Engine-Programm nicht laden, woraufhin MPSGraph eine fehlgeschlagene Assertion auslöst und der Prozess statt eines Fallbacks beendet wird. Dies geschieht innerhalb der Laufzeit von Apple, bevor Ultralytics-Code ausgeführt wird, und dasselbe Asset lässt sich mit einer Spezialisierung nur für die CPU laden. Verwende bevorzugt FP32, bis das Problem upstream behoben ist.

Welches Apple-Format solltest du verwenden?#

Verwende heute Core ML, wenn du Folgendes benötigst:

  • Bereitstellung unter aktuellen und älteren Apple-Betriebssystemen
  • Integration in das Ultralytics iOS- oder Flutter-SDK
  • Bildverarbeitung mit dem Vision-Framework
  • Getestete YOLO-Bereitstellung mit FP16 und INT8
  • Integriertes NMS für kompatible ältere Erkennungsmodelle

Evaluiere Core AI, wenn du iOS 27 oder macOS 27 voraussetzen kannst und Folgendes benötigst:

  • Die neueste geräteinterne neuronale Laufzeit von Apple
  • Explizite Steuerung von Spezialisierung und Caches
  • Erweiterte dynamische oder zustandsbehaftete Modellausführung
  • Benutzerdefinierte Core-AI-Operationen oder Metal-Kernels
  • Detailliertes Debugging von Core-AI-Graphen und Laufzeit-Profiling

Core ML und Core AI werden voraussichtlich nebeneinander bestehen, während Anwendungen umgestellt werden. Die Unterstützung von Core AI macht Core ML nicht unmittelbar überflüssig, da sich ihre Bereitstellungsziele und Anwendungsanforderungen unterscheiden.

Ultralytics-Roadmap#

Das dedizierte coreai-Exportziel ist implementiert: Export und numerische Validierung decken die unterstützten YOLO26-Aufgabenmodelle ab und werden kontinuierlich in der Ultralytics CI unter macOS 26 ausgeführt; außerdem wird die FP16-Latenz auf dem Gerät gemessen. Die verbleibenden Punkte der Roadmap, bevor Core AI mit dem Core-ML-Pfad gleichzieht:

  1. Laden von Core-AI-Modellen und Vorverarbeitung im Ultralytics iOS SDK.
  2. Flutter-Integration und eine Kompatibilitätsstrategie für Geräte unter iOS 27.
  3. Stabile Veröffentlichungen der Apple-Frameworks und Konvertierungswerkzeuge (die Generation von iOS 27 und macOS 27 befindet sich derzeit in der Beta-Phase).
  4. Benchmarks für Speicher, Energieverbrauch und Spezialisierung über die unterstützte Gerätematrix hinweg.

Core ML bleibt das empfohlene Ziel für Anwendungen, die das Ultralytics iOS- oder Flutter-SDK oder Unterstützung für Versionen unter iOS 27 benötigen. Folge der Ultralytics-Roadmap und den Versionshinweisen für die verbleibenden Punkte.

Weitere Ressourcen#

FAQ#

  • Ja. Exportiere mit model.export(format="coreai") oder yolo export format=coreai auf einem Apple-Silicon-Mac mit macOS 26 oder höher. Das exportierte .aimodel läuft unter iOS 27 und macOS 27. Für die Ultralytics iOS- und Flutter-SDKs sowie für Betriebssysteme vor dieser Generation exportierst du Core-ML-Dateien im Format .mlpackage mit format="coreml".

  • Nicht sofort. Core AI ist Apples neuerer Weg für moderne neuronale Netze, während Core ML weiterhin unterstützt wird und eine breitere Betriebssystemabdeckung, die Integration mit Vision sowie die Unterstützung nicht neuronaler Modelle bietet.

  • Nein. Sie enthalten unterschiedliche Modelldarstellungen und werden von verschiedenen Frameworks geladen. Die Konvertierung muss vom Quellmodell aus über die geeignete Apple-Werkzeugkette erfolgen.

  • Es wird erwartet, dass die erste Integration parallel zu Core ML bestehen bleibt. Jede künftige Entscheidung über einen Ersatz hängt von der Verbreitung der Betriebssysteme, stabilen Werkzeugen, der Leistung und der nachgelagerten Unterstützung für iOS und Flutter ab.

Mitwirkende
GLglenn-jocher3DADaisuke Majima1

Kommentare