A equipe está usando análises profundas de cálculos paralelos para acelerar o aprendizado de máquina em escala. Crédito:Onur Oymak / Alamy
Ao desconstruir e analisar os métodos experimentados e testados usados em cálculos maciçamente paralelos, uma colaboração liderada pela KAUST desenvolveu uma estrutura inovadora para cálculos paralelos eficientes em escala. O framework tem relevância particular para os tipos de processamento necessários para otimização no aprendizado de máquina.
"Paralelizar" uma tarefa de otimização ou processamento de dados permite que a tarefa seja distribuída entre muitos nós computacionais. Idealmente, isso dividiria o tempo necessário para a computação pelo número de nós recrutados para a tarefa. Contudo, com a paralelização, surge a necessidade de passar quantidades crescentes de informações entre os nós, o que significa que o grau ideal de aceleração nunca é alcançado na prática.
"Na otimização distribuída, um problema comum é o gargalo de comunicação, "explica Konstantin Mishchenko do Visual Computing Center." Imagine que você tivesse um computador com quatro núcleos, e você deseja executar seu programa paralelizado em um novo computador com 16 núcleos. Naturalmente, você esperaria que o novo computador fosse cerca de quatro vezes mais rápido. Mas, mesmo que o novo computador tenha quatro vezes o poder de computação total, muito disso é usado pela sincronização dos núcleos em cada atualização do modelo. Esse gargalo de comunicação reduz o efeito positivo de aumentar o número de núcleos e se torna grave quando escalamos o número de núcleos para centenas ou milhares. "
Uma pesquisa recente do grupo de Peter Richtárik abordou esse problema de duas maneiras - melhorando a compressão das informações passadas em cada sincronização e generalizando o algoritmo de aprendizagem para que possa ser usado com qualquer esquema de compressão.
"A coisa mais difícil de entender é por que as ideias existentes sempre funcionam, "diz Mishchenko." Normalmente, pesquisadores primeiro adivinham que truque precisa ser usado, e só mais tarde começamos a entender por que funciona. Isso é exatamente o que fizemos:usando contra-exemplos simples, reanalisamos dois truques bem conhecidos e chegamos à conclusão de que existe uma maneira melhor de usá-los. "
Essas técnicas, chamado de quantização e esparsificação aleatória, são métodos de compactação normalmente usados isoladamente. Ao combinar ambos, e crucialmente, apenas comprimindo a diferença entre as novas informações e a atualização anterior, a equipe provou matematicamente que um esquema de compressão mais eficiente é possível com menos perda de informações.
“O mais importante é que esta nova técnica, onde comprimimos a diferença entre as informações atuais e anteriores - e não apenas as novas informações em si - garante que menos informações sejam perdidas quando executamos uma compactação, "diz Mishchenko." E nós provamos e observamos em experimentos que o dimensionamento usando nosso método está mais próximo do ideal. "
A outra descoberta generaliza o algoritmo de aprendizado para uma variedade de tarefas de otimização diferentes de uma forma que permite que seja usado com qualquer esquema de compressão.
"Nossa motivação foi criar uma teoria geral que não dependa de nenhum esquema de compressão específico para entender os efeitos da compressão no treinamento distribuído, "diz Samuel Horvath da equipe de pesquisa.
O uso dessa teoria torna possível construir algoritmos para computação distribuída sem os problemas de otimização incompleta e dependência de esquemas de compressão específicos enfrentados pelos métodos existentes.
"Este trabalho nos ajuda a entender melhor os efeitos dos diferentes métodos de compressão e nos ajuda a escolher o esquema de compressão certo para o problema em questão, "diz Horvath.