Aprendizado de Máquina em Swift: bibliotecas e ferramentas para iOS/macOS
O desenvolvimento para o ecossistema Apple é tradicionalmente associado à linguagem Swift. Apesar de Python continuar sendo o líder indiscutível em Ciência de Dados, Swift está alcançando-o ativamente, oferecendo soluções nativas e otimizadas para o hardware Apple. Neste artigo, abordaremos as principais bibliotecas e frameworks que permitem implementar aprendizado de máquina (ML) em aplicativos para iOS, macOS, watchOS e tvOS, além de treinar modelos diretamente no dispositivo.
1. Core ML — a base de tudo
Core ML não é apenas uma biblioteca, mas um framework fundamental da Apple que serve como runtime para executar modelos de ML no dispositivo. Ele suporta modelos treinados em Python (scikit-learn, TensorFlow, PyTorch) e convertidos para o formato .mlmodel ou .mlpackage usando Core ML Tools.
Principais recursos do Core ML:
- Otimização para Neural Engine, GPU e CPU (seleção automática).
- Suporte para imagens, texto, sequências, dados tabulares.
- Trabalho com modelos de classificação, detecção de objetos (YOLO, SSD), segmentação semântica.
- Suporte para modelos transformer (BERT, GPT-2) através do Natural Language.
Exemplo de integração do modelo Core ML para classificação de imagens (Swift):
import CoreMLimport Vision
// 1. Carregamos o modelo (exemplo: MobileNetV2)guard let model = try? VNCoreMLModel(for: MobileNetV2(configuration: MLModelConfiguration()).model) else { fatalError("Falha ao carregar o modelo")}
// 2. Criamos a requisição para Visionlet request = VNCoreMLRequest(model: model) { request, error in guard let results = request.results as? [VNClassificationObservation], let topResult = results.first else { return } print("Reconhecido: \\(topResult.identifier) com confiança \\(topResult.confidence)")}
// 3. Executamos a requisição na imagemguard 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 — treinamento sem código (e com código)
Create ML é uma ferramenta da Apple, integrada ao Xcode e Swift Playgrounds, que permite treinar modelos de aprendizado de máquina diretamente no Mac, usando Swift. É ideal para prototipagem e criação de modelos personalizados sem sair do ecossistema.
Create ML suporta:
- Classificação e regressão (dados tabulares).
- Classificação de imagens e detecção de objetos.
- Análise de texto (sentimento, categorização).
- Sistemas de recomendação (baseados no comportamento do usuário).
- Classificação de áudio.
Exemplo de treinamento de um classificador de texto em Swift (macOS):
import CreateMLimport Foundation
// 1. Carregamos os dados de um CSVlet data = try MLDataTable(contentsOf: URL(fileURLWithPath: "/Users/me/emails.csv"))
// 2. Dividimos em treino/testelet (trainingData, testingData) = data.randomSplit(by: 0.8, seed: 42)
// 3. Treinamos o classificador de sentimentolet sentimentClassifier = try MLTextClassifier(trainingData: trainingData, textColumn: "text", labelColumn: "label")
// 4. Avaliação da precisãolet evaluationMetrics = sentimentClassifier.evaluation(on: testingData)print("Precisão: \\(evaluationMetrics.classificationError)")
// 5. Salvamos o modelolet metadata = MLModelMetadata(author: "PythonLib", shortDescription: "Classificador de sentimento de e-mails", version: "1.0")try sentimentClassifier.write(to: URL(fileURLW Também na biblioteca
xUnit / NUnit para C# (.NET): guia completo com exemplos
Trabalho com datas em JavaScript (Node.js): bibliotecas populares
Charts para Swift: guia completo com exemplos