Recursos/White Papers

Tecnologia

11 ferramentas open source para Machine Learning

O prêmio Best of Software Source 2018, da InfoWorld, aponta as principais ferramentas de código aberto para o aprendizado de máquina

Martin Heller e Ian Pointer, InfoWorld/EUA

Publicada em 27 de setembro de 2018 às 16h21

Amazon, Google, Microsoft, Facebook e muitas outras estão dispostas a criar as bibliotecas mais ricas e fáceis para Machine Learning. Confira os vencedores do prêmio "Best of Software Source 2018", feito pelo portal InfoWorld, e entenda mais sobre as melhores ferramentas open source de Machine e Deep Learning.

1 - TensorFlow
Open source desde 2015, a plataforma TensorFlow permite a qualquer desenvolvedor aplicar o molho secreto do Google em seus próprios projetos, desde que aprenda como.

Você pode instalar TensorFlow localmente ou usar a nuvem. Talvez a maneira mais poderosa de usar o TensorFlow seja configurar um projeto do Google Cloud Platform com o Cloud Machine Learning em conjunto com uma instalação TensorFlow local.

Talvez a maneira mais fácil de usar o TensorFlow seja fazer um Deep Learning AMI no Amazon Linux, que já tem TensorFlow e outras quatro bibliotecas de Deep Learning instaladas. 

Entre os recursos e melhorias mais recentes do TensorFlow incluem a integração com o Google Cloud Bigtable como fonte de dados, melhor módulo tk.keras, melhor geração de modelos otimizados para dispositivos móveis, melhor carregamento de dados e processamento de texto, nova busca de dados para memória GPU, melhor desempenho com o Google Cloud TPUs e elevação do modo de execução para o status totalmente suportado.

2 - Keras
A ferramenta é tão simples quanto uma estrutura de rede neural profunda poderia ser – uma linha de código Python por camada e uma chamada para compilar e treinar um modelo, usando modelos seqüenciais. O Keras também oferece suporte a topologias arbitrárias por meio de sua API funcional. Ele usa o TensorFlow, o Theano e o CNTK 2 como backends e obtém um bom suporte para as GPUs deles (e TPUs no Google Cloud com o TensorFlow). O treinamento em Keras usa matrizes Numpy como entrada, embora possa suportar outros formatos por meio de uma interface do gerador Python. A ferramenta tem também uma boa variedade de opções de implantação, que vão desde serviços em nuvem até dispositivos móveis. 

3 - PyTorch
O PyTorch é uma rede neural profunda de alto nível que usa o Phyton como linguagem de script e usa um back-end Torch C/ CUCA evoluído. Os recursos de produção do Caffe2 também estão sendo incorporados ao projeto. Ele apresenta redes neurais dinâmicas, ou seja, a própria topologia da rede pode mudar de iteração para iteração durante o treinamento.

Para permitir redes dinâmicas, que são mais fáceis de depurar e mais rápidas de interagir do que as redes estáticas, os programas PyTorch criam um gráfico em tempo real. Em seguida, a retro propagação usa o gráfico criado dinamicamente, calculando automaticamente os gradientes dos estados do tensor salvos. Dado que o PyTorch se baseia na estrutura madura do Torch, ele já possui uma forte coleção de redes neurais, algoritmos de otimização e funções de perda.

4 - Fast.ai
Fast.ai não é apenas um MOOC de aprendizado profundo, é também uma biblioteca de Deep Learning que se baseia no PyTorch. O framework fornece um conjunto de invólucros consistentes e opinativos para construir e treinar modelos, assim como incorpora algumas técnicas de ponta para o treinamento de modelos de aprendizagem profunda. Em outras palavras, o Fast.ai ajuda a construir modelos para competições de Kaggle e para as aplicações reais de produção.

5 - Chainer
Chainer é uma estrutura flexível do Python para redes neurais. Ao contrário dos frameworks que primeiro definem e consertam a topologia de rede neural, a ferramenta usa um esquema de definição por execução. Ou seja, a rede é definida dinamicamente por meio do cálculo real - o cálculo de retro propagação calcula o array de gradiente e chama o otimizador para encontrar os pesos atualizados.

O Chainer usa o CuPy como back-end para computação de GPU, que por sua vez chama CUDA e cuDNN. Em particular, a classe cupy.ndarray é a implementação da matriz GPU para o Chainer. O CuPy suporta um subconjunto de recursos do NumPy com uma interface compatível.

6 - H2O
É uma plataforma de Machine Learning distribuída na memória com escalabilidade linear. Ele suporta os algoritmos estatísticos e de Machine Learning mais amplamente utilizados, incluindo máquinas impulsionadas por gradiente, modelos lineares generalizados e aprendizado profundo. H2O suporta programação em R, Python, Scala, Javan e seus próprios portáteis interativos.

7 - Microsoft Cognitive Toolkit
O Microsoft Cognitive Toolkit – ou mais simplesmente o CNTK – é o kit de ferramentas de Deep Learning que sustenta os recursos de inteligência artificial dos serviços da Microsoft, incluindo Skype, Cortana, Bing e Xbox. Ele lida com dados multidimensionais densos ou esparsos de Python, C + + ou BrainScript e inclui uma ampla variedade de tipos de redes neurais: FeedForward (FFN), Convolucional (CNN), Memória de Curto Prazo Recorrente / Longo (RNN / LSTM), normalização em lote e sequência-a-sequência com atenção, para iniciantes.

8 - MXNet
O MXNet foi desenvolvido sob o guarda-chuva da Apache Software Foundation no início de 2017 e ainda é considerado “incubador” na v1.2.1. Ele possui um bom controle sobre o posicionamento da estrutura de dados em dispositivos, treinamento em várias GPUs, diferenciação automática e camadas de rede neural pré-definidas e otimizadas. Ele tem em Gluon uma interface fácil de usar que também pode ajudar a treinar rapidamente.

9 - Featuretools
O Featuretools é uma biblioteca Python de software livre para engenharia de recursos automatizada. Ele implementa a síntese de recursos profundos. Ou seja, a pessoa pode combinar seus dados brutos com o que sabe sobre os dados para criar recursos significativos para Machine Learning e modelagem preditiva. O recurso fornece APIs para garantir que apenas dados válidos sejam usados para cálculos, mantendo seus vetores de recursos seguros contra problemas comuns de vazamento de etiquetas.

10 - Horovod
Criado no Uber, o Horovod é um framework de treinamento distribuído para o TensorFlow, Keras e PyTorch. O objetivo da ferramenta é tornar o Deep Learning distribuído rápido e fácil de usar.

Horovod usa Open MPI (ou outra implementação MPI) para passar mensagens e a Nvidia Collective Communications Library (NCCL) para sua versão otimizada de anel-allreduce.

opensource

11- Fabric for Deep Learning
O Fabric for Deep Learning (ou FfDL) é uma plataforma de Machine Learning que oferece o TensorFlow, Caffe, PyTorch, Keras e H2O como um service no Kubernetes. Ele foi desenvolvido originalmente para o IBM Cloud, mas também pode ser executado em outras nuvens que suportam clusters Kubernetes e localmente no Docker via Kubeadm-DIND.



Reportagens mais lidas

Acesse a comunidade da CIO

LinkedIn
A partir da comunidade no LinkedIn, a CIO promove a troca de informações entre os líderes de TI. Acesse aqui