Simple Science

Ciência de ponta explicada de forma simples

# Engenharia Eletrotécnica e Ciência dos Sistemas# Visão computacional e reconhecimento de padrões# Aprendizagem de máquinas# Processamento de Imagem e Vídeo

Acelerando Modelos de Difusão Grandes em Dispositivos

Avanços para melhorar o desempenho de grandes modelos de difusão em dispositivos móveis.

― 6 min ler


Otimizando IA paraOtimizando IA paraDispositivos Móveisimagem em várias plataformas móveis.Melhorando a velocidade de geração de
Índice

O mundo da inteligência artificial tá mudando rápido, graças ao surgimento dos grandes modelos de difusão. Esses modelos conseguem criar imagens incríveis e fazer várias coisas que deixam todo mundo animado. Usar esses modelos diretamente nos dispositivos tem várias vantagens, como economizar grana com servidores, poder trabalhar offline e manter os dados dos usuários em sigilo. Mas o desafio tá no tamanho desses modelos, que frequentemente têm mais de um bilhão de configurações. Isso pode ser complicado pra dispositivos que não têm muito poder de processamento ou memória.

Nesse papo, vamos compartilhar maneiras de fazer esses modelos rodarem mais rápidos em dispositivos móveis. Usando escolhas de design inteligentes, conseguimos alcançar o desempenho mais rápido conhecido pra um modelo específico chamado Stable Diffusion. Com essa descoberta, conseguimos oferecer uma experiência melhor pra todo tipo de dispositivo.

Entendendo os Grandes Modelos de Difusão

Os grandes modelos de difusão são especiais pela maneira como geram imagens. Eles se destacam em comparação a outros métodos como Redes Adversariais Generativas (GANs) e Autoencoders Variacionais (VAEs). Enquanto os GANs são conhecidos por criar imagens de alta qualidade, eles podem ser difíceis de treinar. Os VAEs usam uma abordagem diferente pra gerar imagens, mas podem não sempre alcançar a mesma qualidade dos GANs.

Recentemente, os modelos de difusão ganharam popularidade porque criam imagens de forma eficaz através de um método que remove o ruído passo a passo. Um modelo bem popular nessa categoria é o Stable Diffusion. Sua capacidade de produzir imagens fotorealistas fez com que ele fosse bastante usado em várias tarefas, como editar imagens e gerar imagens a partir de textos.

Benefícios da Implementação em Dispositivos

Quando se trata de usar grandes modelos de difusão, uma pergunta chave é onde eles devem rodar. Rodar eles diretamente nos dispositivos traz várias vantagens. Isso reduz custos com servidores, permite trabalhar offline e mantém a privacidade do usuário, já que os dados ficam no dispositivo.

Mas usar grandes modelos como o Stable Diffusion diretamente nos dispositivos não é fácil por conta do grande número de configurações. Se não forem bem projetados, esses modelos podem ficar lentos e consumir muita memória. Embora tenham havido tentativas de fazer o Stable Diffusion funcionar em dispositivos, esses esforços geralmente focam em dispositivos específicos, deixando espaço pra melhorias.

Nossa Abordagem pra Acelerar a Inferência

Nesse estudo, apresentamos várias melhorias pra fazer esses modelos rodarem mais rápido em dispositivos. Conseguimos um desempenho impressionante com o Stable Diffusion em dispositivos com GPUs, reduzindo significativamente o tempo pra gerar imagens.

Trabalhos Relacionados em Geração de Imagens

A geração de imagens se tornou um tema quente na pesquisa, especialmente nos últimos anos. Como já mencionado, os GANs foram uma escolha popular por conta da habilidade deles em gerar imagens detalhadas. Mas treinar eles pode ser desafiador. Os VAEs representam outro caminho, gerando imagens através de um método que se foca em padrões ocultos, mas podem não atingir o mesmo nível de qualidade.

O Modelo Probabilístico de Difusão Denoising (DDPM) marca um ponto chave na evolução dos modelos de difusão, mostrando a capacidade deles de gerar imagens detalhadas através de processos iterativos que removem o ruído. Isso levou ao surgimento de modelos como o Stable Diffusion, que muita gente na comunidade começou a usar e expandir.

