O que é um modelo de difusão? Uma definição abrangente

O que é um modelo de difusão? Uma definição abrangente
O que é um modelo de difusão?
Os modelos de difusão são uma classe de modelos generativos probabilísticos. São poderosos na redução do ruído em [machine learning] (https://zilliz.com/learn/making-machine-learning-more-accessible-for-application-developers), bem como na síntese de imagens. Um modelo de difusão destrói progressivamente os dados adicionando ruído Gaussiano e aprende a reverter o processo para a geração de amostras.
Na geração de imagens, por exemplo, os modelos de difusão adicionam ruído a uma imagem cem ou mil vezes até esta se tornar uma imagem com ruído puro. Em seguida, removem gradualmente o ruído da imagem até obterem uma imagem coerente. Finalmente, o modelo pode gerar novas imagens diversas que se aproximam da imagem original.
Componentes dos modelos de difusão
Os modelos de difusão são baseados em três estruturas matemáticas subjacentes:
- Modelo probabilístico de difusão de ruído (DDPMs): Os DDPMs utilizam duas cadeias de Markov, cadeias direta e inversa, para adicionar ou remover ruído dos dados. Utilizam redes neuronais profundas para aprender a inverter o ruído introduzido na cadeia de avanço, permitindo, em última análise, a geração de amostras de dados que se assemelham muito à distribuição original dos dados.
- Modelos generativos baseados na pontuação (SGMs): Os SGMs funcionam adicionando ruído gaussiano aos dados e estimando funções de pontuação utilizando uma rede neural profunda treinada com ruído. Estas funções de pontuação orientam a geração de novas amostras de dados que se assemelham muito à distribuição original.
- Equações diferenciais estocásticas (SDEs de pontuação): As SDEs de pontuação generalizam as DDPMs e SGMs para modelar dados com passos de tempo infinitos ou níveis de ruído. Utilizam SDEs para modelar os processos de perturbação do ruído e de geração de amostras, e baseiam-se em funções de pontuação para eliminar o ruído dos dados gerados.
Como funcionam os modelos de difusão?
Os modelos de difusão operam a um nível sofisticado, envolvendo a interação meticulosa de dados, ruído Gaussiano controlado e um espaço latente intermédio. Este processo complexo permite-lhes, em última análise, criar versões melhoradas dos dados originais. Vamos mergulhar mais fundo na mecânica:
1. **O papel do ruído gaussiano
Os modelos de difusão introduzem sistematicamente ruído Gaussiano ao longo das suas operações. Em cada etapa iterativa, um ruído gaussiano controlado com precisão é adicionado aos dados. Este ruído é amostrado a partir de uma distribuição gaussiana, o que permite um controlo fino dos níveis de ruído.
# Adição de ruído gaussiano controlado dados ruidosos = dados originais + ruído
2. Transição para a distribuição normal:
Para facilitar o processo de difusão, os dados de entrada são submetidos a uma transformação. Primeiro, são convertidos numa distribuição normal, caracterizada por uma média de 0 e um desvio padrão de 1. Esta conversão não só simplifica o controlo do ruído, como também estabelece as bases para a viagem de difusão.
# Transformar os dados numa distribuição normal dados normalizados = (dados originais - dados originais.média()) / dados originais.std()
3. Processo de modelação da difusão:
Vamos dissecar o processo de modelação da difusão no contexto dos modelos generativos, especialmente para imagens ou vídeos. O percurso de difusão é composto por duas fases fundamentais:
- Processo de difusão para a frente:** Nesta fase, o modelo embarca numa viagem de transformação dos pixéis de uma imagem original. Através de centenas ou mesmo milhares de passos incrementais, o ruído Gaussiano é progressivamente introduzido. Este processo desenrola-se numa cadeia de Markov, com cada passo a injetar uma quantidade de ruído controlada com precisão. A imagem "difunde-se" efetivamente para um estado de puro ruído.
# Processo de difusão para a frente for step in range(num\_steps): noisy\_image = noisy\_image + step\_noise\[step]
- Processo de difusão reversa: Em contraste, o processo de difusão reversa marca o caminho em direção à clareza. Esta fase envolve remoção de ruído, escalonamento e etapas iterativas que eventualmente levam ao surgimento de uma imagem nítida. É como ver uma imagem enevoada a tornar-se gradualmente mais nítida.
# Processo de difusão reversa for step in reversed(range(num\_steps)): noisy\_image = noisy\_image - step\_noise\[step]
No processo de difusão direta, é fundamental observar que o escalonamento dos valores de pixel é uma etapa chave antes da adição de mais ruído. Ignorar esta etapa pode levar à saturação da imagem, onde os detalhes são perdidos.
# Escalonamento dos valores de pixel Imagem escalonada = imagem original \* fator de escalonamento
4. Utilizando redes neurais convolucionais (CNNs):
No processo de difusão inversa, as redes neurais convolucionais (CNNs) desempenham um papel fundamental. Dada uma imagem envolta em ruído puro, estas redes neuronais são hábeis na eliminação de ruído da imagem. Removem habilmente o ruído, revelando uma imagem clara e coerente que reflecte de perto a original.
5. **Formação para as gerações futuras
Após o treinamento, o modelo de difusão é preparado para a geração de novas imagens. Isso envolve a introdução intencional de ruído nos dados de entrada. Em seguida, o modelo assume o controlo, utilizando as suas capacidades de redução de ruído para criar versões novas e originais dos dados de entrada.
# Geração de novas imagens através da introdução de ruído new\_image = noisy\_input\_data + generated\_noise
Espaço latente intermediário em modelos de difusão modernos:
No domínio dos modelos modernos de difusão de imagem, uma reviravolta convincente se desenrola. Esses modelos geralmente introduzem um terceiro participante na mistura - um espaço latente intermediário. Em vez de operar diretamente nos pixels da imagem em bruto, o processo de difusão ocorre dentro deste espaço latente. Esta inovação aumenta a eficiência e a eficácia dos modelos de difusão, permitindo transformações mais matizadas e controladas.
Aplicações de modelos de difusão em IA/ML
O modelo de difusão é uma abordagem que está a ganhar popularidade na modelação generativa devido aos seus muitos casos de utilização na vida real. É utilizado na geração de imagens, geração de texto para imagem, super-resolução de imagens, geração de linguagem natural, etc.
Geração de linguagem natural
O processamento de linguagem natural (NLP) tem muitas aplicações na vida real no mundo atual da IA. Devido à sua capacidade de produzir diversos resultados, os modelos de difusão são essencialmente aplicados na geração de linguagem natural (NLG). Permitem muitas tarefas de NLG em modelos de linguagem de grande dimensão (LLM), tais como transformadores generativos pré-treinados (GPT). Estas tarefas incluem a geração de conteúdos, a sumarização de textos e a conclusão de textos.
Geração de imagens e vídeos
Os modelos de difusão melhoram a qualidade dos vídeos gerados. Eles abordam a complexidade e os desafios de continuidade espaço-temporal dos quadros de vídeo. Esta capacidade permite que os criadores de conteúdos alimentem as instruções de texto para gerar guiões de vídeo curtos e de alta qualidade.
Geração de texto para imagem
Atualmente, é possível gerar imagens através de instruções de texto para um gerador de texto para imagem. Imagen da Google e DALL-E da OpenAI são exemplos. Os LLM utilizam a difusão para descodificar palavras visuais numa imagem. Idealmente, estes geradores codificam imagens como palavras visuais vectoriais. Em seguida, utilizam estas palavras para condicionar um modelo de difusão para gerar uma nova imagem com um estilo semelhante ao da imagem original.
Super-resolução de imagem
Uma das primeiras aplicações dos modelos de difusão é a super-resolução de imagens. Trata-se de melhorar a resolução de uma imagem de baixa para alta resolução, mantendo o seu conteúdo tanto quanto possível.
A resolução de imagens usando o modelo de difusão ocorre em duas etapas. Primeiro, utiliza-se o modelo de difusão para gerar imagens de baixa resolução, que são mais fáceis e rápidas de treinar. Em segundo lugar, treina-se um modelo de difusão separado e condiciona-se o modelo a uma super-resolução que melhorará a resolução de imagens de baixa qualidade.
Limitações dos modelos de difusão
Os modelos de difusão são poderosos e estão a revolucionar a indústria da IA. No entanto, como demonstraremos a seguir, têm uma quota-parte de desafios.
Os modelos de difusão levam tempo a treinar
Os modelos de difusão dependem da redução de ruído para gerar imagens. O treinamento de modelos de denoiser a partir do zero envolve muitas iterações. Nos níveis iniciais, os modelos de difusão são treinados por mais tempo. O treino diminui gradualmente nas fases posteriores, quando o modelo consegue gerar amostras que se aproximam dos dados de treino. Este processo pode demorar minutos ou horas ou tempo de computação. Por outras palavras, os modelos de difusão utilizam milhares de chamadas às redes neuronais para gerar amostras, em comparação com as GAN, que utilizam apenas uma chamada. Este facto torna os modelos de difusão mais lentos na geração de amostras.
É um desafio fazer o ajuste fino de um modelo de difusão
Para obter uma versão individualizada de um modelo, você pega um modelo pré-treinado e o treina com seus próprios dados. No entanto, é um desafio fazer o ajuste fino de um modelo de difusão incondicional pré-treinado com dados limitados. As limitações de dados podem levar a um sobreajuste nas fases iniciais da formação. As imagens resultantes de modelos demasiado ajustados são de baixa qualidade e diversidade limitada.
Os modelos de difusão requerem uma grande memória
Grandes modelos de difusão exigem grandes requisitos de memória. Um modelo de difusão pode conter milhares de milhões de parâmetros. Por conseguinte, são treinados e testados em servidores potentes. Tendo em conta o tamanho limitado da memória GPU, a implementação destes modelos em dispositivos móveis é exigente. Com esta limitação, os dispositivos móveis têm dificuldade em executar um único modelo de difusão de grandes dimensões.
Com a utilização da memória GPU a representar uma ameaça à implementação de modelos de difusão em dispositivos móveis, estão a surgir soluções. Uma solução consiste em lançar versões mais pequenas de modelos de difusão. Os modelos são suficientemente comprimidos para serem utilizados em dispositivos móveis.
FAQs
Qual é a diferença entre um GAN e um modelo de difusão?
As redes adversárias generativas (GANs) funcionam por meio de um processo de treinamento adversário. Elas empregam uma rede neural geradora para produzir amostras de dados e uma rede neural discriminadora para diferenciar entre amostras de dados genuínas e falsas. Um modelo de difusão é um modelo baseado na verosimilhança que gera amostras através da adição iterativa de ruído gaussiano aos dados e da aplicação de uma função de redução de ruído aprendida para transformar gradualmente os dados em amostras realistas.
Qual é a diferença entre o transformador e o modelo de difusão?
Os transformadores aplicam mecanismos de auto-atenção para aprender a relação contextual entre elementos em dados sequenciais e se destacam na classificação de imagens e PNL. Os modelos de difusão são excelentes na geração de imagens fotorrealistas de alta qualidade.
Quais são os desafios dos modelos de difusão?
Os modelos de difusão seguem um processo de treinamento de denoising demorado com muitas iterações. Além disso, grandes modelos de difusão com biliões de parâmetros exigem muitos recursos de memória. Por fim, o ajuste fino de um modelo de difusão com dados limitados pode levar a um ajuste excessivo, resultando em imagens geradas de baixa qualidade e menos diversificadas.
Como um modelo de difusão gera imagens?
Os modelos de difusão geram imagens por meio de um processo iterativo que envolve a difusão e a remoção de ruído dos valores de pixel de uma imagem para gerar imagens cada vez mais coerentes e detalhadas.
- O que é um modelo de difusão?
- Componentes dos modelos de difusão
- Como funcionam os modelos de difusão?
- Aplicações de modelos de difusão em IA/ML
- Limitações dos modelos de difusão
- FAQs
Conteúdo
Comece grátis, escale facilmente
Experimente o banco de dados totalmente gerenciado, construído para seus aplicativos GenAI.
Experimente o Zilliz Cloud grátis