Pesquisadores relatam avanço na ‘aprendizagem profunda distribuída’

Os compradores on-line normalmente juntam algumas palavras para procurar o produto que desejam, mas em um mundo com milhões de produtos e compradores, a tarefa de combinar essas palavras não específicas ao produto certo é um dos maiores desafios na recuperação de informações.

Usando uma abordagem de dividir e conquistar que aproveita o poder de detecção comprimido, computador cientistas da Universidade Rice e Amazon têm mostrado que pode reduzir a quantidade de tempo e recursos computacionais que leva para computadores de trem para pesquisa de produtos e “semelhantes problemas de classificação extremas ” como tradução de fala e resposta a perguntas gerais.

A pesquisa será apresentada nesta semana na Conferência de 2019 sobre Sistemas de Processamento de Informação Neural ( NeurIPS 2019 ) em Vancouver. Os resultados incluem testes realizados em 2018, quando o pesquisador Anshumali Shrivastava e o autor principal Tharun Medini, ambos de Rice, estavam visitando o Amazon Search em Palo Alto, Califórnia.

Em testes em um conjunto de dados de pesquisa da Amazon que incluía cerca de 70 milhões de consultas e mais de 49 milhões de produtos, Shrivastava, Medini e colegas mostraram sua abordagem de usar “classificadores de média mesclada via hash” (MACH) exigia uma fração dos recursos de treinamento do alguns sistemas comerciais de ponta.

“Nossos tempos de treinamento são cerca de 7 a 10 vezes mais rápidos, e nossas pegadas de memória são 2-4 vezes menores que as melhores performances de linha de base dos sistemas de aprendizado profundo distribuídos em larga escala anteriormente relatados”, disse Shrivastava, professor assistente de ciência da computação no Rice.

Medini, Ph.D. estudante de Rice, a pesquisa de produtos é desafiadora, em parte, devido ao grande número de produtos. “Existem cerca de 1 milhão de palavras em inglês, por exemplo, mas existem facilmente mais de 100 milhões de produtos on-line”.

Existem também milhões de pessoas comprando esses produtos, cada um à sua maneira. Alguns digitam uma pergunta. Outros usam palavras-chave. E muitos não têm certeza do que estão procurando quando começam. Mas como milhões de pesquisas on-line são realizadas todos os dias, empresas de tecnologia como Amazon, Google e Microsoft têm muitos dados em pesquisas bem-sucedidas. E usar esses dados para um tipo de aprendizado de máquina chamado aprendizado profundo é uma das maneiras mais eficazes de fornecer melhores resultados aos usuários.

Os sistemas de aprendizagem profunda, ou modelos de redes neurais, são vastas coleções de equações matemáticas que recebem um conjunto de números chamados vetores de entrada e os transformam em um conjunto diferente de números chamados vetores de saída. As redes são compostas de matrizes com vários parâmetros e os sistemas de aprendizado profundo distribuído de ponta contêm bilhões de parâmetros que são divididos em várias camadas. Durante o treinamento, os dados são alimentados na primeira camada, os vetores são transformados e as saídas são alimentadas na próxima camada e assim por diante.

“Problemas extremos de classificação” são aqueles com muitos resultados possíveis e, portanto, muitos parâmetros. Os modelos de aprendizado profundo para classificação extrema são tão grandes que geralmente precisam ser treinados no que é efetivamente um supercomputador, um conjunto vinculado de unidades de processamento gráfico (GPU) onde os parâmetros são distribuídos e executados em paralelo, geralmente por vários dias.

“Uma rede neural que recebe entradas de pesquisa e prevê 100 milhões de saídas, ou produtos, normalmente acaba com cerca de 2.000 parâmetros por produto”, disse Medini. “Então você multiplica isso, e a camada final da rede neural agora é de 200 bilhões de parâmetros. E eu não fiz nada sofisticado. Estou falando de um modelo de rede neural simples muito, muito morto”.

