Entre em contato

StreamDiffusion: uma solução em nível de pipeline para geração interativa em tempo real

Inteligência artificial

StreamDiffusion: uma solução em nível de pipeline para geração interativa em tempo real

mm
StreamDiffusion: uma solução em nível de pipeline para geração interativa em tempo real

Devido ao seu vasto potencial e oportunidades de comercialização, especialmente em jogos, radiodifusão e streaming de vídeo, o Metaverso é atualmente uma das tecnologias de crescimento mais rápido. Os aplicativos modernos do Metaverso utilizam estruturas de IA, incluindo visão computacional e modelos de difusão, para aumentar seu realismo. Um desafio significativo para as aplicações do Metaverso é a integração de vários pipelines de difusão que fornecem baixa latência e alto rendimento, garantindo uma interação eficaz entre humanos e essas aplicações.

As atuais estruturas de IA baseadas em difusão se destacam na criação de imagens a partir de prompts textuais ou de imagem, mas deixam a desejar em interações em tempo real. Essa limitação é particularmente evidente em tarefas que exigem entrada contínua e alto rendimento, como gráficos de videogames, aplicativos do Metaverso, transmissão e streaming de vídeo ao vivo.

Neste artigo, discutiremos o StreamDiffusion, um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, abordando as limitações atuais dos frameworks baseados em difusão em tarefas que envolvem entrada contínua. StreamDiffusion é uma abordagem inovadora que transforma o ruído sequencial da imagem original em eliminação de ruído em lote, com o objetivo de permitir alto rendimento e fluxos fluidos. Esta abordagem afasta-se do método tradicional de esperar e interagir usado pelas organizações existentes. estruturas baseadas em difusãoNas próximas seções, nos aprofundaremos no framework StreamDiffusion em detalhes, explorando seu funcionamento, arquitetura e resultados comparativos com frameworks de última geração. Vamos começar.

StreamDiffusion: uma introdução à geração interativa em tempo real

Metaverso são aplicativos de alto desempenho, pois processam uma grande quantidade de dados, incluindo textos, animações, vídeos e imagens em tempo real, para fornecer aos usuários interfaces e experiência interativas de sua marca registrada. Os aplicativos modernos do Metaverso dependem de estruturas baseadas em IA, incluindo visão computacional, processamento de imagens e modelos de difusão para atingir baixa latência e alto rendimento para garantir uma experiência de usuário perfeita. Atualmente, a maioria dos aplicativos Metaverso depende da redução da ocorrência de iterações de eliminação de ruído para garantir alto rendimento e aprimorar os recursos interativos do aplicativo em tempo real. Essas estruturas optam por uma estratégia comum que envolve reenquadrar o processo de difusão com EDOs neurais (Equações Diferenciais Ordinárias) ou reduzir modelos de difusão de múltiplas etapas em algumas etapas ou mesmo em uma única etapa. Embora a abordagem forneça resultados satisfatórios, ela tem certas limitações, incluindo flexibilidade limitada e altos custos computacionais. 

Por outro lado, o StreamDiffusion é uma solução em nível de pipeline que começa em uma direção ortogonal e aprimora os recursos da estrutura para gerar imagens interativas em tempo real, garantindo ao mesmo tempo um alto rendimento. StreamDiffusion usa uma estratégia simples na qual, em vez de remover o ruído da entrada original, a estrutura agrupa a etapa de remoção de ruído. A estratégia se inspira no processamento assíncrono, pois a estrutura não precisa esperar a conclusão do primeiro estágio de eliminação de ruído antes de poder passar para o segundo estágio, conforme demonstrado na imagem a seguir. Para resolver o problema da frequência de processamento U-Net e da frequência de entrada de forma síncrona, a estrutura StreamDiffusion implementa uma estratégia de fila para armazenar em cache a entrada e as saídas. 

