Aprendizaje automático en Swift: bibliotecas para iOS/macOS
Swift es un lenguaje potente e intuitivo de Apple, que se utiliza activamente no solo para el desarrollo de aplicaciones para iOS y macOS, sino también para tareas de aprendizaje automático. Gracias a su rendimiento, seguridad de tipos e integración directa con los frameworks de Apple, Swift se convierte en una excelente opción para implementar modelos de ML en dispositivos. En este artículo, revisaremos las bibliotecas y herramientas clave para el aprendizaje automático en Swift que te ayudarán a crear aplicaciones inteligentes para el ecosistema Apple.
1. Core ML — el framework insignia de Apple
Core ML es el framework principal de Apple para integrar modelos de aprendizaje automático en aplicaciones. Soporta una gran cantidad de formatos de modelos (MLModel, ONNX, TensorFlow, PyTorch) y está optimizado para funcionar en dispositivos (iPhone, iPad, Mac). Core ML utiliza automáticamente Neural Engine, GPU y CPU para un rendimiento máximo.
Ejemplo: Clasificación de imágenes con Core ML
import CoreMLimport Vision
// Cargamos el modelo preentrenado MobileNetV2guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("No se pudo cargar el modelo")}
// Creamos la solicitudlet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { print("No se pudo clasificar") return } print("Objeto: \\(topResult.identifier) con confianza \\(topResult.confidence)")}
// Cargamos la imagenguard let image = UIImage(named: "cat.jpg"), let ciImage = CIImage(image: image) else { return }
let handler = VNImageRequestHandler(ciImage: ciImage, options: [:])try? handler.perform([request])2. Create ML — aprendizaje sin código (y con código)
Create ML es una herramienta de Apple para entrenar modelos de aprendizaje automático directamente en Xcode. Soporta tareas de clasificación de imágenes, texto, datos tabulares, sistemas de recomendación e incluso clasificadores de sonido. Los modelos entrenados en Create ML se exportan automáticamente al formato .mlmodel y están listos para usar con Core ML.
Ejemplo: Entrenamiento de un modelo de clasificación de texto
import CreateML
// Cargamos datos desde CSVlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/path/to/data.csv"))
// Dividimos en conjuntos de entrenamiento y pruebalet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)
// Creamos el clasificador de textolet classifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")
// Evaluamos la precisiónlet evaluationMetrics = classifier.evaluation(on: testingData)print("Precisión: \\(evaluationMetrics.classificationError)")
// Guardamos el modelolet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "Clasificador de reseñas", version: "1.0")try classifier.write(to: URL(fileURLWithPath: "/path/to/SentimentClassifier.mlmodel"), metadata: metadata)3. TensorFlow Lite (TFLite Swift) — TensorFlow móvil
TensorFlow Lite es la versión ligera de TensorFlow para dispositivos móviles y embebidos. La interfaz Swift permite cargar y ejecutar modelos TFLite en iOS y macOS. TFLite soporta aceleración por hardware a través de Metal Performance Shaders (MPS) y delegados de Core ML.
Ejemplo: Ejecución de un modelo TFLite
import TensorFlowLite
// Cargamos el modeloguard let modelPath = Bundle.main.path(forResource: "mobilenet_v1_1.0_224", ofType: "tflite") else { fatalError("Modelo no encontrado")}
let interpreter = try Interpreter(modelPath: modelPath)try interpreter.allocateTensors()
// Preparamos los datos de entrada (por ejemplo, imagen 224x224)let inputData: Data = preprocessImag También en la biblioteca
Envío de correo electrónico en Java: biblioteca Jakarta Mail (JavaMail)
Security Crypto para Kotlin: guía completa con ejemplos
Monitoreo de aplicaciones TypeScript: herramientas y bibliotecas
Colas de tareas para Swift: guía completa de GCD y Operation Queues