“Seriam necessários cerca de 500 gigabytes de memória para armazenar esses 200 bilhões de parâmetros”, disse Medini. “Mas se você observar os algoritmos de treinamento atuais, há um famoso chamado Adam, que usa mais dois parâmetros para cada parâmetro no modelo, porque precisa de estatísticas desses parâmetros para monitorar o processo de treinamento. Então, agora estamos em 200 bilhões de vezes três, e precisarei de 1,5 terabytes de memória de trabalho apenas para armazenar o modelo. Nem sequer cheguei aos dados de treinamento. As melhores GPUs do mercado têm apenas 32 gigabytes de memória; portanto, o treinamento desse modelo é proibitivo devido à enorme comunicação entre GPUs “.

O MACH adota uma abordagem muito diferente. Shrivastava descreve isso com um experimento mental dividindo aleatoriamente os 100 milhões de produtos em três classes, que assumem a forma de baldes. “Estou misturando, digamos, iPhones com carregadores e camisetas no mesmo balde”, disse ele. “É uma redução drástica de 100 milhões para três”.

No experimento mental, os 100 milhões de produtos são classificados aleatoriamente em três baldes em dois mundos diferentes, o que significa que os produtos podem acabar em baldes diferentes em cada mundo. Um classificador é treinado para atribuir pesquisas aos buckets, e não aos produtos dentro deles, o que significa que o classificador precisa apenas mapear uma pesquisa para uma das três classes de produto.

“Agora eu alimento uma pesquisa para o classificador no mundo um, e ele diz que o balde três, e eu o alimento para o classificador no mundo dois, e ele diz que o balde um”, disse ele. “No que essa pessoa está pensando? A classe mais provável é algo comum entre esses dois baldes. Se você observar a possível interseção dos baldes, existem três no mundo, uma vez, três no mundo, ou nove possibilidades”, ele disse. “Portanto, reduzi meu espaço de pesquisa para mais de nove e paguei apenas o custo de criar seis classes”.

Adicionar um terceiro mundo e mais três baldes aumenta o número de interseções possíveis em um fator de três. “Agora existem 27 possibilidades para o que essa pessoa está pensando”, disse ele. “Portanto, reduzi meu espaço de pesquisa em mais de 27, mas paguei apenas o custo de nove classes. Pago um custo linearmente e estou obtendo uma melhoria exponencial”.

Em suas experiências com o banco de dados de treinamento da Amazon, Shrivastava, Medini e colegas dividiram aleatoriamente os 49 milhões de produtos em 10.000 classes, ou baldes, e repetiram o processo 32 vezes. Isso reduziu o número de parâmetros no modelo de cerca de 100 bilhões para 6,4 bilhões. E o treinamento do modelo levou menos tempo e menos memória do que alguns dos melhores tempos de treinamento relatados em modelos com parâmetros comparáveis, incluindo o modelo de Mistura de Especialistas Sparsely-Gated do Google ( MoE) , disse Medini.

Ele disse que a característica mais significativa da MACH é que ela não requer comunicação entre processadores paralelos. No experimento mental, é isso que é representado pelos mundos separados e independentes.

“Eles nem precisam conversar”, disse Medini. “Em princípio, você poderia treinar cada um dos 32 em uma GPU, o que é algo que você nunca poderia fazer com uma abordagem não-independente”.

Shrivastava disse: “Em geral, o treinamento exige comunicação entre parâmetros, o que significa que todos os processadores que estão executando paralelamente precisam compartilhar informações. Olhando para o futuro, a comunicação é um grande problema no aprendizado profundo distribuído. O Google expressou suas aspirações de treinar um Rede de parâmetros de 1 trilhão, por exemplo. O MACH, atualmente, não pode ser aplicado a casos de uso com pequeno número de classes, mas, para classificação extrema, alcança o Santo Graal da comunicação zero. “