Integrazione Apple Core AI#
Ultralytics non supporta format=coreai o l'esportazione diretta nel formato .aimodel di Apple. Usa la Core ML integration supportata per il deployment su Apple.
Core AI è il nuovo framework di Apple per eseguire reti neurali direttamente su Apple silicon. Introduce il formato di modello .aimodel, una moderna API di inferenza Swift, strumenti di conversione basati su PyTorch, compilazione ahead-of-time, specializzazione dei modelli e strumenti dedicati di debugging e profilazione.
Apple descrive Core AI come la prossima evoluzione dell'esecuzione AI on-device e il framework di inferenza alla base di Apple Intelligence on-device. È progettato per le attuali architetture di reti neurali, dai modelli di visione compatti ai grandi modelli generativi, e può pianificare il lavoro su CPU, GPU e Apple Neural Engine (ANE).
Core AI è un nuovo percorso di deployment, non un nuovo nome per Core ML. I framework utilizzano formati di modello, strumenti di conversione, API di runtime e pattern di integrazione dell'applicazione differenti.
Confronto tra Core AI e Core ML#
| Capacità | Core AI | Core ML |
|---|---|---|
| Artefatto del modello | .aimodel | .mlpackage o .mlmodel |
| Esportazione Ultralytics | Non disponibile | Disponibile con format=coreml |
| API di runtime Apple | AIModel, InferenceFunction e NDArray | MLModel, spesso tramite VNCoreMLModel e VNCoreMLRequest |
| Workflow di conversione | torch.export di PyTorch tramite coreai-torch | Conversione TorchScript tramite coremltools |
| Focus principale | Reti neurali moderne e AI generativa | Deployment ampio di machine learning, inclusi modelli neurali e non |
| Integrazione immagini | Le applicazioni preparano i tensori o utilizzano descrittori e buffer di immagini Core AI | Integrazione diretta con il framework Vision per ridimensionamento, orientamento e richieste di immagini |
| Hardware | CPU, GPU e Apple Neural Engine | CPU, GPU e Apple Neural Engine |
| Preparazione del modello | Specializzazione all'installazione o al primo utilizzo, con compilazione ahead-of-time opzionale | Compilazione del modello in Xcode o on-device |
| Operazioni personalizzate | Lowering personalizzati Core AI e kernel Metal | Layer personalizzati Core ML e operazioni MIL supportate |
| Disponibilità del deployment | Nuova generazione del sistema operativo Apple; attualmente beta | Ampio supporto su tutti i sistemi operativi Apple esistenti |
| SDK iOS e Flutter di Ultralytics | Non ancora supportato | Pienamente supportato |
Core ML rimane la scelta appropriata quando un'applicazione necessita di un'ampia copertura di dispositivi, integrazione con il framework Vision o tipi di modelli come alberi di decisione e pipeline tabulari. Apple continua a supportare Core ML e vi indirizza gli sviluppatori che utilizzano tipi di modelli non neurali.
Come funziona il formato Core AI#
Il workflow di authoring Core AI parte da un modello PyTorch:
PyTorch model
↓ torch.export
ExportedProgram
↓ coreai-torch
Core AI program
↓ optimize and save
.aimodel
↓ specialize or compile ahead of time
Apple silicon executableIl pacchetto coreai-torch di Apple converte un torch.export.ExportedProgram abbassando le operazioni ATen di PyTorch in operazioni Core AI. Le operazioni non supportate possono essere implementate con un lowering personalizzato o un kernel Metal personalizzato.
Il .aimodel risultante è un asset di modello non specializzato. Quando un'applicazione prepara il modello, Core AI lo specializza per il dispositivo di destinazione. Le applicazioni possono lasciare che ciò avvenga al primo utilizzo, richiedere la specializzazione prima o distribuire un modello compilato ahead-of-time per ridurre il tempo di caricamento iniziale.
In Swift, le applicazioni caricano l'asset con il framework Core AI, selezionano una funzione di inferenza, forniscono input NDArray tipizzati e ricevono output denominati. Questo è diverso dal racchiudere un modello Core ML in una richiesta Vision, quindi l'adozione di Core AI richiede un runtime dell'applicazione progettato per gli asset .aimodel.
Per i dettagli sull'implementazione, consulta la documentazione di Apple per AIModel, model specialization and caching e ahead-of-time compilation.
Futuro utilizzo di Ultralytics#
I seguenti esempi illustrano l'integrazione prevista e non sono disponibili nell'attuale release di Ultralytics. Usa format=coreml per un export Apple supportato oggi.
Dopo il rilascio dell'integrazione pianificata, si prevede che la Python API esporti un modello YOLO26 in .aimodel con un valore di formato dedicato:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreai") # Planned: creates yolo26n.aimodelIl comando CLI equivalente pianificato è:
yolo export model=yolo26n.pt format=coreai # Planned: not yet availableGli argomenti finali, i YOLO tasks supportati, le opzioni di precisione e il comportamento delle forme dinamiche saranno documentati in Export mode dopo che l'esporter sarà stato implementato e convalidato.
Su iOS 27 o macOS 27, un'applicazione caricherebbe ed eseguirebbe quindi l'asset esportato tramite l'API Swift Core AI di Apple. I nomi delle funzioni e dei tensori sottostanti sono illustrativi; il contratto di output Ultralytics supportato sarà pubblicato con l'exporter:
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])A differenza dell'attuale Core ML and Vision workflow, il futuro percorso Core AI dovrà definire il preprocessing delle immagini, la costruzione di NDArray, i metadati del modello e la decodifica degli output nell'Ultralytics iOS SDK. Apple fornisce i dettagli attuali delle API nella Core AI framework documentation e modelli di lavoro di esempio nel Core AI models repository.
Vantaggi di Core AI#
Core AI offre diversi vantaggi promettenti per il futuro deployment di Ultralytics:
- Percorso di export PyTorch moderno: La conversione parte da
torch.export, preservando un grafo PyTorch più espressivo rispetto al flusso di lavoro di tracciamento utilizzato da molti esportatori esistenti. - Controllo granulare del runtime: Le applicazioni possono gestire la specializzazione, le cache dei modelli compilati, le funzioni di inferenza, la memoria e il posizionamento del calcolo.
- Supporto avanzato ai modelli: L'esecuzione con stato, le forme dinamiche, molteplici funzioni in un unico artefatto e i kernel Metal personalizzati sono progettati per moderne architetture di visione e generative.
- Strumenti di sviluppo dedicati: Il Debugger di Core AI può ispezionare grafi e valori dei tensori e tracciarli fino al codice Python di origine. Xcode e Instruments forniscono la profilazione del runtime.
- Opportunità zero-copy: Core AI espone controlli di archiviazione e buffer destinati a ridurre le copie tra i carichi di lavoro di fotocamera, grafica e inferenza.
- Ottimizzazione per Apple silicon: La specializzazione del dispositivo consente ad Apple di ottimizzare un modello per CPU, GPU e Neural Engine disponibili sullo specifico dispositivo.
- Compressione flessibile: Gli strumenti di ottimizzazione Core AI di Apple supportano quantizzazione, palettizzazione e pruning, inclusi formati di peso a bit ridotto.
Queste funzionalità potrebbero essere particolarmente utili per i futuri modelli YOLO con esecuzione dinamica, componenti multimodali più grandi o operazioni personalizzate che non si mappano in modo pulito alle operazioni Core ML esistenti.
Svantaggi e limitazioni attuali#
Core AI non è attualmente un sostituto per il percorso di produzione Core ML:
- Richiesti nuovi sistemi operativi: Il framework pubblico punta alla generazione iOS 27 e macOS 27, mentre Core ML supporta una base installata molto più ampia.
- Software beta: Il framework Core AI di Apple e parti della sua toolchain Python sono ancora preliminari e potrebbero cambiare prima delle loro release stabili.
- Ambiente di export più ristretto:
coreai-torchrichiede attualmente Python 3.11 o versioni successive e versioni recenti di PyTorch, che è un intervallo molto più ristretto rispetto a quello di Python e PyTorch supportato da Ultralytics. - Nessun comando Ultralytics attuale:
yolo export format=coreainon è implementato, testato o coperto dalle garanzie di compatibilità di Ultralytics. - Nessun runtime dell'applicazione Ultralytics ancora disponibile: L'officiale YOLO iOS app e Flutter plugin caricano attualmente gli artefatti Core ML tramite
MLModele Vision. - Migrazione dell'applicazione richiesta: Un
.aimodelnon può essere sostituito a un.mlpackage; il caricamento del modello, il preprocessing, le chiamate di inferenza, la gestione dei metadati e la decodifica dell'output richiedono un'implementazione Core AI. - Evidenza di produzione limitata: Prestazioni, consumo energetico, tempo di specializzazione al primo avvio, precisione e compressione necessitano di convalida attraverso la matrice di task YOLO e dispositivi supportati.
- Nessuna pipeline NMS legacy stabilita: Core ML può impacchettare uno stadio NMS per modelli di rilevamento YOLO più vecchi. La prima integrazione Core AI dovrebbe concentrarsi sui modelli YOLO26 senza NMS.
Quale formato Apple dovresti usare?#
Usa Core ML oggi quando hai bisogno di:
- Un comando di esportazione Ultralytics supportato
- Deployment su sistemi operativi Apple attuali e meno recenti
- Integrazione con l'SDK iOS o Flutter di Ultralytics
- Gestione delle immagini con framework Vision
- Deployment YOLO testato con FP16 e INT8
- NMS integrato per modelli di rilevamento legacy compatibili
Valuta Core AI in futuro quando potrai richiedere iOS 27 o macOS 27 e avrai bisogno di:
- Il più recente runtime per reti neurali on-device di Apple
- Specializzazione esplicita e gestione della cache
- Esecuzione avanzata di modelli dinamici o con stato
- Operazioni personalizzate Core AI o kernel Metal
- Debug dettagliato dei grafi Core AI e profilazione del runtime
Si prevede che Core ML e Core AI coesisteranno durante la transizione delle applicazioni. Supportare Core AI non rimuove immediatamente la necessità di Core ML poiché i loro target di deployment e i contratti applicativi differiscono.
Roadmap di Ultralytics#
Ultralytics sta valutando un target di export coreai dedicato. Segui la roadmap collegata e le note di rilascio per i piani e la disponibilità; Core ML rimane il target di deployment Apple supportato.
Prima che Core AI possa diventare un formato di esportazione supportato, l'integrazione necessita di:
- Esportazione e convalida numerica attraverso rilevamento, segmentazione di istanze, segmentazione semantica, classificazione, pose e bounding box orientati.
- Test di accuratezza FP16 e quantizzati rispetto alle baseline PyTorch e Core ML.
- Benchmark su dispositivo per latenza, memoria, consumo energetico e specializzazione.
- Caricamento del modello Core AI e pre-processing nell'SDK iOS di Ultralytics.
- Integrazione Flutter e una strategia di compatibilità per dispositivi inferiori a iOS 27.
- Release stabili del framework Apple e degli strumenti di conversione.
Segui l'Ultralytics roadmap e le note di rilascio per la disponibilità. Fino a quando il supporto non sarà rilasciato, i comandi o le patch di terze parti che producono file .aimodel sono sperimentali e al di fuori della matrice di export Ultralytics supportata.
Risorse aggiuntive#
- Apple Core AI overview
- Core AI framework documentation
- Core AI PyTorch Extensions
- Core AI Optimization
- Apple Core AI models repository
- Ultralytics Core ML integration
FAQ#
No. Ultralytics esporta i modelli Apple come file Core ML
.mlpackagetramitemodel.export(format="coreml", imgsz=640)(imgsz=224per la classificazione);.aimodelnon è un target di export.Non nell'immediato. Core AI è il nuovo percorso di Apple per le reti neurali moderne, mentre Core ML rimane supportato e offre una copertura del sistema operativo più ampia, l'integrazione con Vision e il supporto per modelli non neurali.
No. Contengono rappresentazioni di modelli diverse e vengono caricati da framework differenti. La conversione deve iniziare dal modello sorgente attraverso l'apposita toolchain di Apple.
Si prevede che l'integrazione iniziale coesisterà con Core ML. Qualsiasi decisione di sostituzione futura dipenderà dall'adozione da parte del sistema operativo, dalla stabilità degli strumenti, dalle prestazioni e dal supporto a valle per iOS e Flutter.