Core ML es un framework de machine learning de Apple que proporciona una capa de abstracción para integrar modelos de aprendizaje automático entrenados en aplicaciones que se ejecutan en sus plataformas (iOS, macOS, watchOS, tvOS). Su propósito principal es facilitar la ejecución de inferencia de modelos de ML directamente en el dispositivo, aprovechando el hardware especializado como la Neural Engine de Apple para optimizar el rendimiento y la eficiencia energética. Soporta una amplia gama de tipos de modelos, incluyendo redes neuronales profundas, árboles de decisión, máquinas de vectores de soporte y modelos lineales, y puede convertir modelos de frameworks populares como TensorFlow, PyTorch y scikit-learn a su formato .mlmodel.
En el mundo real, Core ML es fundamental para potenciar experiencias de usuario inteligentes y personalizadas directamente en los dispositivos Apple. Por ejemplo, la aplicación Fotos de Apple lo utiliza para el reconocimiento de objetos y escenas, la detección de rostros y la clasificación de imágenes. Siri y el dictado en el dispositivo lo emplean para el procesamiento del lenguaje natural y el reconocimiento de voz offline. Aplicaciones de terceros lo usan para funciones como la detección de objetos en tiempo real en realidad aumentada (ARKit), filtros de imagen inteligentes, análisis de texto predictivo, y recomendaciones personalizadas, todo ello ejecutándose localmente sin necesidad de una conexión a la nube, mejorando la privacidad y la latencia.
Para un arquitecto de sistemas, Core ML es crucial porque permite descentralizar la inferencia de ML, moviéndola del backend a la "edge" del dispositivo. Esto tiene implicaciones significativas en la arquitectura: reduce la carga en los servidores de backend, disminuye la latencia para el usuario final, mejora la privacidad de los datos al procesarlos localmente y permite funcionalidades offline. Sin embargo, impone trade-offs: el tamaño del modelo debe ser manejable para el dispositivo, la actualización de modelos requiere una actualización de la aplicación (o el uso de Core ML Model Deployment), y la capacidad de cómputo del dispositivo limita la complejidad del modelo. Un arquitecto debe evaluar cuándo la inferencia en el dispositivo con Core ML es más beneficiosa que una solución basada en la nube, considerando factores como la privacidad, la latencia, el costo operativo y la experiencia del usuario.