Técnicas pra Melhorar o Desempenho

Pra ajudar a fornecer resultados mais rápidos, olhamos como otimizar as etapas envolvidas na geração de imagens a partir de textos. As partes principais do processo incluem pegar a entrada de texto, criar ruído, usar uma rede neural pra limpar o ruído e finalmente transformar isso em uma imagem.

Kernels Especializados: Normalização em Grupo e GELU

Uma técnica importante que usamos se chama Normalização em Grupo (GN). Esse método divide os dados em grupos menores, facilitando o manuseio, especialmente quando lidamos com tamanhos de dados diferentes. Encontramos uma maneira de executar todas as operações relacionadas à GN de uma vez só usando um comando especial da GPU, acelerando as coisas.

Também focamos na função de ativação chamada Unidade Linear de Erro Gaussiano (GELU), que faz várias cálculos. Criamos um método especial pra realizar esses cálculos de forma mais eficiente, ajudando a melhorar ainda mais o desempenho.

Melhorando o Mecanismo de Atenção

O mecanismo de atenção é crucial pra combinar entradas de texto e imagem. Mas ele pode ser lento ao lidar com sequências de dados longas. Pra combater isso, implementamos duas otimizações principais:

  1. Softmax Parcialmente Fundido: Esse método divide a operação softmax em etapas menores, que podem ser calculadas mais facilmente. Projetamos isso pra rodar mais rápido enquanto usa menos memória.

  2. FlashAttention: Esse é outro método que ajuda a acelerar o processo de atenção minimizando o uso de memória. Usamos o FlashAttention seletivamente em situações específicas onde ele traz mais benefícios.

Convolução de Winograd

Também investigamos um método chamado convolução de Winograd. Essa técnica simplifica operações de convolução transformando-as em menos cálculos. Embora exija mais memória, encontramos um ponto ideal que oferece um bom equilíbrio entre velocidade e quantidade de memória utilizada.

Avaliação e Resultados

Pra medir como nossas otimizações funcionaram, testamos elas em vários dispositivos. Focamos em dispositivos como o Samsung S23 Ultra e o iPhone 14 Pro Max. Nossos resultados mostraram melhorias claras em velocidade e eficiência conforme aplicamos nossas otimizações uma por uma.

Por exemplo, o tempo pra rodar o modelo em uma única iteração diminuiu significativamente, mostrando que cada otimização contribuiu pro desempenho geral. Além disso, quando analisamos o processo completo de passar da entrada de texto pra uma imagem final, conseguimos um tempo recorde na geração de imagens de alta qualidade.

Conclusão

No geral, compartilhamos um conjunto de melhorias empolgantes pra fazer grandes modelos de difusão mais rápidos e eficientes em diferentes dispositivos. Essas otimizações ajudam a tornar a tecnologia mais acessível e a melhorar a experiência do usuário. Ao ajustar como esses modelos funcionam, podemos esperar aplicações ainda mais amplas da IA generativa no futuro.

Fonte original

Título: Speed Is All You Need: On-Device Acceleration of Large Diffusion Models via GPU-Aware Optimizations

Resumo: The rapid development and application of foundation models have revolutionized the field of artificial intelligence. Large diffusion models have gained significant attention for their ability to generate photorealistic images and support various tasks. On-device deployment of these models provides benefits such as lower server costs, offline functionality, and improved user privacy. However, common large diffusion models have over 1 billion parameters and pose challenges due to restricted computational and memory resources on devices. We present a series of implementation optimizations for large diffusion models that achieve the fastest reported inference latency to-date (under 12 seconds for Stable Diffusion 1.4 without int8 quantization on Samsung S23 Ultra for a 512x512 image with 20 iterations) on GPU-equipped mobile devices. These enhancements broaden the applicability of generative AI and improve the overall user experience across a wide range of devices.

Autores: Yu-Hui Chen, Raman Sarokin, Juhyun Lee, Jiuqiang Tang, Chuo-Ling Chang, Andrei Kulik, Matthias Grundmann

Última atualização: 2023-06-16 00:00:00

Idioma: English

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

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

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