loading

Análise de caso da tecnologia de aprendizagem profunda baseada em Spark e Bigdl

Este artigo compartilha principalmente a experiência prática da Intel e JD na construção de uma estrutura de extração de recursos de imagem em grande escala baseada na tecnologia de aprendizado profundo de faísca e bigdl. A extração de recursos de backgroundImage é amplamente usada em recuperação de imagens semelhantes, duplicação e assim por diante. Antes de usar o framework bigdl (que será mencionado mais tarde), tentamos desenvolver e implantar aplicativos de extração de recursos em várias máquinas, placa de várias GPU e cluster de GPU, respectivamente. No entanto, as estruturas acima têm desvantagens óbvias:

Análise de caso da tecnologia de aprendizagem profunda baseada em Spark e Bigdl 1

No cluster de GPU, a estratégia de alocação de recursos baseada na placa GPU é muito complexa e a alocação de recursos está sujeita a problemas, como memória de vídeo restante insuficiente, resultando em oom e falha de aplicativo. No caso de uma única máquina, em comparação com o modo de cluster, os desenvolvedores precisam fazer manualmente a fragmentação de dados, Tolerância de carga e falha. A aplicação do modo GPU, tomando o Caffe como exemplo, tem muitas dependências, incluindo o CUDA, o que aumenta a dificuldade de implantação e manutenção. Por exemplo, quando há problemas com diferentes versões do sistema operacional e versões do GCC, eles precisam ser recompilados e empacotados.

Os problemas acima fazem com que o programa avançado baseado na GPU enfrente muitos desafios de aplicação técnica na arquitetura.

Vamos olhar para a cena em si. Como o fundo de muitas imagens é complexo e a proporção de objetos sujeitos geralmente é pequena, a fim de reduzir a interferência do fundo na precisão da extração de recursos, o sujeito precisa ser separado da imagem. Naturalmente, o quadro de extração de recursos de imagem é dividido em duas etapas. Primeiro, o alvo é detectado pelo algoritmo de detecção de alvo e, em seguida, o recurso de destino é extraído pelo algoritmo de extração de recursos. Aqui, usamos SSD [1] (detector multibox de tiro único) para detecção de alvo e rede deepbit [2] para extração de recursos.

Jingdong tem um grande número de (mais de centenas de milhões de) imagens de produtos no banco de dados de código aberto distribuído. Portanto, como recuperar e processar dados com eficiência em um ambiente distribuído em grande escala é um problema fundamental do pipeline de extração de recursos de imagem. As soluções existentes baseadas em GPU enfrentam outros desafios para resolver os requisitos dos cenários acima: O download de dados leva muito tempo, e o esquema baseado em GPU não pode otimizá-lo bem. Para os dados de imagem no banco de dados de código aberto distribuído, o processo de processamento de dados inicial do esquema de GPU é muito complexo, E não há uma estrutura de software madura para gerenciamento de recursos, processamento de dados distribuídos e gerenciamento de tolerância a falhas.

Análise de caso da tecnologia de aprendizagem profunda baseada em Spark e Bigdl 2

Devido às limitações do software de GPU e da estrutura de hardware, é muito desafiador expandir o esquema de GPU para lidar com imagens em grande escala. Esquema de integração Bigdl No ambiente de produção, o uso das instalações de software e hardware existentes melhorará muito a eficiência da produção (como reduzir o R & D tempo de novos produtos) e reduzir o custo. Nesse caso, os dados são armazenados no banco de dados de código aberto distribuído mainstream no cluster de big data. Se o aplicativo de aprendizado profundo puder usar o cluster de big data existente (como Hadoop ou spark cluster) para computação, ele poderá resolver facilmente os desafios acima.

O projeto bigdl de código aberto da Intel [3] é uma estrutura de aprendizado profundo distribuída sobre faísca, que fornece suporte abrangente a algoritmos de aprendizado profundo. Bigdl pode ser facilmente estendido para centenas ou milhares de nós com a escalabilidade distribuída da plataforma de faísca. Ao mesmo tempo, bigdl usa biblioteca de computação matemática Intel MKL e tecnologia de computação paralela para alcançar alto desempenho no servidor Intel Xeon (o poder de computação pode ser comparável ao desempenho da GPU convencional). Em nosso cenário, bigdl é personalizado para suportar vários modelos (detecção e classificação); O modelo é transplantado de ser aplicável apenas a ambiente específico para ambiente de big data bigdl com suporte de modelo geral (café, tocha, tensorflow); Todo o processo de pipeline foi otimizado e acelerado. O pipeline para extração de recursos em ambiente de faísca através de bigdl é mostrado na Figura 1:

Use faísca para ler centenas de milhões de imagens originais do banco de dados de código aberto distribuído e construir faísca RDDUse para pré-processar imagens, incluindo redimensionar, subtrair o valor médio e compor o Dados em um batchUsando bigdl para carregar o modelo SSD, a detecção de alvos em grande escala e distribuída é realizada na imagem através de faísca, e uma série de coordenadas de detecção e pontuações correspondentes são obtidas

O resultado de detecção com a pontuação mais alta é mantido como o alvo do assunto, e a imagem do alvo é obtida cortando a imagem original de acordo com as coordenações de detecçãoProcessar o RDD do alvo Imagem, incluindo redimensionamento, para formar um batchBigdl é usado para carregar o modelo deepbit, e faísca é usada para extrair os recursos distribuídos da imagem de destino detectada para obter o correspondente Características

Os resultados da detecção (RDD do recurso de destino extraído) são armazenados em HDFSO pipeline de análise de dados completo, incluindo leitura de dados, particionamento de dados, pré-processamento, previsão e armazenamento de resultados, pode ser facilmente implementado em faísca através de bigdl. No cluster de big data existente (Hadoop / spark), os usuários podem executar aplicativos de aprendizado profundo usando bigdl sem modificar nenhuma configuração de cluster. Além disso, o bigdl pode ser facilmente estendido a um grande número de nós e tarefas usando a alta escalabilidade da plataforma de faísca, de modo que acelera muito o processo de análise de dados. Além do suporte de aprendizado profundo distribuído, o bigdl também fornece muitas ferramentas fáceis de usar, como biblioteca de pré-processamento de imagens, ferramentas de carregamento de modelos (Incluindo modelos de carregamento de estrutura de aprendizado profundo de terceiros), o que é mais conveniente para os usuários construírem todo o pipeline.

PreprocessingBigdl fornece uma biblioteca de pré-processamento de imagem [4] baseada em OpenCV [5], que suporta várias funções comuns de conversão de imagem e aprimoramento de imagem. Os usuários podem facilmente usar essas funções básicas para construir um pipeline de pré-processamento de imagem. Além disso, os usuários também podem chamar a função opencv fornecida pela biblioteca para operar a conversão de imagens personalizadas. O pipeline de pré-processamento desta amostra converte um RDD original em um RDD em lote por meio de uma série de transformações. Entre eles, o bytetomat converte a imagem de byte no formato de armazenamento de tapete do OpenCV, redimensionar ajusta o tamanho da imagem para 300x300 e o mattofloats salva os pixels no tapete no formato de matriz flutuante e subtrai o valor médio do canal correspondente. Finalmente, o roiimagetobatch forma os dados em um lote, que é usado como entrada do modelo para previsão ou treinamento.

Carregando modeloOs usuários podem facilmente usar bigdl para carregar o modelo pré-treinado e usá-lo diretamente no Programa Spark. Dado o arquivo de modelo bigdl, você pode chamar module.load para obter o modelo. Além disso, bigdl também suporta a importação de modelos de estrutura de aprendizado profundo de terceiros, como Caffe, tocha e tensorflow.

Os usuários podem carregar facilmente o modelo treinado para previsão de dados, extração de recursos, ajuste fino do modelo e assim por diante. Tomando o Caffe como exemplo, o modelo do Caffe consiste em dois arquivos, arquivo de definição de protótipo de modelo e arquivo de parâmetro de modelo. Conforme mostrado abaixo, os usuários podem facilmente carregar o modelo Caffe pré-treinado em programas de faísca e bigdl. performanceNós referenciamos o desempenho da solução de cluster de GPU com base no Caffe e na solução de cluster Xeon com base em bigdl. Os testes estão sendo executados no ambiente de cluster interno do JD.

Teste padrão para encerrar o pipeline de processamento e análise de imagens, incluindo: Ler imagens do banco de dados de código aberto distribuído (baixar imagens da fonte de imagem para a memória)

Entrada no modelo de detecção de destino e no modelo de extração de recursos para extração de recursos. Salve os resultados (caminhos e recursos da imagem) no sistema de arquivos. Nota: o fator de download se tornou um fator importante que afeta a taxa de transferência geral de ponta a ponta. Nesse caso, essa parte do tempo de processamento representa cerca de metade do tempo total de processamento (recursos de detecção de download). O servidor GPU não pode usar GPU para acelerar o processamento do download.

Ambiente de teste GPU: NVIDIA Tesla K40, 20 cartões executados simultaneamente CPU: CPU Intel (R) Xeon (R) e5-2650 de CPU V4 @ 2,20 GHz, 1200 núcleos lógicos no total (cada servidor tem 24 núcleos físicos, permite hyper threading e é configurado como 50 núcleos lógicos de fio)

