Em foco

Com Core ML Apple desloca Machine Learning para os dispositivos iOS

Objetivo da companhia é o de que os desenvolvedores integrem modelos treinados de aprendizado de máquinas em seus aplicativos para o iPhone

Data: 19.06.2017

Com Core ML Apple desloca Machine Learning para os dispositivos iOS

Nos últimos meses, as nuvens têm apontado para a supremacia em relação ao Aprendizado de Máquinas. Agora, a Apple tenta mudar o jogo. Com a introdução do Core ML , na semana passada, a companhia de Cuppertino procurou recuperar terreno e até obter alguma vantagem, impulsionando os benefícios de Machine Learning diretamente nos dispositivos, economizando a vida da bateria e melhorando o desempenho.
O software para permitir que os desenvolvedores implantem e trabalhem com modelos treinados de aprendizado de máquinas em aplicativos em todas as plataformas Apple - iOS, MacOS, TvOS e WatchOS. O objetivo é poupar os desenvolvedores a ter que construir todos os dutos a nível de plataforma para implantar um modelo, servir suas previsões e lidar com quaisquer condições extraordinárias que possam surgir. Mas também é atualmente um produto beta e um com um conjunto de recursos altamente limitado.
Podemos dizer que a gigante de Cupertino parece ter compreendido muito bem o que quis dizer Benedict Evans , da firma VC Andreessen Horowitz, ao declarar que o Aprendizado de Máquinas "é uma tecnologia fundamental para tudo". Embora ainda limitado, o Core ML aponta para um futuro bastante expansivo e extensivo para a tecnologia embarcada nos dispositivos que usamos no dia a dia.
Todos sabemos que o Machine Learning depende de grandes conjuntos de dados de treinamento. Uma vez descoberto o modelo preditivo, você precisa alimentar os sistemas com os dados que os treinam para afinar o modelo e colher os benefícios. Como esses treinamento exigem muitos conjuntos de dados (e muito poder de computação), a tecnologia tem sido principalmente um serviço de nuvem.
Com a introdução do Core ML, no entanto, a Apple está empurrando o aprendizado da máquina para seus dispositivos (e se os rumores do iPhone 8 forem verdadeiros, o aparelho até até um chip dedicado à Inteligência Artificial), de modo a permitir aos desenvolvedores integrar modelos já treinados de Machine Learning em seus aplicativos a partir de três estruturas básicas para previsões de serviço: "Fundation" para fornecer tipos comuns de dados e funcionalidades, conforme usado em aplicativos Core ML; "Vision" para imagens; e GameplayKit para lidar com lógica e comportamentos de jogabilidade.


appleml1
Cada estrutura fornece objetos de alto nível, implementados como classes Swift, que cobrem ambos os casos de uso específico e mais um serviço de previsão aberto. A estrutura Vision, por exemplo, fornece classes para detecção de rosto, códigos de barras, detecção de texto e detecção de horizontes, bem como classes mais gerais para coisas como rastreamento de objetos e alinhamento de imagem.
A Apple pretende que a maioria dos trabalhos de desenvolvimento do Core ML seja feita através dessas classes de alto nível. "Na maioria dos casos, você interage somente com a interface gerada dinamicamente do seu modelo," diz a documentação da Apple ", que é criada automaticamente pelo Xcode quando você adiciona um modelo ao seu projeto Xcode." Para "fluxos de trabalho personalizados e casos de uso avançado", porém, existe uma API de baixo nível que fornece manipulação de modelos e previsões mais finas.
Como o Core ML é para servir às previsões dos modelos e não aos modelos de treinamento, os desenvolvedores precisam ter modelos já preparados.A Apple fornece alguns exemplos de modelos de aprendizagem de máquinas, alguns dos quais imediatamente úteis, como o modelo ResNet50 para identificação de objetos comuns em imagens (por exemplo, carros, animais, pessoas).
Além disso, o Core ML é otimizado para o desempenho no dispositivo, o que minimiza os consumos de memória e de energia. Executar estritamente no dispositivo garante a privacidade dos dados do usuário e garante que seu aplicativo permaneça funcional e responsivo quando uma conexão de rede não estiver disponível.
De acordo com o desenvolvedor Matthijs Holleman, no artigo "Machine Learning para todos", o processo para começar a usar a tecnologia não poderia ser mais direto: "Você simplesmente deixa o arquivo mlmodel em seu projeto e o Xcode gerará automaticamente uma classe wrapper Swift ou Objective- C que torna muito fácil usar o modelo."
E o loop de feedback é rápido. Quão rápido? De acorodo ccom o desenvolvedor Said Ozcan, "foi incrível ver os resultados de previsão imediatamente sem qualquer intervalo de tempo".
E essa é a boa notícia.


