Simple Science

Ciência de ponta explicada de forma simples

# Informática# Computação distribuída, paralela e em cluster# Aprendizagem de máquinas

Uma Estrutura para Computação Dividida Eficiente em DNNs

Um novo framework enfrenta desafios na criação de aplicações de aprendizado profundo distribuído.

― 6 min ler


Otimizando DNNs com NovoOtimizando DNNs com NovoFrameworklearning.computação dividida eficiente em deepApresentando uma estrutura para
Índice

Nos últimos anos, muitos aplicativos que reconhecem padrões usam sistemas complexos onde sensores e computadores trabalham juntos por meio de uma rede de comunicação. Redes Neurais Profundas (DNNs) são fundamentais para esses sistemas, pois ajudam a tomar decisões robustas, mas precisam de uma baita potência de computação. Por causa disso, os desenvolvedores muitas vezes precisam dividir uma DNN em partes, ou seja, parte do trabalho é feito em um dispositivo e o resto em um servidor. Descobrir como dividir uma DNN não é fácil, o que aumenta o desafio de criar aplicativos de aprendizado profundo.

A Necessidade de uma Nova Estrutura

Para enfrentar esse desafio, propomos uma nova estrutura. Essa estrutura tem três características principais:

  1. Ela identifica os melhores lugares para dividir uma rede neural com base em como cada parte da rede interpreta a entrada, sem precisar de um longo processo de tentativa e erro.

  2. Ela faz simulações que consideram as necessidades de comunicação, permitindo avaliações rápidas de diferentes maneiras de organizar a rede neural.

  3. Ela propõe a melhor opção para atender aos requisitos de qualidade de serviço de um aplicativo, equilibrando desempenho, precisão e velocidade.

Como a Estrutura Funciona

A estrutura funciona identificando pontos candidatos para dividir a DNN. Primeiro, ela alimenta a entrada na rede para criar mapas especiais que mostram quão importante cada camada é para tomar decisões. Ao fazer a média desses mapas, uma curva de saliência cumulativa é criada, destacando as melhores camadas para divisão.

Em seguida, cada ponto de divisão candidato é simulado para entender como ele se comporta e como atende às necessidades do aplicativo em relação à precisão e velocidade. Por fim, a estrutura escolhe o ponto de divisão que oferece o melhor equilíbrio entre qualidade de serviço e desempenho.

O Papel das DNNs

Nos últimos dez anos, as DNNs mostraram um desempenho excepcional em várias áreas, como classificação de objetos e detecção de características. No entanto, a alta potência de computação necessária por algumas DNNs limita seu uso em dispositivos com menos recursos. Uma opção é rodar modelos simplificados, mas isso muitas vezes reduz a precisão geral.

Portanto, a abordagem comum é transferir dados do dispositivo para uma máquina poderosa por meio de uma rede, processando os dados lá e enviando os resultados de volta se necessário. Esse método pode levar a atrasos devido a limitações da rede.

Computação Dividida como Solução

A computação dividida (SC) é um conceito recente que divide uma DNN em duas partes: uma "cabeça" que roda no dispositivo e uma "cauda" que roda no servidor remoto. Esse método combina os benefícios da computação local e remota, reduzindo atrasos e diminuindo a quantidade de dados enviados pela rede.

Projetar aplicativos de aprendizado profundo distribuído requer examinar três aspectos principais: a plataforma de computação, a configuração de comunicação e a DNN em si. Enquanto a plataforma é direta, os outros dois introduzem incertezas devido à natureza variável das redes e das DNNs.

Seleção de Pontos de Divisão Baseada em Saliência

Encontrar o ponto de divisão ideal depende de entender a importância de várias camadas da rede. A abordagem baseada em saliência ajuda a identificar quais camadas carregam informações críticas para a tomada de decisões. Esse método reduz dramaticamente o tempo necessário para design e implantação.

Cada camada da DNN busca características específicas na entrada, como as formas de objetos em uma imagem. Algumas dessas características são essenciais para fazer classificações precisas. Por exemplo, se uma DNN precisa identificar formas diferentes, deve manter informações importantes até chegar à camada de detecção de formas antes que uma divisão aconteça.