Embora o pipeline StreamDiffusion busque inspiração no processamento assíncrono, ele é único em sua própria maneira, pois implementa paralelismo de GPU que permite que a estrutura utilize um único componente UNet para eliminar o ruído de um recurso latente de ruído em lote. Além disso, os existentes pipelines baseados em difusão enfatize os prompts fornecidos nas imagens geradas, incorporando orientação livre de classificador, como resultado dos pipelines atuais serem equipados com sobrecargas computacionais redundantes e excessivas. Para garantir que o pipeline StreamDiffusion não encontre os mesmos problemas, ele implementa uma abordagem inovadora RCFG ou Residual Classifier-Free Guidance que usa um ruído residual virtual para aproximar as condições negativas, permitindo assim que a estrutura calcule as condições de ruído negativo no inicial etapas do próprio processo. Além disso, o pipeline StreamDiffusion também reduz os requisitos computacionais de um pipeline de difusão tradicional, implementando uma estratégia de filtragem de similaridade estocástica que determina se o pipeline deve processar as imagens de entrada calculando as semelhanças entre entradas contínuas. 

A estrutura StreamDiffusion é construída com base no aprendizado de modelos de difusão e modelos de difusão de aceleração

Os modelos de difusão são conhecidos por seus excepcionais recursos de geração de imagens e pela quantidade de controle que oferecem. Devido às suas capacidades, os modelos de difusão encontraram suas aplicações na edição de imagens, geração de texto para imagem e geração de vídeo. Além disso, o desenvolvimento de modelos consistentes demonstrou o potencial para melhorar a eficiência do processamento de amostras sem comprometer a qualidade das imagens geradas pelo modelo que abriu novas portas para expandir a aplicabilidade e eficiência dos modelos de difusão, reduzindo o número de etapas de amostragem. Embora extremamente capazes, os modelos de difusão tendem a ter uma grande limitação: geração lenta de imagens. Para resolver esta limitação, os desenvolvedores introduziram modelos de difusão acelerada, estruturas baseadas em difusão que não requerem etapas de treinamento adicionais ou implementam estratégias de preditor-corretor e solucionadores adaptativos de tamanho de passo para aumentar as velocidades de saída. 

O fator distintivo entre StreamDiffusion e estruturas tradicionais baseadas em difusão é que, enquanto o último se concentra principalmente na baixa latência de modelos individuais, o primeiro introduz uma abordagem em nível de pipeline projetada para alcançar altos rendimentos, permitindo uma difusão interativa eficiente. 

StreamDiffusion: Funcionamento e Arquitetura

O pipeline StreamDiffusion é um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, e emprega 6 componentes principais, a saber: RCFG ou Orientação Gratuita do Classificador Residual, estratégia Stream Batch, Filtro de Similaridade Estocástica, uma fila de entrada-saída, ferramentas de aceleração de modelo com autoencoder e um procedimento de pré-cálculo. Vamos falar sobre esses componentes em detalhes. 

Estratégia de fluxo em lote

Tradicionalmente, a remoção de ruído ocorre em um modelo de difusão são realizados sequencialmente, resultando em um aumento significativo no tempo de processamento da U-Net para o número de etapas de processamento. No entanto, é essencial aumentar o número de etapas de processamento para gerar imagens de alta fidelidade, e a estrutura StreamDiffusion introduz a estratégia Stream Batch para superar a resolução de alta latência em estruturas de difusão interativas. 

Na estratégia Stream Batch, as operações sequenciais de eliminação de ruído são reestruturadas em processos em lote, com cada lote correspondendo a um número predeterminado de etapas de eliminação de ruído, e o número dessas etapas de eliminação de ruído é determinado pelo tamanho de cada lote. Graças à abordagem, cada elemento do lote pode prosseguir um passo adiante usando a passagem única UNet na sequência de remoção de ruído. Ao implementar a estratégia de fluxo em lote iterativamente, as imagens de entrada codificadas no intervalo de tempo “t” podem ser transformadas em seus respectivos resultados de imagem em imagem no intervalo de tempo “t+n”, agilizando assim o processo de remoção de ruído. 

Orientação Gratuita do Classificador Residual

CFG ou Classifier Free Guidance é um algoritmo de IA que executa uma série de cálculos vetoriais entre o termo de condicionamento original e um termo de condicionamento negativo ou incondicionado para aumentar o efeito do condicionamento original. O algoritmo fortalece o efeito do prompt, embora para calcular o ruído residual do condicionamento negativo, seja necessário emparelhar variáveis ​​latentes de entrada individuais com incorporação de condicionamento negativo seguida pela passagem das incorporações pela UNet no tempo de referência. 

Para resolver esse problema colocado pelo algoritmo Classifier Free Guidance, a estrutura StreamDiffusion introduz o algoritmo Residual Classifier Free Guidance com o objetivo de reduzir custos computacionais para interferência UNet adicional para incorporação de condicionamento negativo. Primeiro, a entrada latente codificada é transferida para a distribuição de ruído usando valores determinados pelo escalonador de ruído. Uma vez implementado o modelo de consistência latente, o algoritmo pode prever a distribuição de dados e usar o ruído residual do CFG para gerar a distribuição de ruído da próxima etapa. 

Fila de entrada e saída

O principal problema com estruturas de geração de imagens de alta velocidade são seus módulos de rede neural, incluindo os componentes UNet e VAE. Para maximizar a eficiência e a velocidade geral de saída, as estruturas de geração de imagens movem processos como pré e pós-processamento de imagens que não requerem manuseio adicional pelos módulos de rede neural fora do pipeline, após o qual são processados ​​em paralelo. Além disso, em termos de tratamento da imagem de entrada, operações específicas, incluindo conversão do formato do tensor, redimensionamento das imagens de entrada e normalização, são executadas meticulosamente pelo pipeline. 

Para resolver a disparidade nas frequências de processamento entre o rendimento do modelo e a entrada humana, o pipeline integra um sistema de enfileiramento de entrada-saída que permite uma paralelização eficiente, conforme demonstrado na imagem a seguir. 

Os tensores de entrada processados ​​​​são primeiro enfileirados metodicamente para modelos de Difusão e, durante cada quadro, o modelo recupera o tensor mais recente da fila de entrada e encaminha o tensor para o codificador VAE, iniciando assim o processo de geração de imagem. Ao mesmo tempo, a saída do tensor do decodificador VAE é alimentada na fila de saída. Finalmente, os dados da imagem processada são transmitidos ao cliente de renderização. 

Filtro de similaridade estocástica

Em cenários onde as imagens permanecem inalteradas ou mostram alterações mínimas sem um ambiente estático ou sem interação ativa do usuário, imagens de entrada semelhantes entre si são alimentadas repetidamente nos componentes UNet e VAE. A alimentação repetida leva à geração de imagens quase idênticas e ao consumo adicional de recursos da GPU. Além disso, em cenários que envolvem entradas contínuas, imagens de entrada não modificadas podem surgir ocasionalmente. Para superar esse problema e evitar a utilização desnecessária de recursos, o pipeline StreamDiffusion emprega um componente Stochastic Similarity Filter em seu pipeline. O Filtro de Similaridade Estocástica calcula primeiro a similaridade de cosseno entre a imagem de referência e a imagem de entrada e usa a pontuação de similaridade de cosseno para calcular a probabilidade de pular os processos UNet e VAE subsequentes. 

Com base na pontuação de probabilidade, o pipeline decide se os processos subsequentes, como codificação VAE, decodificação VAE e U-Net, devem ser ignorados ou não. Se esses processos não forem ignorados, o pipeline salva a imagem de entrada naquele momento e atualiza simultaneamente a imagem de referência a ser usada no futuro. Este mecanismo de salto baseado em probabilidade permite que o pipeline StreamDiffusion opere totalmente em cenários dinâmicos com baixa similaridade entre quadros, enquanto em cenários estáticos, o pipeline opera com maior similaridade entre quadros. A abordagem ajuda a conservar os recursos computacionais e também garante a utilização ideal da GPU com base na similaridade das imagens de entrada. 

Pré-computação

A arquitetura UNet precisa tanto de incorporações de condicionamento quanto de variáveis ​​latentes de entrada. Tradicionalmente, os embeddings de condicionamento são derivados de embeddings imediatos que permanecem constantes entre os quadros. Para otimizar a derivação de embeddings de prompt, o pipeline StreamDiffusion pré-computou esses embeddings de prompt e os armazena em um cache, que é então chamado no modo de streaming ou interativo. Dentro da estrutura UNet, o par de valores-chave é calculado com base na incorporação de prompt pré-computado de cada quadro e, com pequenas modificações na U-Net, esses pares de valores-chave podem ser reutilizados. 

Aceleração de modelo e Tiny AutoEncoder

O pipeline StreamDiffusion emprega TensorRT, um kit de ferramentas de otimização da Nvidia para interfaces de aprendizagem profunda, para construir os motores VAE e UNet, para acelerar a velocidade de inferência. Para conseguir isso, o componente TensorRT realiza inúmeras otimizações em redes neurais projetadas para aumentar a eficiência e melhorar o rendimento de estruturas e aplicativos de aprendizado profundo. 

Para otimizar a velocidade, o StreamDiffusion configura a estrutura para usar dimensões de entrada fixas e tamanhos de lote estáticos para garantir a alocação ideal de memória e gráficos computacionais para um tamanho de entrada específico, na tentativa de obter tempos de processamento mais rápidos. 

A figura acima fornece uma visão geral do pipeline de inferência. O pipeline de difusão principal abriga os componentes UNet e VAE. O pipeline incorpora um lote de eliminação de ruído, cache de ruído amostrado, cache de incorporação de prompt pré-computado e cache de valores do agendador para aumentar a velocidade e a capacidade do pipeline de gerar imagens em tempo real. O Filtro de Similaridade Estocástica ou SSF é implantado para otimizar o uso da GPU e também para bloquear dinamicamente a passagem do modelo de difusão. 

StreamDiffusion: experimentos e resultados

Para avaliar suas capacidades, o pipeline StreamDiffusion é implementado em estruturas LCM e SD-turbo. O TensorRT da NVIDIA é usado como acelerador de modelo e, para permitir VAE de eficiência leve, o pipeline emprega o componente TAESD. Vamos agora dar uma olhada no desempenho do pipeline StreamDiffusion quando comparado com as estruturas de última geração atuais. 

Avaliação Quantitativa

A figura a seguir demonstra a comparação de eficiência entre o UNet sequencial original e os componentes do lote de eliminação de ruído no pipeline e, como pode ser visto, a implementação da abordagem de lote de eliminação de ruído ajuda a reduzir significativamente o tempo de processamento em quase 50% quando comparado ao UNet tradicional. loops em etapas sequenciais de eliminação de ruído. 

Além disso, o tempo médio de inferência em diferentes etapas de remoção de ruído também testemunha um aumento substancial com diferentes fatores de aceleração quando comparado com os atuais pipelines de última geração, e os resultados são demonstrados na imagem a seguir. 

Seguindo em frente, o pipeline StreamDiffusion com o componente RCFG demonstra menos tempo de inferência quando comparado com pipelines incluindo o componente CFG tradicional. 

Além disso, o impacto da utilização do componente RCFG fica evidente nas imagens a seguir quando comparado ao uso do componente CFG.

Como pode ser visto, o uso do CFG intensifica o impacto do prompt textual na geração de imagens, e a imagem se assemelha muito mais aos prompts de entrada quando comparada às imagens geradas pelo pipeline sem o uso do componente CFG. Os resultados melhoram ainda mais com o uso do componente RCFG, pois a influência dos prompts nas imagens geradas é bastante significativa quando comparada ao componente CFG original. 

Considerações Finais

Neste artigo, falamos sobre StreamDiffusion, um pipeline de difusão em tempo real desenvolvido para gerar imagens interativas e realistas, e abordamos as limitações atuais impostas por estruturas baseadas em difusão em tarefas que envolvem entrada contínua. StreamDiffusion é uma abordagem simples e inovadora que visa transformar o ruído sequencial da imagem original em eliminação de ruído em lote. StreamDiffusion visa permitir fluxos fluidos e de alto rendimento, eliminando a abordagem tradicional de espera e interação escolhida pelas atuais estruturas baseadas em difusão. Os potenciais ganhos de eficiência destacam o potencial do pipeline StreamDiffusion para aplicações comerciais que oferecem computação de alto desempenho e soluções atraentes para IA generativa. 

"Engenheiro de profissão, escritor de coração". Kunal é um escritor técnico com profundo amor e compreensão de IA e ML, dedicado a simplificar conceitos complexos nesses campos por meio de sua documentação envolvente e informativa.