Core ML — un framework de aprendizaje automático de Apple, optimizado para ejecutar modelos ML directamente en dispositivos iOS, macOS, watchOS y tvOS. A diferencia de los servicios ML en la nube, Core ML utiliza los aceleradores de hardware de Apple: Neural Engine, GPU y CPU, garantizando una latencia mínima al procesar datos. Según Apple Core ML Documentation (2026), el framework admite modelos PyTorch, TensorFlow y Create ML en el formato unificado .mlpackage con un tiempo de inferencia promedio de 5–50 ms.
Puntos Clave
Core ML es un framework de aprendizaje automático presentado por Apple en la WWDC 2017 como parte del ecosistema de desarrollo para iPhone, iPad, Mac, Apple Watch y Apple TV. Core ML proporciona un runtime para ejecutar modelos ML en el dispositivo, abstrayendo al desarrollador de los detalles de optimización hardware. El framework selecciona automáticamente el mejor motor de cómputo — Neural Engine en chips A12+, GPU o CPU — para cada operación del modelo.
La ventaja clave de Core ML es la integración profunda con Apple Silicon. Las operaciones de redes neuronales se ejecutan en el Neural Engine dedicado, que no carga los núcleos principales del procesador. Según Apple (WWDC 2025), los modelos Core ML funcionan 6 veces más rápido en comparación con TensorFlow Lite en dispositivos Android similares.
Core ML admite una amplia gama de tareas de aprendizaje automático: clasificación de imágenes, detección de objetos, segmentación semántica, procesamiento de lenguaje natural, análisis de sonido y datos tabulares. El framework trabaja con varios tipos de modelos: redes neuronales (convolucionales, recurrentes, transformers), ensembles de árboles, regresiones lineales y procesos gaussianos.
Core ML recibe un modelo entrenado en formato .mlpackage, lo compila en código máquina optimizado para el dispositivo específico y ejecuta la inferencia a través de una API unificada. Todo el pipeline — desde la carga del modelo hasta la obtención del resultado — requiere 3–5 líneas de código Swift.
.mlpackage es un formato contenedor introducido por Apple en 2020 para reemplazar el obsoleto .mlmodel. El paquete es un directorio que contiene un manifiesto JSON, un archivo de modelo en formato binario MLProgram, metadatos (autor, versión, descripción) y recursos como etiquetas de clases. Según Apple, .mlpackage reduce el tamaño del modelo entre un 30 y un 50% en comparación con .mlmodel mediante la optimización de pesos.
Apple Neural Engine (ANE) es un neuroprocesador dedicado integrado en los chips Apple desde el A12 Bionic (2018). ANE procesa operaciones matriciales decenas de veces más eficientemente que la CPU con el mismo consumo energético. El rendimiento de ANE ha crecido de 5 TOPS en A12 a 35 TOPS en M4 Ultra (2025), permitiendo ejecutar modelos con miles de millones de parámetros. ANE se utiliza automáticamente para todos los modelos Core ML con arquitectura de redes neuronales.
Una característica importante de Core ML es el soporte para cuantización de modelos a FP16 e INT8 sin pérdida de precisión. La cuantización reduce el tamaño del modelo entre 2 y 4 veces y acelera la inferencia entre un 40 y un 60% en ANE. Apple proporciona la herramienta Xcode Model Quantization para la selección automática de la precisión óptima: el desarrollador carga un modelo, especifica la pérdida de calidad aceptable (generalmente 0.1–0.5%), y Xcode selecciona el mejor formato de representación de pesos.
| Chip | TOPS (ANE) | Inferencia ResNet-50 | Año |
|---|---|---|---|
| A12 Bionic | 5 | 18 ms | 2018 |
| A14 Bionic | 11 | 9 ms | 2020 |
| M1 Max | 22 | 4 ms | 2021 |
| M4 Ultra | 35 | 2 ms | 2025 |
La mayoría de los modelos ML se crean en PyTorch o TensorFlow y requieren conversión al formato .mlpackage para usarse en Core ML. Apple proporciona la utilidad coremltools — un paquete Python para convertir, optimizar y validar modelos.
coremltools es la utilidad oficial de Apple para convertir modelos ML. Admite importación desde PyTorch (mediante torch.onnx o directamente), TensorFlow (SavedModel, H5, Frozen Graph) y ONNX. Después de la conversión, se puede habilitar la cuantización FP16 o INT8, reduciendo el tamaño del modelo entre 2 y 4 veces sin pérdida significativa de precisión.
Veamos la conversión de un modelo entrenado de PyTorch al formato Core ML usando coremltools versión 8.0. El proceso requiere 2–3 pasos en Python.
import torch
import coremltools as ct
# Cargando modelo PyTorch entrenado
model = torch.load('model.pth')
model.eval()
# Trazando modelo con entrada de ejemplo
example_input = torch.randn(1, 3, 224, 224)
traced_model = torch.jit.trace(model, example_input)
# Convirtiendo a Core ML .mlpackage
mlmodel = ct.convert(
traced_model,
convert_to='mlprogram',
inputs=[ct.TensorType(shape=(1, 3, 224, 224))]
)
mlmodel.save('Model.mlpackage')
El código carga el modelo PyTorch entrenado, realiza el trazado JIT con una entrada de ejemplo y lo convierte al formato mlprogram (formato binario de Core ML). El .mlpackage resultante se puede arrastrar a Xcode y usar inmediatamente en código Swift.
Después de la conversión del modelo, su integración en una app iOS en Swift se realiza en unas pocas líneas. Xcode genera automáticamente una clase Swift para el modelo basada en los metadatos del .mlpackage.
Veamos un ejemplo de clasificación de imágenes usando Core ML y el framework Vision. Vision transforma automáticamente la imagen al tamaño y formato de píxeles requeridos.
import CoreML
import Vision
// Cargando modelo Core ML
guard let model = try? VNCoreMLModel(
for: MobileNetV2.configuration.model
) else { return }
// Creando VNCoreMLRequest
let request = VNCoreMLRequest(model: model) { request, error in
guard let results = request.results
as? [VNClassificationObservation]
else { return }
// Mostrando top-3 predicciones
for result in results.prefix(3) {
print("\(result.identifier):
\(result.confidence)")
}
}
// Iniciando procesamiento de imagen
let handler = VNImageRequestHandler(
url: imageURL
)
try? handler.perform([request])
El código Swift carga el modelo MobileNetV2 a través del framework Vision, crea una solicitud de clasificación y procesa el resultado — un array de objetos VNClassificationObservation con etiquetas de clase y porcentajes de confianza. Todo el pipeline, desde la carga hasta la salida del resultado, toma 5–50 ms según el modelo.
Para optimizar el tiempo de inicio, Core ML compila el modelo en el primer uso. La compilación previa reduce el arranque en frío de 2–3 segundos a 100–200 ms. Se recomienda compilar el modelo en tiempo de construcción en Xcode, no en el primer inicio de la app. Esto es especialmente importante para apps con múltiples modelos ML — por ejemplo, detección de objetos + clasificación + NLP.
Core ML y ML Kit resuelven tareas similares de ML en el dispositivo, pero están orientados a diferentes ecosistemas. Core ML está profundamente integrado con Apple Silicon y solo admite plataformas Apple. ML Kit de Google es una solución multiplataforma para Android e iOS.
| Característica | Core ML | ML Kit |
|---|---|---|
| Plataformas | iOS, macOS, watchOS, tvOS | Android, iOS |
| API Integradas | A través de Vision, Natural Language | 15+ API integradas |
| Modelos Personalizados | .mlpackage (PyTorch, TF) | TFLite (mediante adaptador) |
| Aceleración Hardware | ANE, GPU, CPU | GPU (Android), CPU |
| Facilidad de Inicio | Requiere conversión del modelo | API listas sin Data Science |
| Rendimiento | 2–50 ms (ANE) | 80–200 ms (CPU/GPU) |
Elige Core ML si tu ecosistema es exclusivamente Apple y necesitas el máximo rendimiento a través de ANE. Si necesitas multiplataforma o API listas sin conversión, ML Kit será más práctico.
En la práctica, muchos proyectos usan ambos frameworks: iOS Core ML para alto rendimiento, y ML Kit o TensorFlow Lite en Android. Un modelo PyTorch unificado se convierte a .mlpackage para Apple y a .tflite para Android, lo que permite mantener la misma calidad de funciones ML en ambas plataformas. Este enfoque requiere un poco más de esfuerzo en DevOps, pero proporciona la máxima cobertura de audiencia.
Al elegir entre Core ML y alternativas, considera el costo de desarrollo: Core ML requiere menos código de integración (3–5 líneas de Swift frente a 15–20 líneas con TFLite), pero requiere Mac y Xcode para compilar. ML Kit, por otro lado, funciona en cualquier plataforma pero ofrece menor rendimiento en iOS debido a la falta de acceso a Apple Neural Engine.
Preguntas Frecuentes
iOS 11+ para modelos básicos, iOS 14+ para formato .mlpackage. Apple Neural Engine requiere un chip A12 Bionic o superior. Core ML es compatible con todos los iPhone, iPad y Mac desde 2017.
Sí, mediante la herramienta coremltools. Los modelos TensorFlow se convierten a .mlpackage conservando la precisión. Se admiten formatos TensorFlow 2.x, SavedModel, H5 y Frozen Graph.
.mlpackage es un formato contenedor moderno, estructurado como un directorio con metadatos, un archivo binario MLProgram y recursos. Es 2–3 veces más compacto que el antiguo .mlmodel y admite cuantización.
Todos los cálculos se realizan estrictamente en el dispositivo. Core ML no envía datos a los servidores de Apple. El framework funciona en modo avión y no requiere conexión a internet para la inferencia.
Swift es el lenguaje principal para integrar Core ML en apps iOS/macOS. Python se usa para la conversión de modelos mediante coremltools. Objective-C también es compatible para retrocompatibilidad.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también