O processo também reconhece que não só dados densos importam, mas dados informativos também. Ele se concentra em preservar partes da rede onde decisões vitais ocorrem, o que melhora o design geral.

Uma Estrutura Prática

A estrutura é projetada para ser rápida e fácil de usar, simplificando a criação de sistemas distribuídos que rodam uma ou mais DNNs. Ela imita com precisão vários protocolos de comunicação e necessidades de aplicativos enquanto sugere configurações adequadas para otimizar a Qualidade do Serviço e o desempenho.

Ao fazer simulações, a estrutura busca identificar pontos de divisão adequados em uma arquitetura DNN para um aplicativo real. Pode avaliar uma tarefa de classificação, por exemplo, identificando brinquedos infantis enquanto eles passam por uma esteira.

Simulação e Resultados

A estrutura funciona testando como a DNN se comporta sob diferentes condições. Avalia vários aspectos do aplicativo, como latência e precisão, para determinar qual configuração melhor atende aos requisitos.

Experimentos mostram a eficácia da estrutura. Ela demonstra que os pontos de divisão podem influenciar tanto a velocidade de transmissão de dados quanto a precisão dos resultados. Quando um ponto de divisão é escolhido corretamente, o aplicativo pode manter seu desempenho mesmo com altas taxas de perda de dados, o que muitas vezes ocorre em cenários do mundo real.

A estrutura também avalia o impacto dos protocolos de rede, como TCP e UDP. Enquanto o TCP fornece estabilidade, pode levar a uma latência maior. Por outro lado, o UDP minimiza atrasos, mas pode arriscar perder precisão. A escolha do protocolo depende das necessidades específicas do aplicativo, e a estrutura ajuda a guiar essa decisão.

Conclusão

A estrutura desenvolvida oferece uma nova maneira de projetar aplicativos de aprendizado profundo distribuídos de forma eficaz. Ao considerar as qualidades únicas das DNNs, a estrutura sugere configurações ideais para atender aos requisitos de qualidade de serviço enquanto assegura altos níveis de desempenho em termos de precisão e latência.

Essa solução aborda a crescente necessidade de melhores maneiras de aproveitar o aprendizado profundo em aplicações do mundo real, especialmente onde os recursos são limitados. Trabalhos futuros vão se concentrar em aprimorar ainda mais a estrutura e realizar avaliações mais extensas para solidificar seus benefícios.

Em resumo, a estrutura simplifica o processo de design para sistemas de computação complexos, permitindo uma implantação mais rápida e eficiente de aplicações de aprendizado profundo em várias áreas. Ela cria oportunidades para os desenvolvedores otimizarem seus sistemas de maneira eficaz, mantendo alto desempenho e confiabilidade.

Fonte original

Título: Split-Et-Impera: A Framework for the Design of Distributed Deep Learning Applications

Resumo: Many recent pattern recognition applications rely on complex distributed architectures in which sensing and computational nodes interact together through a communication network. Deep neural networks (DNNs) play an important role in this scenario, furnishing powerful decision mechanisms, at the price of a high computational effort. Consequently, powerful state-of-the-art DNNs are frequently split over various computational nodes, e.g., a first part stays on an embedded device and the rest on a server. Deciding where to split a DNN is a challenge in itself, making the design of deep learning applications even more complicated. Therefore, we propose Split-Et-Impera, a novel and practical framework that i) determines the set of the best-split points of a neural network based on deep network interpretability principles without performing a tedious try-and-test approach, ii) performs a communication-aware simulation for the rapid evaluation of different neural network rearrangements, and iii) suggests the best match between the quality of service requirements of the application and the performance in terms of accuracy and latency time.

Autores: Luigi Capogrosso, Federico Cunico, Michele Lora, Marco Cristani, Franco Fummi, Davide Quaglia

Última atualização: 2023-03-22 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2303.12524

Fonte PDF: https://arxiv.org/pdf/2303.12524

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes