YOLO Vision 2026:

Integración de Apple Core AI#

La exportación a Core AI requiere macOS 26 o posterior en Apple silicon

coreai-core publica únicamente wheels macosx_26_0_arm64, por lo que la exportación se ejecuta en Mac con Apple silicon. El .aimodel exportado se ejecuta en iOS 27 y macOS 27. Los SDK de iOS y Flutter de Ultralytics todavía no cargan recursos .aimodel; usa Core ML para esos casos.

Core AI es el nuevo framework de Apple para ejecutar redes neuronales directamente en Apple silicon. Introduce el formato de modelo .aimodel, una API de inferencia moderna para Swift, herramientas de conversión basadas en PyTorch, compilación anticipada, especialización de modelos y herramientas específicas de depuración y creación de perfiles.

Apple describe Core AI como la siguiente evolución de la ejecución de IA en el dispositivo y el framework de inferencia en el que se basa Apple Intelligence en el dispositivo. Está diseñado para arquitecturas de redes neuronales actuales, desde modelos de visión compactos hasta grandes modelos generativos, y puede planificar el trabajo entre la CPU, la GPU y Apple Neural Engine (ANE).

Core AI es una nueva vía de despliegue, no un nuevo nombre para Core ML. Los frameworks utilizan formatos de modelo, herramientas de conversión, API de ejecución y patrones de integración en aplicaciones diferentes.

Comparación entre Core AI y Core ML#

CapacidadCore AICore ML
Recurso del modelo.aimodel.mlpackage o .mlmodel
Exportación de UltralyticsDisponible con format=coreaiDisponible con format=coreml
API de ejecución de AppleAIModel, InferenceFunction y NDArrayMLModel, normalmente mediante VNCoreMLModel y VNCoreMLRequest
Flujo de conversiónPyTorch torch.export mediante coreai-torchConversión de TorchScript mediante coremltools
Enfoque principalRedes neuronales modernas e IA generativaDespliegue amplio de aprendizaje automático, incluidos modelos neuronales y no neuronales
Integración de imágenesLas aplicaciones preparan tensores o utilizan descriptores y búferes de imágenes de Core AIIntegración directa con el framework Vision para el escalado, la orientación y las solicitudes de imágenes
HardwareCPU, GPU y Apple Neural EngineCPU, GPU y Apple Neural Engine
Preparación del modeloEspecialización durante la instalación o el primer uso, con compilación anticipada opcionalCompilación del modelo con Xcode o en el dispositivo
Operaciones personalizadasLowerings personalizados de Core AI y kernels de MetalCapas personalizadas de Core ML y operaciones MIL compatibles
Disponibilidad para el despliegueNueva generación de sistemas operativos de Apple; actualmente en betaAmplio soporte en los sistemas operativos existentes de Apple
SDK de iOS y Flutter de UltralyticsTodavía no compatibleTotalmente compatible

Core ML sigue siendo la opción adecuada cuando una aplicación necesita una amplia cobertura de dispositivos, integración con el framework Vision o tipos de modelos como árboles de decisión y pipelines tabulares. Apple sigue dando soporte a Core ML y dirige a los desarrolladores con tipos de modelos no neuronales hacia esta opción.

Cómo funciona el formato de Core AI#

El flujo de creación de Core AI parte de un modelo de PyTorch:

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

El paquete coreai-torch de Apple convierte un torch.export.ExportedProgram reduciendo las operaciones ATen de PyTorch a operaciones de Core AI. Las operaciones no compatibles pueden implementarse con un lowering personalizado o un kernel de Metal personalizado.

El .aimodel resultante es un recurso de modelo no especializado. Cuando una aplicación prepara el modelo, Core AI lo especializa para el dispositivo de destino. Las aplicaciones pueden permitir que esto ocurra durante el primer uso, solicitar la especialización antes o incluir un modelo compilado de forma anticipada para reducir el tiempo de carga inicial.

En Swift, las aplicaciones cargan el recurso con el framework Core AI, seleccionan una función de inferencia, proporcionan entradas tipadas NDArray y reciben salidas con nombre. Esto es diferente de envolver un modelo de Core ML en una solicitud de Vision, por lo que adoptar Core AI requiere un entorno de ejecución de la aplicación diseñado para recursos .aimodel.

Para conocer los detalles de implementación, consulta la documentación de Apple sobre AIModel, la especialización y el almacenamiento en caché de modelos y la compilación anticipada.

Exportación de modelos YOLO26 a Core AI#

Ejemplo
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")

Para consultar la lista completa de argumentos, visita Modo de exportación. El grafo es estático: se traza en el imgsz proporcionado a export, así que debes predecir con ese mismo tamaño. Los metadatos de Ultralytics viajan dentro del metadata.json propio del recurso, por lo que los nombres de las clases, el stride y la tarea se conservan durante todo el proceso.

