Connect with us

IA 101

O que é Aprendizado Federado?

mm

O que é Aprendizado Federado?

O método tradicional de treinamento de modelos de IA envolve a configuração de servidores onde os modelos são treinados em dados, muitas vezes por meio do uso de uma plataforma de computação baseada em nuvem. No entanto, nos últimos anos, uma forma alternativa de criação de modelos surgiu, chamada de aprendizado federado. Aprendizado federado traz modelos de aprendizado de máquina para a fonte de dados, em vez de trazer os dados para o modelo. O aprendizado federado liga vários dispositivos computacionais em um sistema descentralizado que permite que os dispositivos individuais que coletam dados ajudem a treinar o modelo.

Em um sistema de aprendizado federado, os vários dispositivos que fazem parte da rede de aprendizado têm uma cópia do modelo no dispositivo. Os diferentes dispositivos/clients treinam sua própria cópia do modelo usando os dados locais do cliente, e então os parâmetros/pesos dos modelos individuais são enviados para um dispositivo mestre, ou servidor, que agrega os parâmetros e atualiza o modelo global. Esse processo de treinamento pode ser repetido até que um nível desejado de precisão seja alcançado. Em resumo, a ideia por trás do aprendizado federado é que nenhum dos dados de treinamento é transmitido entre dispositivos ou entre partes, apenas as atualizações relacionadas ao modelo são.

O aprendizado federado pode ser dividido em três etapas ou fases diferentes. O aprendizado federado normalmente começa com um modelo genérico que atua como uma linha de base e é treinado em um servidor central. Na primeira etapa, esse modelo genérico é enviado para os clientes da aplicação. Essas cópias locais são então treinadas em dados gerados pelos sistemas de clientes, aprendendo e melhorando seu desempenho.

Na segunda etapa, os clientes enviam seus parâmetros de modelo aprendidos para o servidor central. Isso acontece periodicamente, em um cronograma definido.

Na terceira etapa, o servidor agrega os parâmetros aprendidos quando os recebe. Após os parâmetros serem agregados, o modelo central é atualizado e compartilhado novamente com os clientes. O processo todo é então repetido.

O benefício de ter uma cópia do modelo nos vários dispositivos é que as latências de rede são reduzidas ou eliminadas. Os custos associados ao compartilhamento de dados com o servidor também são eliminados. Outros benefícios dos métodos de aprendizado federado incluem o fato de que os modelos de aprendizado federado são preservados de privacidade, e as respostas do modelo são personalizadas para o usuário do dispositivo.

Exemplos de modelos de aprendizado federado incluem motores de recomendação, modelos de detecção de fraude e modelos médicos. Motores de recomendação de mídia, do tipo usado pelo Netflix ou Amazon, poderiam ser treinados em dados coletados de milhares de usuários. Os dispositivos clientes treinariam seus próprios modelos separados e o modelo central aprenderia a fazer previsões melhores, mesmo que os pontos de dados individuais sejam únicos para os diferentes usuários. Da mesma forma, modelos de detecção de fraude usados por bancos podem ser treinados em padrões de atividade de muitos dispositivos diferentes, e um punhado de bancos diferentes poderia colaborar para treinar um modelo comum. Em termos de um modelo de aprendizado federado médico, vários hospitais poderiam se unir para treinar um modelo comum que pudesse reconhecer possíveis tumores por meio de exames médicos.

Tipos de Aprendizado Federado

Os esquemas de aprendizado federado normalmente se enquadram em uma das duas classes diferentes: sistemas de múltiplas partes e sistemas de uma única parte. Sistemas de aprendizado federado de uma única parte são chamados de “sistemas de uma única parte” porque apenas uma entidade é responsável por supervisionar a captura e o fluxo de dados em todos os dispositivos clientes da rede de aprendizado. Os modelos que existem nos dispositivos clientes são treinados em dados com a mesma estrutura, embora os pontos de dados sejam típicamente únicos para os vários usuários e dispositivos.

Em contraste com os sistemas de uma única parte, os sistemas de múltiplas partes são gerenciados por duas ou mais entidades. Essas entidades cooperam para treinar um modelo compartilhado, utilizando os vários dispositivos e conjuntos de dados que elas têm acesso. Os parâmetros e estruturas de dados são normalmente semelhantes em todos os dispositivos pertencentes às múltiplas entidades, mas não precisam ser exatamente os mesmos. Em vez disso, o pré-processamento é feito para padronizar as entradas do modelo. Uma entidade neutra pode ser empregada para agregar os pesos estabelecidos pelos dispositivos únicos para as diferentes entidades.

Frameworks para Aprendizado Federado

Frameworks populares usados para aprendizado federado incluem Tensorflow Federated, Federated AI Technology Enabler (FATE) e PySyft. PySyft é uma biblioteca de aprendizado federado de código aberto baseada na biblioteca de aprendizado profundo PyTorch. PySyft é destinada a garantir o aprendizado profundo privado e seguro em servidores e agentes usando computação criptografada. Enquanto isso, Tensorflow Federated é outro framework de código aberto construído na plataforma Tensorflow do Google. Além de permitir que os usuários criem seus próprios algoritmos, Tensorflow Federated permite que os usuários simulam vários algoritmos de aprendizado federado incluídos em seus próprios modelos e dados. Finalmente, FATE também é um framework de código aberto projetado pela Webank AI, e é destinado a fornecer ao ecossistema de IA Federada um framework de computação seguro.

Desafios do Aprendizado Federado

Como o aprendizado federado ainda é relativamente novo, um número de desafios ainda precisam ser negociados para que ele atinja seu potencial total. As capacidades de treinamento dos dispositivos de borda, rotulagem e padronização de dados e convergência do modelo são obstáculos potenciais para as abordagens de aprendizado federado.

As capacidades computacionais dos dispositivos de borda, quando se trata de treinamento local, precisam ser consideradas ao projetar abordagens de aprendizado federado. Embora a maioria dos smartphones, tablets e outros dispositivos compatíveis com IoT sejam capazes de treinar modelos de aprendizado de máquina, isso normalmente prejudica o desempenho do dispositivo. Compromissos precisam ser feitos entre a precisão do modelo e o desempenho do dispositivo.

Rotular e padronizar dados é outro desafio que os sistemas de aprendizado federado devem superar. Modelos de aprendizado supervisionado exigem dados de treinamento que sejam claramente e consistentemente rotulados, o que pode ser difícil de fazer em todos os dispositivos clientes que fazem parte do sistema. Por essa razão, é importante desenvolver pipelines de dados de modelo que apliquem rótulos de forma padronizada com base em eventos e ações do usuário.

O tempo de convergência do modelo é outro desafio para o aprendizado federado, pois os modelos de aprendizado federado normalmente levam mais tempo para convergir do que os modelos treinados localmente. O número de dispositivos envolvidos no treinamento adiciona um elemento de imprevisibilidade ao treinamento do modelo, pois problemas de conexão, atualizações irregulares e até mesmo diferentes horários de uso do aplicativo podem contribuir para um tempo de convergência aumentado e confiabilidade diminuída. Por essa razão, as soluções de aprendizado federado são normalmente mais úteis quando fornecem vantagens significativas sobre o treinamento central de um modelo, como instâncias em que os conjuntos de dados são extremamente grandes e distribuídos.

Foto: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.