Como funciona o modelo Sora da OpenAI
(factorialfunds.com)- O Sora é baseado em Diffusion Transformers (DiT) e Latent Diffusion, com o modelo e o conjunto de dados de treinamento ampliados em grande escala
- O Sora mostra que vale a pena escalar modelos de vídeo e que uma ampliação adicional, semelhante à dos grandes modelos de linguagem (LLMs), será um dos principais motores para melhorar rapidamente o modelo
- Empresas como Runway, Genmo e Pika estão construindo interfaces e fluxos de trabalho intuitivos para modelos de geração de vídeo como o Sora
- Estima-se que o treinamento do Sora exija uma enorme quantidade de poder computacional, equivalente a 4.200~10.500 GPUs Nvidia H100 por 1 mês
- No caso da inferência, estima-se que o Sora possa gerar até cerca de 5 minutos de vídeo por hora por GPU Nvidia H100. Em comparação com LLMs, a inferência de modelos baseados em difusão como o Sora é várias vezes mais cara
- À medida que modelos como o Sora forem amplamente implantados, a computação de inferência passará a dominar a computação de treinamento, e o "ponto de equilíbrio" é estimado em 15,3 milhões~38,1 milhões de minutos de vídeo gerados; depois disso, mais computação será gasta em inferência do que no treinamento original. Em comparação, o volume de vídeo enviado por dia é de 17 milhões de minutos (TikTok) e 43 milhões de minutos (YouTube)
- Considerando a proporção de vídeos gerados por IA no TikTok e no YouTube, a demanda máxima por GPUs Nvidia H100 para inferência é estimada em cerca de 720 mil unidades
Contexto
- O Sora pertence à categoria dos modelos de difusão. Modelos de difusão são uma escolha popular para geração de imagens, com modelos conhecidos como DALL-E, da OpenAI, e Stable Diffusion, da Stability AI. Mais recentemente, empresas como Runway, Genmo e Pika vêm explorando a geração de vídeo, provavelmente também com uso de modelos de difusão.
- Modelos de difusão são um tipo de modelo generativo de aprendizado de máquina que aprende a gerar dados, como imagens ou vídeos, revertendo gradualmente o processo de adicionar ruído aleatório aos dados. Esses modelos começam com padrões de ruído puro e, aos poucos, removem esse ruído, refinando os padrões até transformá-los em saídas compreensíveis e detalhadas.
Detalhes técnicos do Sora
-
A OpenAI divulgou um relatório técnico junto com o anúncio do Sora. Embora esse relatório tenha poucos detalhes, seu design parece ter sido fortemente influenciado pelo artigo de pesquisa "Scalable Diffusion Models with Transformers"
-
Os autores desse artigo propuseram o DiT, uma arquitetura baseada em Transformer para geração de imagens (DiT é a sigla de Diffusion Transformers)
-
O Sora parece expandir esse trabalho para a geração de vídeo. Ao combinar o relatório técnico do Sora com o artigo do DiT, é possível obter um retrato bastante preciso de como o modelo Sora funciona
-
O Sora tem três partes importantes:
- Em vez de operar no espaço de pixels, ele realiza difusão no espaço latente (o chamado latent diffusion)
- Usa a arquitetura Transformer
- Parece utilizar um conjunto de dados muito grande
-
Latent Diffusion
- Para entender o primeiro ponto, latent diffusion, considere a geração de imagens
- É possível gerar cada pixel usando difusão, mas isso é muito ineficiente (por exemplo, uma imagem de 512x512 tem 262.144 pixels)
- Em vez disso, é possível mapear os pixels para uma representação latente com algum fator de compressão, executar a difusão nesse espaço latente mais compacto e, por fim, decodificar de volta do latente para o espaço de pixels
- Esse mapeamento melhora significativamente a complexidade computacional: em vez de executar o processo de difusão em 512x512 = 262.144 pixels, por exemplo, basta gerar 64x64 = 4.096 latentes
- Essa ideia foi o avanço central do artigo "High-Resolution Image Synthesis with Latent Diffusion Models" e se tornou a base do Stable Diffusion.
- Um exemplo desse mapeamento de pixels para representação latente é uma imagem retirada do relatório técnico do Sora.
- Tanto o DiT quanto o Sora usam essa abordagem. No caso do Sora, há uma consideração adicional: vídeos têm uma dimensão temporal; eles são compostos por quadros, que são uma sequência temporal de imagens
- No relatório técnico do Sora, a etapa de codificação que faz o mapeamento de pixels para o espaço latente parece ocorrer de forma espacial (ou seja, comprimindo a largura e a altura de cada quadro) e temporal (ou seja, comprimindo ao longo do tempo)
- Para entender o primeiro ponto, latent diffusion, considere a geração de imagens
-
Transformer
- No segundo ponto, tanto o DiT quanto o Sora usam uma arquitetura Transformer pura, em vez da arquitetura U-Net mais comum
- Isso é importante porque os autores do artigo do DiT observaram que o uso de Transformers leva a um escalonamento previsível, ou seja, aplicar mais computação no treinamento (treinando o modelo por mais tempo, aumentando seu tamanho, ou ambos) melhora o desempenho
- Esse comportamento de escalonamento é uma propriedade importante que pode ser quantificada pelas chamadas scaling laws, já estudadas anteriormente no contexto de grandes modelos de linguagem (LLMs) e de modelos autorregressivos em outras modalidades
- A capacidade de aplicar escala para obter modelos melhores foi um dos principais motores do rápido progresso nos LLMs
- Como a mesma propriedade também parece existir na geração de imagens e vídeos, é razoável esperar que a mesma receita de escalonamento funcione aqui também
-
Conjunto de dados
- O último elemento central necessário para treinar o modelo é ter dados rotulados, e isso é visto como o ingrediente secreto mais importante para treinar modelos como o Sora
- Para treinar um modelo de texto para vídeo como o Sora, é preciso ter pares de vídeo e sua descrição em texto
- A OpenAI não fala muito sobre seu conjunto de dados, mas sugere que ele é muito grande: "Inspired by large language models that acquire general capabilities by training on internet-scale data."
- A OpenAI também revelou um método para anexar rótulos textuais detalhados a imagens, usado na coleta do conjunto de dados do DALLE-3
- A ideia geral é treinar um modelo captioner em um subconjunto rotulado do conjunto de dados e depois usar esse captioner para rotular automaticamente o restante
- Parece que a mesma técnica foi aplicada ao conjunto de dados do Sora
Impacto
- Acredita-se que o Sora terá alguns impactos importantes. A seguir, um breve olhar sobre eles
- Início da viabilidade prática dos modelos de vídeo
- A qualidade dos vídeos que o Sora consegue gerar é um avanço claro, não apenas no nível de detalhe, mas também em termos de consistência temporal (por exemplo, ao lidar corretamente com a persistência de objetos quando ficam temporariamente ocultos e ao gerar reflexos na água com precisão)
- Agora acredita-se que a qualidade do vídeo já seja suficiente, em certos tipos de cena, para uso em aplicações reais
- Por exemplo, o Sora pode em breve substituir parte do uso de footage de vídeo de stock
- No entanto, ainda restam desafios:
- Ainda não está claro o quão controlável é o modelo atual do Sora
- Como o modelo gera pixels, editar os vídeos gerados é difícil e demorado
- Também é necessário construir interfaces de usuário (UI) e fluxos de trabalho intuitivos para tornar esses modelos realmente úteis
- Empresas como Runway, Genmo e Pika já estão trabalhando nesses problemas
- Evolução rápida esperada para os modelos de vídeo
- Uma das percepções centrais do artigo do DiT foi que a qualidade do modelo melhora diretamente com computação adicional, como discutido acima
- Isso é semelhante às scaling laws observadas em LLMs
- Portanto, à medida que esses modelos forem treinados com cada vez mais computação, é possível esperar novos avanços rápidos na qualidade dos modelos de geração de vídeo
- O Sora mostra claramente que essa receita realmente funciona, e é provável que a OpenAI e outras empresas passem a se concentrar ainda mais nessa direção
- Geração de dados sintéticos e aumento de dados
- Em áreas como robótica e veículos autônomos, os dados são intrinsecamente escassos: a internet não está cheia de vídeos de robôs executando tarefas ou de carros dirigindo.
- Em geral, esses problemas vêm sendo abordados por meio de treinamento em simulação, coleta de dados do mundo real em grande escala, ou uma combinação dos dois
- No entanto, ambas as abordagens enfrentam o problema de que dados de simulação frequentemente não são realistas
- Coletar dados do mundo real em grande escala é caro, e reunir dados suficientes sobre eventos raros é desafiador
- Modelos como o Sora podem ser muito úteis aqui. Eles podem ser usados diretamente para gerar dados sintéticos completos
- O Sora também pode ser usado para aumento de dados, transformando vídeos existentes para que pareçam diferentes
- O segundo ponto descrito acima mostra o Sora transformando um vídeo de um carro vermelho correndo por uma trilha na floresta em uma paisagem de selva densa
- Dá para imaginar o uso da mesma técnica para refazer a renderização de uma cena do dia para a noite ou para mudar as condições climáticas
- Simulação e world models
- Aprender os chamados world models é uma direção de pesquisa promissora
- Se forem suficientemente precisos, esses world models podem ser usados para treinar agentes diretamente dentro deles ou para planejamento e exploração.
- Modelos como o Sora parecem aprender implicitamente, diretamente a partir de dados de vídeo, uma simulação básica de como o mundo real funciona
- Essas "simulações emergentes" ainda têm falhas no momento, mas continuam sendo interessantes: elas sugerem que talvez seja possível treinar esses world models a partir de vídeos em grande escala
- Além disso, o Sora parece ser capaz de simular cenas muito complexas, como líquidos, reflexos de luz e movimento de tecidos e cabelos.
- A OpenAI deixou isso claro ao dar ao relatório técnico o título "Video generation models as world simulators", indicando que considera esse o aspecto mais importante do modelo.
- Muito recentemente, a DeepMind demonstrou um efeito semelhante com o modelo Genie, treinado apenas com vídeos de videogames: o modelo aprendeu a simular esses jogos (e a criar novos)
- Nesse caso, o modelo aprendeu a condicionar ações sem observá-las diretamente
- Em outras palavras, o objetivo é permitir aprendizado diretamente dentro dessas simulações.
- Combinando os dois, é possível imaginar que modelos como Sora e Genie possam ser usados de forma muito útil para treinar, em grande escala, agentes incorporados para tarefas no mundo real (por exemplo, em robótica)
- Mas há limitações: como esses modelos são treinados no espaço de pixels, eles acabam modelando todos os detalhes, como a forma como o vento move as folhas da grama, mesmo que isso possa não ter nenhuma relevância para a tarefa em execução
- O espaço latente é comprimido, mas como ainda precisa poder ser remapeado para pixels, ele tem de manter muita informação; por isso, não está claro se o planejamento pode ser feito de forma eficiente nesse espaço latente
Estimativas de computação (Compute Estimates)
- Na Factorial Funds, há preferência por analisar a quantidade de computação usada em treinamento e inferência. Isso é útil porque pode informar previsões sobre a quantidade de computação que será necessária no futuro
- No entanto, como há pouquíssimos detalhes sobre o tamanho do modelo e o conjunto de dados usados para treinar o Sora, também é difícil estimar esses números
- Portanto, as estimativas desta seção são muito incertas e devem ser consideradas com isso em mente
- (Como são apenas estimativas, esta parte foi omitida)
3 comentários
Além do conteúdo, acrescento também algumas curiosidades que eu já conhecia pessoalmente.
Disseram que tanto o DiT quanto o Sora usam uma arquitetura de transformer vanilla em vez da arquitetura U-Net, que é mais usada normalmente. Qual é o papel da U-Net e do transformer em inteligência artificial? Estou muito confuso 😭
São uns alienígenas mesmo, pqp.