Core ML: Integração de Machine Learning em Aplicativos iOS
O Core ML é o framework de machine learning da Apple que permite integrar modelos de aprendizado de máquina diretamente em aplicativos iOS, iPadOS, macOS e watchOS, garantindo privacidade e desempenho com inferência totalmente no dispositivo. Neste guia completo, exploramos desde a conversão de modelos até casos de uso reais, abrangendo os principais frameworks relacionados.
O que é o Core ML?
Lançado em 2017, o Core ML é a base para inteligência artificial em apps Apple. Ele suporta modelos de classificação, regressão, redes neurais, árvores de decisão, modelos de conjunto e muito mais. Por ser executado inteiramente no dispositivo, elimina a latência de rede e mantém os dados do usuário seguros, um diferencial importante para apps que lidam com informações sensíveis.
A arquitetura do Core ML é otimizada para aproveitar ao máximo o hardware da Apple, incluindo CPU, GPU e o Neural Engine presente nos chips A12 e posteriores. Isso significa que a inferência ocorre com baixo consumo de energia e alta velocidade, mesmo em modelos complexos. O framework faz parte do ecossistema de frameworks Apple, integrando-se de forma nativa com outras bibliotecas do sistema.
Conversão de modelos com Core ML Tools
Para utilizar modelos treinados em frameworks como TensorFlow, PyTorch, ONNX ou scikit-learn, a Apple oferece o coremltools, um pacote Python que converte modelos para o formato .mlmodel ou .mlpackage. A conversão preserva a precisão e permite otimizações como quantização e compactação para reduzir o tamanho do modelo sem perda significativa de acurácia.
import coremltools as ct
model = ct.converters.tensorflow.convert('modelo_salvo')
model.save('MeuModelo.mlmodel')
Além da conversão, o coremltools oferece ferramentas para inspecionar a arquitetura, testar a predição e definir metadados como nomes de entrada/saída e descrições. O fluxo típico de desenvolvimento inclui treinar o modelo em um ambiente de ML (por exemplo, Jupyter Notebook), convertê-lo com coremltools e arrastá-lo para o projeto Xcode.
Vision Framework: análise de imagens e vídeo
O Vision framework funciona lado a lado com o Core ML para detecção de objetos, classificação de imagens, reconhecimento facial, detecção de texto e muito mais. Ao combinar Vision + Core ML, você cria aplicativos que entendem o mundo visual, como um app que identifica plantas, lê placas de trânsito ou verifica documentos. A integração com o Core ML é feita através do VNCoreMLModel, que permite usar qualquer modelo Core ML para tarefas de visão computacional.
Essa combinação também pode ser usada em experiências de AR + ML com Vision no ARKit, permitindo que objetos virtuais interajam com o ambiente real de forma inteligente. Por exemplo, um app de realidade aumentada pode detectar superfícies e posicionar objetos virtuais com base na classificação do ambiente.
Natural Language Framework: processamento de texto
O Natural Language (NL) framework permite análise de linguagem natural – tokenização, reconhecimento de entidades, classificação de texto, lematização e detecção de idioma. Combinado com Core ML, é possível criar modelos personalizados de classificação de sentimento, detecção de spam ou categorização de conteúdo, rodando localmente sem enviar texto a servidores. Ganhe R$1.500 de bônus ao se cadastrar na 94a.com Bônus de até R$500 + 100 giros grátis no 57a
O NL framework oferece uma API unificada que facilita a integração com Core ML: basta criar um NLModel a partir de um arquivo .mlmodel treinado com Create ML ou convertido de outras plataformas. Isso é particularmente útil para apps de mensagens, e-mail e redes sociais que precisam moderar ou analisar conteúdo em tempo real.
Create ML: treinamento de modelos personalizados
O Create ML é uma ferramenta visual integrada ao Xcode que permite treinar modelos de machine learning sem escrever código. Com ele, você pode criar classificadores de imagem, modelos de texto, modelos tabulares (regressão e classificação), recomendações e muito mais, exportando diretamente para o formato Core ML. Ideal para prototipagem rápida e equipes de design que desejam testar conceitos de IA sem dependência de engenheiros de ML.
O Create ML suporta transfer learning, permitindo partir de modelos pré-treinados (como o Vision Feature Print) e adaptá-los com poucos exemplos. Você pode treinar um modelo de classificação de imagens com apenas algumas dezenas de imagens por categoria e obter resultados surpreendentemente bons. O treinamento ocorre localmente no Mac, utilizando Metal e aceleração por GPU.
Inferência on-device e performance
A inferência no dispositivo é um dos grandes diferenciais do Core ML. Ele aproveita a CPU, GPU e o Neural Engine do iPhone e iPad para executar modelos com baixíssima latência. A Apple também oferece ferramentas de quantização (pesos em 16-bit ou 8-bit) e otimização de metadados para reduzir o tamanho do modelo sem sacrificar a precisão. Para saber mais sobre performance de inferência on-device, confira nosso guia dedicado com benchmarks e boas práticas.
Além disso, o Core ML suporta execução em lote (batch prediction) e permite controle fino sobre qual hardware utilizar (CPU, GPU, Neural Engine) através da classe MLModelConfiguration. Para aplicações em tempo real, como análise de vídeo ou áudio, é fundamental testar a performance no dispositivo alvo e ajustar a complexidade do modelo conforme necessário.
Casos de uso e integração
O Core ML pode ser aplicado em diversas verticais, tornando os apps mais inteligentes e autônomos:
- Classificação de imagens: apps de saúde (diagnóstico de lesões de pele), varejo (identificação de produtos) e redes sociais (moderação de conteúdo).
- Detecção de objetos: realidade aumentada, inspeção industrial, contagem de pessoas em ambientes.
- Processamento de linguagem natural: chatbots, análise de sentimentos, resumo de textos, correção gramatical.
- Apps empresariais: automação de processos, análise de documentos, extração de dados de formulários. Veja como aplicamos ML em apps empresariais para aumentar a produtividade.
- Saúde e bem-estar: classificação de atividades, monitoramento de padrões de sono, análise de áudio para detectar tosses ou ruídos.
Para armazenar e sincronizar modelos personalizados ou metadados de inferência, você pode utilizar Core Data para persistência local e CloudKit para sincronização na nuvem. Essa combinação permite, por exemplo, que um modelo seja treinado com dados do usuário no dispositivo e sincronizado entre iPhone, iPad e Mac.
Perguntas frequentes
Sim, toda a inferência é feita no dispositivo, sem necessidade de conexão com a internet. Isso garante privacidade e disponibilidade mesmo em modo avião.
Core ML aceita modelos nos formatos .mlmodel, .mlpackage, e modelos convertidos de TensorFlow, PyTorch, ONNX e scikit-learn usando coremltools. Também é possível criar modelos diretamente com Create ML.
O Create ML está disponível no Xcode para macOS, mas os modelos podem ser treinados em qualquer ambiente (Linux, Windows) e convertidos com coremltools em Python. O processo de conversão não exige um Mac.
Ambos oferecem inferência on-device, mas Core ML é nativo do ecossistema Apple e otimizado para o Neural Engine, enquanto ML Kit é multiplataforma. A escolha depende do público-alvo: se o app é exclusivamente iOS, Core ML oferece melhor integração e desempenho.
Sim, o Core ML pode processar áudio transformado em espectrogramas ou features acústicas. O framework SoundAnalysis, baseado no Vision, permite classificar sons em tempo real usando modelos Core ML treinados para áudio.