appleML
As más notícias, como o Serdar Yegulalp da InfoWorld percebeu, é que o Core ML permanece um pouco abafado em suas habilidades. Entre outras coisas, ele observa que "não existem provisões no núcleo ML para reciclagem de modelos ou aprendizagem federada, onde os dados coletados do campo são usados ​​para melhorar a precisão do modelo. Isso é algo que você teria que implementar à mão, muito provavelmente pedindo aos usuários do aplicativo que optem pela coleta de dados e usem esses dados para treinar o modelo para uma futura edição do aplicativo".
Essa falta de aprendizagem federada pode ser particularmente espinhosa para a Apple - especialmente porque o Google avançou nesse sentido. Como pesquisadores da Google, Brendan McMahan e Daniel Ramage descrevem, "o aprendizado automático da máquina permite que os telefones celulares aprendam de forma colaborativa em um modelo de previsão compartilhado, mantendo todos os dados de treinamento no dispositivo, desacoplando a capacidade de fazer aprendizado de máquina a partir da necessidade de armazenar os dados na nuvem".
Segundo eles, "o dispositivo baixa o modelo atual, o melhora aprendendo com dados do seu telefone e, em seguida, resume as mudanças como uma pequena atualização focada. Somente esta atualização para o modelo é enviada para a nuvem, usando a comunicação criptografada, onde é imediatamente calculada junto com outras atualizações de usuários para melhorar o modelo compartilhado. Todos os dados de treinamento permanecem no seu dispositivo, e nenhuma atualização individual é armazenada na nuvem".
Em outras palavras, em vez de aproveitar um exército de servidores na nuvem, você pode aproveitar um exército de dispositivos móveis no campo, que tem muito mais potencial. Igualmente (ou mais) importante, este modelo está imediatamente disponível para uso nos dispositivos, tornando a experiência do usuário personalizada sem ter que esperar pela ida e a volta do modelo ajustado da nuvem. Como o desenvolvedor Matt Newton destacou : "Pode ser um recurso matador ter APIs fáceis para fazer personalização em dispositivos".
Claro, o aprendizado federado não é perfeito, como McMahan e Ramage reconhecem: "A aplicação de aprendizagem federada exige que os profissionais de aprendizado de máquinas adotem novas ferramentas e uma nova maneira de pensar: desenvolvimento de modelo, treinamento e avaliação sem acesso direto ou rotulagem de dados brutos, com o custo de comunicação como fator limitante".
Além disso, as aplicações mais úteis para o Core ML virão por meio de modelos treinados e fornecidos pelos próprios desenvolvedores. É aí que os adeptos iniciais são susceptíveis de se deparar com os maiores obstáculos, considerando que os modelos terão de ser convertidos no próprio modelo do ML Core antes que possam ser implantados.
Embora a Apple tenha fornecido ferramentas para realizar isso, principalmente o pacote Coremltools para Python, que pode converter de vários formatos populares de modelos de terceiros, ainda assimhá alguma limitações. O Coremltools suporta atualmente apenas versões anteriores de alguns desses modelos, como a versão 1.2.2 do sistema de aprendizagem profunda Keras (agora na versão 2.0). Boas notícias: o kit de ferramentas é de código aberto (BSD-licenciado), o que significa que deve ser relativamente fácil para os contribuintes fazer com que ele seja atualizado.


apple
Poderiamos ver isso como mais um exemplo de Apple ficando atrás de seus pares. Da iCloud para o Apple Maps e até mesmo a Siri, a Apple já foi atrasada ou subjugada em relação à nuvem e pesos pesados ​​de IA, como o Google. Com o Core ML, não tenho tanta certeza. A controvérsia "Apple larga atrás"me parece mal colocada ou, na melhor das hipóteses, prematura", diz Matt Asay, colunista da InfoWorld.
Por exemplo, quando a Amazon Web Services lançou seus próprios serviços de aprendizado de máquina, ouvimos queixas semelhantes de que era muito básico ou limitado. Mas como explicou o gerente geral da AW, Swaminathan Sivasubramanian, o objetivo inicial da Amazon foi "levar o aprendizado de máquina a todos os desenvolvedores da AWS", e não somente para aqieles capacitados a lidar com a complexidade inerente do aprendizado automático.
Da mesma forma, a Apple está preparando um caminho fácil para começar a usar Machine Learning. Não é perfeito, e não vai longe o suficiente para alguns desenvolvedores. Mas é uma boa maneira de criar uma geração de desenvolvedores capaz de usar o potencial da tecnologia para o desenvolvimento de aplicações.
Ainda assim, há uma coisa que a Apple provavelmente deveria ter feito: oabrir o código do Core ML, dando aos desenvolvedores experientes a capacidade de moldá-lo às suas necessidades. Como Holleman ressalta, "Como a maioria dos outros kits de ferramentas de aprendizagem de máquinas são de código aberto, por que não criar o código fonte principal do Copre ML também?"
"O ponto mais profundo", diz Evans, é que "muitas técnicas de aprendizado de máquinas estão se tornando commoditizadas e empurradas para APIs de desenvolvedores e em dispositivos e aplicativos muito rápidos". Por isso, "não haverá apenas a nuvem do Google, da Amazon ou do Facebook fazendo todo o trabalho de aprendizado da máquina - esta é uma tecnologia fundamental que estará em tudo ".
Na opinião de Matt Asay, no entanto, as vantagens do Core ML superam as desvantagens, dando aos pesquisadores razões convincentes para enfrentar os desafios. É um passo impressionante, mesmo que reconhecidamente limitado, em direção a este futuro de "Machine Learning dentro de tudo".


Fonte: CIO 



Voltar