Resultado do teste A Figura 2 mostra que a taxa de transferência do Caffe de 20 imagens de processamento simultâneas K40 é de cerca de 540 pictures / s, enquanto a taxa de transferência do bigdl no cluster de fios (Xeon) com 1200 núcleos lógicos é de cerca de 2070 pictures / s. A taxa de transferência de bigdl no cluster Xeon é cerca de 3,83 vezes a do cluster GPU, o que reduz muito o tempo de processamento de imagens em grande escala. Os resultados do teste mostram que o bigdl fornece melhor suporte em aplicativos de extração de recursos de imagem em grande escala. A alta escalabilidade, o alto desempenho e a facilidade de uso da Bigdl ajudam a JD a lidar mais facilmente com o crescimento maciço e explosivo da escala de imagens. Com base nesses resultados de teste, a JD está atualizando a implementação da extração de recursos de imagem Caffe com base no esquema de cluster GPU para bigdl com base no cluster Xeon e implantando-o para estimular o ambiente de produção de cluster.

A Figura 2 compara a taxa de transferência de K40 e Xeon na alta escalabilidade, alto desempenho e facilidade de uso do pipelineBigdl de extração de recursos de imagem ajudam JD a usar mais facilmente a tecnologia de aprendizado profundo para processar imagens massivas. JD continuará a aplicar bigdl a uma gama mais ampla de aplicativos de aprendizagem em profundidade, como treinamento de modelo distribuído.

[1]. Liu, Wei, et al. SSD: Detector MulTIbox de tiro único. Conferência Europeia sobre visão computacional. Springer, Cham, 2016.[2]. Lin, Kevin, et al. Aprendendo descritores binários compactos com redes neurais profundas não supervisionadas. Anais da Conferência IEEE sobre Visão Computacional e Reconhecimento de Padrões, 2016.[3]. Https://github.com/intel-analyTIcs/BigDL

[4]. Https://github.com/intel-analytics/analytics-zoo/tree/master/transform/vision[5].

Entre em contato conosco
Artigos recomendados
Casos
A introdução do dispensador de bilhetes de estacionamento O dispensador de bilhetes de estacionamento é um tipo extremamente comum de ficha que as pessoas usam para comprar bens e serviços. Quando você
Como funcionam os dispensadores de bilhetes de estacionamento Você pode comprar bilhetes de estacionamento online comprando bilhetes de estacionamento é fácil, mas também pode pagar com seu cartão de débito, cartão de crédito, cheque
A introdução do dispensador de bilhetes de estacionamento O dispensador de bilhetes de estacionamento é uma forma inovadora de eliminar o incómodo de pagar os bilhetes de estacionamento. Para as pessoas w
Como funcionam os dispensadores de bilhetes de estacionamento Os dispensadores de bilhetes de estacionamento funcionam noche esta edicin flickerrolls politika sin sadismo cigarros shuhua nga qiaomiao miaoxian o harakk
Como funcionam os dispensadores de multas de estacionamento Se não gostar, afaste-se e deixe-o. É assim que as pessoas que andam de carro sempre dirigiram. O
Introdução ao dispensador de multas de estacionamento Existem muitas maneiras diferentes de descartar uma multa de estacionamento. É possível estacionar seu carro em um pedestal especial,
Como funcionam os dispensadores de tíquetes de estacionamentoExistem muitas maneiras de estacionar. Muitas pessoas não percebem que estacionar é muito perigoso. Muitas vezes as pessoas estacionam em seus carros
O que é o dispensador de bilhetes de estacionamento? Existem várias coisas que afetam a maneira como as pessoas usam o dispensador de bilhetes de estacionamento. Por exemplo, algumas pessoas podem estar dirigindo
Como funcionam os distribuidores de tíquetes de estacionamento As pessoas pensam que os distribuidores de tíquetes de estacionamento funcionam, mas não funcionam. As pessoas pensam que dispensadores de multas de estacionamento funcionam, mas não funcionam
Como funcionam os dispensadores de bilhetes de estacionamento Devemos ser gratos pelos seus assentos de carro porque eles nos fazem sentir seguros e não precisamos sair do nosso caminho para estacionar. Pessoas que h
sem dados
Shenzhen Tiger Wong Technology Co., Ltd é o fornecedor líder de soluções de controle de acesso para sistema de estacionamento inteligente de veículos, sistema de reconhecimento de placas, catraca de controle de acesso de pedestres, terminais de reconhecimento facial e Soluções de estacionamento LPR .
sem dados
CONTACT US

Tecnologia Co. de Shenzhen TigerWong, Ltd

Tel:86 13717037584

O email: info@sztigerwong.com

Adicionar: 1º Andar, Edifício A2, Silicon Valley Power Digital Industrial Park, No. Estrada Dafu 22, Rua Guanlan, Distrito de Longhua,

Shenzhen, província de Guangdong, China  

                    

Direitos autorais©Tecnologia TigerWong Shenzhen 2021 Co.,Ltd  | Mapa do site
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
cancelar
Customer service
detect