Elección de la cabeza#

Con nms=False, YOLO26 exporta su cabecera de extremo a extremo, que selecciona las detecciones dentro del grafo. Core AI no tiene ninguna primitiva top-k, por lo que esa selección se reduce a una ordenación completa y se le cobra un coste fijo en el límite de partición de la Apple Neural Engine: unos 1,7 ms, independientemente de max_det. Exportar con nms=None emite en su lugar las predicciones (1, 84, 8400) sin procesar y deja la supresión de no máximos al predictor:

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

En un iPhone 17 Pro con iOS 27.0, YOLO26n a 640 mide 3,01 ms con la cabecera en el grafo y 1,28 ms sin ella (FP16, compilado con antelación, tres bloques intercalados de 50 iteraciones). Ambos realizan el viaje de ida y vuelta a través de YOLO(...) para la inferencia. Usa nms=False cuando una sola llamada al grafo deba devolver detecciones finalizadas, o mantén el valor predeterminado de nms=None para la NMS externa.

En iOS 27 o macOS 27, una aplicación cargaría y ejecutaría entonces el recurso exportado mediante la API Swift de Core AI de Apple. Los recursos exportados utilizan el punto de entrada main, aceptan una única entrada images con forma [batch, 3, imgsz, imgsz] y devuelven output0:

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])

A diferencia del actual flujo de trabajo de Core ML y Vision, la futura ruta de Core AI deberá definir el preprocesamiento de imágenes, la construcción de NDArray, los metadatos del modelo y la decodificación de salidas en el SDK de iOS de Ultralytics. Apple proporciona los detalles actuales de la API en la documentación del framework Core AI y ejemplos de modelos funcionales en el repositorio de modelos de Core AI.

Ventajas de Core AI#

Core AI ofrece varias ventajas prometedoras para el futuro despliegue de Ultralytics:

  • Ruta de exportación moderna de PyTorch: la conversión comienza a partir de torch.export, conservando un grafo de PyTorch más expresivo que el flujo de trazado utilizado por muchos exportadores existentes.
  • Control detallado del entorno de ejecución: las aplicaciones pueden gestionar la especialización, las cachés de modelos compilados, las funciones de inferencia, la memoria y la asignación del cómputo.
  • Compatibilidad avanzada con modelos: la ejecución con estado, las formas dinámicas, varias funciones en un único recurso y los kernels de Metal personalizados están diseñados para arquitecturas modernas de visión y generativas.
  • Herramientas específicas para desarrolladores: Core AI Debugger puede inspeccionar grafos y valores de tensores y rastrearlos hasta el código Python de origen. Xcode e Instruments proporcionan creación de perfiles del entorno de ejecución.
  • Posibilidades de copia cero: Core AI expone controles de almacenamiento y búferes destinados a reducir las copias entre las cargas de trabajo de cámara, gráficos e inferencia.
  • Optimización para Apple silicon: la especialización del dispositivo permite a Apple optimizar un modelo para la CPU, la GPU y Neural Engine disponibles en el dispositivo concreto.
  • Compresión flexible: las herramientas de optimización Core AI de Apple admiten cuantización, paletización y poda, incluidos formatos de pesos de pocos bits.

Estas capacidades podrían resultar especialmente útiles para futuros modelos YOLO con ejecución dinámica, componentes multimodales de mayor tamaño u operaciones personalizadas que no se adapten bien a las operaciones de Core ML existentes.

Desventajas y limitaciones actuales#

