Anshumali Shrivastava da Rice University liderou uma equipe que demonstrou como implementar tecnologia de aprendizado profundo sem hardware de aceleração especializado, como unidades de processamento gráfico. Crédito:Jeff Fitlow / Rice University
Os cientistas da computação da Rice University superaram um grande obstáculo na florescente indústria de inteligência artificial, mostrando que é possível acelerar a tecnologia de aprendizado profundo sem hardware de aceleração especializado, como unidades de processamento gráfico (GPUs).
Cientistas da computação da Rice, apoiado por colaboradores da Intel, vai apresentar seus resultados hoje no Centro de Convenções de Austin como parte da conferência de sistemas de aprendizado de máquina MLSys.
Muitas empresas estão investindo pesadamente em GPUs e outros hardwares especializados para implementar o aprendizado profundo, uma forma poderosa de inteligência artificial que está por trás de assistentes digitais como Alexa e Siri, reconhecimento facial, sistemas de recomendação de produtos e outras tecnologias. Por exemplo, Nvidia, o fabricante das GPUs Tesla V100 Tensor Core de padrão ouro da indústria, relatou recentemente um aumento de 41% em suas receitas do quarto trimestre em comparação com o ano anterior.
Os pesquisadores do arroz criaram uma alternativa econômica à GPU, um algoritmo chamado "mecanismo de aprendizado profundo sublinear" (SLIDE) que usa unidades de processamento central (CPUs) de propósito geral sem hardware de aceleração especializado.
"Nossos testes mostram que o SLIDE é a primeira implementação algorítmica inteligente de aprendizado profundo na CPU que pode superar a aceleração de hardware da GPU em conjuntos de dados de recomendação em escala da indústria com grandes arquiteturas totalmente conectadas, "disse Anshumali Shrivastava, um professor assistente na Brown School of Engineering de Rice que inventou o SLIDE com os alunos de graduação Beidi Chen e Tharun Medini.
O SLIDE não precisa de GPUs porque tem uma abordagem fundamentalmente diferente para o aprendizado profundo. A técnica de treinamento de "retropropagação" padrão para redes neurais profundas requer multiplicação de matriz, uma carga de trabalho ideal para GPUs. Com SLIDE, Shrivastava, Chen e Medini transformaram o treinamento de rede neural em um problema de pesquisa que poderia ser resolvido com tabelas de hash.
Isso reduz radicalmente a sobrecarga computacional para SLIDE em comparação com o treinamento de retropropagação. Por exemplo, uma plataforma de GPU top de linha como as da Amazon, A oferta do Google e de outros serviços de aprendizado profundo baseado em nuvem tem oito Tesla V100s e custa cerca de US $ 100, 000, Shrivastava disse.
Temos um no laboratório, e em nosso caso de teste, pegamos uma carga de trabalho perfeita para V100, um com mais de 100 milhões de parâmetros em grande, redes totalmente conectadas que cabem na memória da GPU, "disse ele." Nós o treinamos com o melhor pacote (de software) que existe, TensorFlow do Google, e demorou 3 horas e meia para treinar.
"Mostramos então que nosso novo algoritmo pode fazer o treinamento em uma hora, não em GPUs, mas em uma CPU classe Xeon de 44 núcleos, "Shrivastava disse.
Redes de aprendizagem profunda foram inspiradas pela biologia, e sua característica central, neurônios artificiais, são pequenos pedaços de código de computador que podem aprender a realizar uma tarefa específica. Uma rede de aprendizagem profunda pode conter milhões ou até bilhões de neurônios artificiais, e trabalhando juntos, eles podem aprender a fazer no nível humano, decisões de especialistas simplesmente estudando grandes quantidades de dados. Por exemplo, se uma rede neural profunda é treinada para identificar objetos em fotos, ele vai empregar neurônios diferentes para reconhecer a foto de um gato do que para reconhecer um ônibus escolar.
"Você não precisa treinar todos os neurônios em cada caso, "Medini disse." Nós pensamos, 'Se quisermos apenas escolher os neurônios que são relevantes, então é um problema de pesquisa. ' Então, algoritmicamente, a ideia era usar hashing sensível à localidade para fugir da multiplicação de matrizes. "
Hashing é um método de indexação de dados inventado para pesquisas na Internet na década de 1990. Ele usa métodos numéricos para codificar grandes quantidades de informações, como páginas inteiras da web ou capítulos de um livro, como uma sequência de dígitos chamada hash. As tabelas de hashes são listas de hashes que podem ser pesquisadas muito rapidamente.
"Não faria sentido implementar nosso algoritmo no TensorFlow ou PyTorch porque a primeira coisa que eles querem fazer é converter tudo o que você está fazendo em um problema de multiplicação de matriz, "Disse Chen." É exatamente disso que queríamos fugir. Então, escrevemos nosso próprio código C ++ do zero. "
Shrivastava disse que a maior vantagem do SLIDE sobre a propagação reversa é que ele é paralelo de dados.
"Por paralelo de dados, quero dizer que, se eu tiver duas instâncias de dados nas quais desejo treinar, digamos que uma é a imagem de um gato e a outra de um ônibus, eles provavelmente irão ativar neurônios diferentes, e o SLIDE pode atualizar, ou treinar nesses dois independentemente, "disse ele." Esta é uma utilização muito melhor do paralelismo para CPUs.
"O outro lado, em comparação com a GPU, é que precisamos de uma grande memória, "disse ele." Há uma hierarquia de cache na memória principal, e se você não tiver cuidado com isso, pode encontrar um problema chamado cache thrashing, onde você obtém muitos erros de cache. "
Shrivastava disse que os primeiros experimentos de seu grupo com o SLIDE produziram uma destruição significativa do cache, mas seus tempos de treinamento ainda eram comparáveis ou mais rápidos do que os tempos de treinamento da GPU. Então ele, Chen e Medini publicaram os resultados iniciais em arXiv em março de 2019 e carregou seu código no GitHub. Algumas semanas depois, eles foram contatados pela Intel.
"Nossos colaboradores da Intel reconheceram o problema de cache, "disse ele." Disseram-nos que podiam trabalhar connosco para tornar o treino ainda mais rápido, e eles estavam certos. Nossos resultados melhoraram cerca de 50% com a ajuda deles. "
Shrivastava disse que o SLIDE ainda não chegou perto de atingir seu potencial.
"Nós apenas arranhamos a superfície, "disse ele." Ainda há muito que podemos fazer para otimizar. Não usamos vetorização, por exemplo, ou aceleradores embutidos na CPU, como o Intel Deep Learning Boost. Existem muitos outros truques que ainda podemos usar para tornar isso ainda mais rápido. "
Shrivastava disse que o SLIDE é importante porque mostra que existem outras maneiras de implementar o aprendizado profundo.
"Toda a mensagem é, 'Não vamos ser obstruídos pela matriz de multiplicação e memória GPU, '", Disse Chen." A nossa pode ser a primeira abordagem algorítmica a vencer a GPU, mas espero que não seja o último. O campo precisa de novas ideias, e isso é uma grande parte do que a MLSys trata. "