Desenvolvimento

16 jan, 2017

Intel abre código da BigDL, biblioteca distribuída de deep learning para Apache Spark

Publicidade

Recentemente, a Intel abriu o código da BigDL, uma biblioteca distribuída de deep learning que é executada no Apache Spark. Ela aproveita os clusters Spark existentes para executar cálculos de deep learning e simplifica o carregamento de dados de grandes conjuntos de dados armazenados no Hadoop.

Os testes mostraram um aumento de desempenho significativo rodando em servidores Xeon em comparação com outros frameworks de código aberto, como Caffe, Torch ou TensorFlow. A velocidade é comparável com uma GPU mainstream, e a BigDL é capaz de escalar dezenas de servidores Xeon.

[awprm urls=https://imasters.com.br/noticia/intel-elege-brasileiro-como-inventor-do-ano/,https://imasters.com.br/noticia/intel-comemora-45-anos-do-lancamento-do-primeiro-processador/]

A biblioteca BigDL suporta as versões 1.5, 1.6 e 2.0 do Spark e permite que o deep learning seja incorporado a programas existentes baseados em Spark. Ela contém métodos para converter Spark RDDs para BigDL DataSet e pode ser usada diretamente com Spark ML Pipelines.

Para o treinamento do modelo, a BigDL aplica um mini-lote síncrono SGD (Stochastic Gradient Descent) executado em uma única tarefa Spark entre vários executores. Cada executor roda um mecanismo multi-thread e processa uma parte dos dados do micro-lote. Na versão atual, todos os dados de treinamento e validação são carregados na memória.

Segundo divulgado pelo site InfoQ, a BigDL é implementada em Scala e é modelada após Torch. Como Torch, ela fornece uma classe Tensor, que usa a biblioteca Intel MKL para cálculos. Intel MKL, abreviatura de Math Kernel Library, consiste em uma biblioteca com um conjunto de rotinas otimizadas para cálculos, que vão desde FFT (Fast Fourier Transform) até multiplicações matriciais, que são muito utilizadas para o treinamento em modelos de deep learning.

A BigDL fornece uma imagem AWS EC2 e exemplos para a classificação de texto usando redes neurais convolucionais, classificação de imagens e como carregar modelos pré-treinados em Torch ou Caffe no Spark para computação de previsões. As principais solicitações da comunidade são suporte para Python e MKL-DNN, e extensões de deep learning para MKL.