Actualmente, Core AI no sustituye a la ruta de Core ML para producción:

  • Se requieren sistemas operativos nuevos: el framework público está dirigido a la generación de iOS 27 y macOS 27, mientras que Core ML es compatible con una base instalada mucho mayor.
  • Software beta: el framework Core AI de Apple y partes de su toolchain de Python siguen siendo preliminares y pueden cambiar antes de sus versiones estables.
  • Entorno de exportación más limitado: coreai-torch requiere actualmente Python 3.11 o posterior, pero inferior a 3.14, además de versiones recientes de PyTorch, un rango mucho más limitado que el de Python y PyTorch compatibles con Ultralytics.
  • La exportación solo se ejecuta en macOS: coreai-core publica únicamente wheels macosx_26_0_arm64, por lo que format=coreai necesita un Mac con Apple silicon y macOS 26 o posterior.
  • Todavía no hay un entorno de ejecución de aplicaciones de Ultralytics: la aplicación oficial YOLO para iOS y el plugin de Flutter cargan actualmente recursos de Core ML mediante MLModel y Vision.
  • Es necesario migrar la aplicación: un .aimodel no puede sustituirse por un .mlpackage; la carga del modelo, el preprocesamiento, las llamadas de inferencia, la gestión de metadatos y la decodificación de salidas requieren una implementación de Core AI.
  • Evidencia limitada en producción: es necesario validar el rendimiento, el consumo energético, el tiempo de especialización durante la primera ejecución, la precisión y la compresión en toda la matriz de tareas y dispositivos compatibles con YOLO.
  • Tubería sin NMS: Core ML puede empaquetar una etapa de NMS para modelos de detección YOLO más antiguos. Core AI exporta predicciones de uno a muchos sin procesar de forma predeterminada; usa nms=False para la cabecera sin NMS de YOLO26. La NMS incrustada (nms=True) y dynamic=True no son compatibles. coreai-torch no tiene ninguna reducción para torchvision::nms, por lo que la NMS permanece en el host.
  • Tamaño de entrada fijo: el grafo exportado se traza con un único imgsz y no tiene formas dinámicas, así que debes predecir con el tamaño con el que se exportó.
  • Los recursos FP16 pueden provocar un aborto durante la carga: algunos recursos .aimodel FP16 no consiguen cargar su programa de Apple Neural Engine y MPSGraph genera una aserción fallida, lo que termina el proceso en lugar de aplicar una alternativa. Esto ocurre dentro del entorno de ejecución de Apple, antes de que se ejecute cualquier código de Ultralytics, y el mismo recurso se carga con una especialización exclusiva para CPU. Prefiere FP32 hasta que se solucione en el upstream.

¿Qué formato de Apple debes usar?#

Usa Core ML hoy cuando necesites:

  • Despliegue en sistemas operativos de Apple actuales y antiguos
  • Integración con el SDK de iOS o Flutter de Ultralytics
  • Gestión de imágenes con el framework Vision
  • Despliegue de YOLO en FP16 e INT8 probado
  • NMS integrado para modelos de detección heredados compatibles

Evalúa Core AI cuando puedas exigir iOS 27 o macOS 27 y necesites:

  • El runtime de redes neuronales en el dispositivo más reciente de Apple
  • Gestión explícita de la especialización y la caché
  • Ejecución avanzada de modelos dinámicos o con estado
  • Operaciones personalizadas de Core AI o kernels de Metal
  • Depuración detallada de grafos de Core AI y creación de perfiles del entorno de ejecución

Se espera que Core ML y Core AI coexistan mientras las aplicaciones realizan la transición. Dar soporte a Core AI no elimina de inmediato la necesidad de Core ML, porque sus objetivos de despliegue y contratos de aplicación son diferentes.

Hoja de ruta de Ultralytics#

El destino de exportación específico coreai ya está implementado: la exportación y la validación numérica cubren los modelos de tareas YOLO26 compatibles y se ejecutan continuamente en la CI de Ultralytics en macOS 26; además, la latencia FP16 se mide en el dispositivo. Estos son los elementos restantes de la hoja de ruta antes de que Core AI alcance la paridad con la ruta de Core ML:

  1. Carga de modelos y preprocesamiento de Core AI en el SDK de iOS de Ultralytics.
  2. Integración con Flutter y una estrategia de compatibilidad para dispositivos con versiones anteriores a iOS 27.
  3. Versiones estables del framework de Apple y de las herramientas de conversión (la generación de iOS 27 y macOS 27 se encuentra actualmente en beta).
  4. Pruebas de memoria, consumo energético y especialización en toda la matriz de dispositivos compatibles.

Core ML sigue siendo el destino recomendado para las aplicaciones que necesitan el SDK de iOS o Flutter de Ultralytics o compatibilidad con versiones anteriores a iOS 27; consulta la hoja de ruta de Ultralytics y las notas de la versión para conocer los elementos restantes.

Recursos adicionales#

Preguntas frecuentes#

  • Sí. Exporta con model.export(format="coreai") o yolo export format=coreai en un Mac con silicio de Apple que ejecute macOS 26 o posterior; el .aimodel exportado se ejecuta en iOS 27 y macOS 27. Para los SDK de iOS y Flutter de Ultralytics, y para sistemas operativos anteriores a esa generación, exporta archivos .mlpackage de Core ML con format="coreml".

  • No de inmediato. Core AI es la vía más reciente de Apple para las redes neuronales modernas, mientras que Core ML sigue siendo compatible y ofrece una cobertura más amplia de sistemas operativos, integración con Vision y compatibilidad con modelos no neuronales.

  • No. Contienen representaciones de modelo diferentes y los cargan frameworks distintos. La conversión debe comenzar con el modelo de origen mediante la cadena de herramientas de Apple adecuada.

  • Se espera que la integración inicial coexista con Core ML. Cualquier decisión de sustitución futura dependerá de la adopción de los sistemas operativos, la estabilidad de las herramientas, el rendimiento y la compatibilidad posterior con iOS y Flutter.

Colaboradores
GLglenn-jocher3DADaisuke Majima1

Comentarios