Artigos de pesquisa em IA selecionados diariamente com traduções
Na era do aprendizado multimodal avançado, os modelos de linguagem multimodal de grande escala (MLLMs), como o GPT-4V, têm feito avanços notáveis na integração de elementos linguísticos e visuais. No entanto, a natureza de código fechado e a demanda computacional considerável apresentam desafios significativos para o uso universal e modificações. É aqui que entram os MLLMs de código aberto, como LLaVA e MiniGPT-4, que apresentam conquistas revolucionárias em diversas tarefas. Apesar desses feitos, a eficiência computacional continua sendo um problema não resolvido, já que esses modelos, como o LLaVA-v1.5-13B, exigem recursos substanciais. Para abordar essas questões, apresentamos o TinyGPT-V, um modelo de nova geração que combina desempenho impressionante com capacidade computacional acessível. Ele se destaca por exigir apenas uma GPU de 24G para treinamento e uma GPU de 8G ou CPU para inferência. Construído sobre o Phi-2, o TinyGPT-V acopla uma base linguística eficaz com módulos visuais pré-treinados do BLIP-2 ou CLIP. Os 2,8 bilhões de parâmetros do TinyGPT-V podem passar por um processo único de quantização, adequado para implantação local e tarefas de inferência em diversos dispositivos com 8G. Nosso trabalho promove novos desenvolvimentos na criação de MLLMs econômicos, eficientes e de alto desempenho, ampliando sua aplicabilidade em uma ampla gama de cenários do mundo real. Além disso, este artigo propõe um novo paradigma de Modelo de Linguagem Multimodal de Grande Escala por meio de bases pequenas. Nosso código e pesos de treinamento estão disponíveis em: https://github.com/DLYuanGod/TinyGPT-V e https://huggingface.co/Tyrannosaurus/TinyGPT-V, respectivamente.
Apresentamos o Unified-IO 2, o primeiro modelo multimodal autorregressivo capaz de compreender e gerar imagens, texto, áudio e ações. Para unificar diferentes modalidades, tokenizamos entradas e saídas — imagens, texto, áudio, ações, caixas delimitadoras, etc. — em um espaço semântico compartilhado e, em seguida, as processamos com um único modelo transformador de codificador-decodificador. Como o treinamento com modalidades tão diversas é desafiador, propomos várias melhorias arquitetônicas para estabilizar o treinamento do modelo. Treinamos nosso modelo do zero em um grande corpus de pré-treinamento multimodal proveniente de diversas fontes, com um objetivo de mistura de desnaturadores multimodais. Para aprender um conjunto amplo de habilidades, como seguir instruções multimodais, construímos e ajustamos um conjunto de 120 conjuntos de dados com prompts e aumentações. Com um único modelo unificado, o Unified-IO 2 alcança desempenho de ponta no benchmark GRIT e resultados robustos em mais de 35 benchmarks, incluindo geração e compreensão de imagens, compreensão de linguagem natural, compreensão de vídeo e áudio, e manipulação robótica. Disponibilizamos todos os nossos modelos para a comunidade de pesquisa.
Corpus de alta qualidade e em grande escala são a base para a construção de modelos fundamentais. Neste trabalho, apresentamos o MathPile, um corpus diversificado e de alta qualidade centrado em matemática, composto por aproximadamente 9,5 bilhões de tokens. Durante sua criação, seguimos o princípio de "menos é mais", acreditando firmemente na supremacia da qualidade dos dados sobre a quantidade, mesmo na fase de pré-treinamento. Nossos esforços meticulosos de coleta e processamento de dados incluíram uma complexa suíte de pré-processamento, pré-filtragem, identificação de idioma, limpeza, filtragem e deduplicação, garantindo a alta qualidade do nosso corpus. Além disso, realizamos a detecção de contaminação de dados em conjuntos de teste de referência downstream para eliminar duplicatas. Esperamos que o MathPile possa ajudar a aprimorar as habilidades de raciocínio matemático dos modelos de linguagem. Planejamos disponibilizar publicamente diferentes versões do MathPile, juntamente com os scripts utilizados para o processamento, para facilitar desenvolvimentos futuros nessa área.
Apresentamos o MobileVLM, um modelo multimodal de linguagem visual (MMVLM) competente projetado para ser executado em dispositivos móveis. Ele é uma combinação de uma variedade de designs arquitetônicos e técnicas voltadas para dispositivos móveis, que inclui um conjunto de modelos de linguagem com escalas de 1,4B e 2,7B de parâmetros, treinados do zero, um modelo visual multimodal pré-treinado no estilo CLIP, e interação entre modalidades por meio de um projetor eficiente. Avaliamos o MobileVLM em vários benchmarks típicos de VLM. Nossos modelos demonstram desempenho comparável ao de alguns modelos muito maiores. Mais importante, medimos a velocidade de inferência tanto em uma CPU Qualcomm Snapdragon 888 quanto em uma GPU NVIDIA Jetson Orin, obtendo desempenho de ponta de 21,5 tokens e 65,3 tokens por segundo, respectivamente. Nosso código estará disponível em: https://github.com/Meituan-AutoML/MobileVLM.
Várias abordagens de segmentação de imagens não supervisionadas foram propostas, eliminando a necessidade de máscaras de segmentação densamente anotadas manualmente; os modelos atuais lidam separadamente com segmentação semântica (por exemplo, STEGO) ou segmentação de instâncias agnóstica a classes (por exemplo, CutLER), mas não com ambas (ou seja, segmentação panóptica). Propomos um modelo de Segmentação Universal Não Supervisionada (U2Seg) capaz de realizar várias tarefas de segmentação de imagens — instância, semântica e panóptica — usando uma nova estrutura unificada. O U2Seg gera rótulos semânticos pseudo para essas tarefas de segmentação aproveitando modelos auto-supervisionados seguidos por agrupamento; cada cluster representa diferentes membros semânticos e/ou de instância de pixels. Em seguida, auto-treinamos o modelo nesses rótulos semânticos pseudo, obtendo ganhos substanciais de desempenho em relação a métodos especializados adaptados a cada tarefa: um aumento de +2,6 AP^{box} em comparação com o CutLER na segmentação de instâncias não supervisionada no COCO e um aumento de +7,0 PixelAcc (em comparação com o STEGO) na segmentação semântica não supervisionada no COCOStuff. Além disso, nosso método estabelece uma nova referência para a segmentação panóptica não supervisionada, que não havia sido explorada anteriormente. O U2Seg também é um modelo pré-treinado robusto para segmentação com poucos exemplos, superando o CutLER em +5,0 AP^{mask} quando treinado em um regime de baixo volume de dados, por exemplo, apenas 1% dos rótulos do COCO. Esperamos que nosso método simples, porém eficaz, possa inspirar mais pesquisas sobre segmentação universal de imagens não supervisionada.
Progressos notáveis têm sido alcançados recentemente na geração de conteúdo 4D. No entanto, os métodos existentes sofrem com tempo de otimização prolongado, falta de controlabilidade do movimento e baixo nível de detalhe. Neste artigo, apresentamos o DreamGaussian4D, um framework eficiente para geração 4D que se baseia na representação de 4D Gaussian Splatting. Nossa principal percepção é que a modelagem explícita de transformações espaciais no Gaussian Splatting o torna mais adequado para o cenário de geração 4D em comparação com representações implícitas. O DreamGaussian4D reduz o tempo de otimização de várias horas para apenas alguns minutos, permite controle flexível do movimento 3D gerado e produz malhas animadas que podem ser renderizadas de forma eficiente em motores 3D.
Temos testemunhado progressos significativos na visão 3D baseada em aprendizado profundo, desde a aprendizagem de representação 3D baseada em campos de radiação neural (NeRF) até aplicações em síntese de novas vistas (NVS). No entanto, os conjuntos de dados existentes em nível de cena para visão 3D baseada em aprendizado profundo, limitados a ambientes sintéticos ou a uma seleção restrita de cenas do mundo real, são bastante insuficientes. Essa insuficiência não apenas dificulta uma avaliação abrangente dos métodos existentes, mas também limita o que poderia ser explorado na análise 3D baseada em aprendizado profundo. Para abordar essa lacuna crítica, apresentamos o DL3DV-10K, um conjunto de dados em grande escala de cenas, contendo 51,2 milhões de quadros de 10.510 vídeos capturados em 65 tipos de locais de interesse (POI), abrangendo tanto cenas delimitadas quanto ilimitadas, com diferentes níveis de reflexão, transparência e iluminação. Realizamos uma avaliação abrangente de métodos recentes de NVS no DL3DV-10K, o que revelou insights valiosos para pesquisas futuras em NVS. Além disso, obtivemos resultados encorajadores em um estudo piloto para aprender NeRF generalizável a partir do DL3DV-10K, o que manifesta a necessidade de um conjunto de dados em grande escala em nível de cena para pavimentar o caminho em direção a um modelo base para a aprendizagem de representação 3D. Nosso conjunto de dados DL3DV-10K, resultados de avaliação e modelos estarão publicamente acessíveis em https://dl3dv-10k.github.io/DL3DV-10K/.
O NeRF avançou significativamente a reconstrução de cenas 3D, capturando detalhes intrincados em diversos ambientes. Métodos existentes já utilizaram com sucesso o "baking" de campos de radiação para facilitar a renderização em tempo real de cenas pequenas. No entanto, ao serem aplicados a cenas em grande escala, essas técnicas enfrentam desafios significativos, lutando para fornecer uma experiência em tempo real contínua devido a recursos limitados de computação, memória e largura de banda. Neste artigo, propomos o City-on-Web, que representa a cena inteira dividindo-a em blocos gerenciáveis, cada um com seu próprio Nível de Detalhe (LOD), garantindo alta fidelidade, gerenciamento eficiente de memória e renderização rápida. Paralelamente, projetamos cuidadosamente o processo de treinamento e inferência para que o resultado final da renderização na web seja consistente com o treinamento. Graças à nossa nova representação e ao processo de treinamento/inferência cuidadosamente projetado, somos os primeiros a alcançar a renderização em tempo real de cenas em grande escala em ambientes com recursos limitados. Resultados experimentais extensivos demonstram que nosso método facilita a renderização em tempo real de cenas em grande escala em uma plataforma web, atingindo 32 FPS em resolução 1080P com uma GPU RTX 3060, ao mesmo tempo em que alcança uma qualidade que rivaliza de perto com a dos métodos state-of-the-art. Página do projeto: https://ustc3dv.github.io/City-on-Web/
No domínio em rápida evolução da geração de conteúdo digital, o foco mudou dos modelos de texto para imagem (T2I) para modelos de difusão de vídeo mais avançados, notadamente texto para vídeo (T2V) e imagem para vídeo (I2V). Este artigo aborda o desafio complexo apresentado pelo I2V: converter imagens estáticas em sequências de vídeo dinâmicas e realistas, preservando a fidelidade da imagem original. Métodos tradicionais geralmente envolvem a integração de imagens inteiras em processos de difusão ou o uso de codificadores pré-treinados para atenção cruzada. No entanto, essas abordagens frequentemente exigem a alteração dos pesos fundamentais dos modelos T2I, limitando assim sua reutilização. Introduzimos uma solução inovadora, denominada I2V-Adapter, projetada para superar tais limitações. Nossa abordagem preserva a integridade estrutural dos modelos T2I e seus módulos de movimento inerentes. O I2V-Adapter opera processando quadros de vídeo ruidosos em paralelo com a imagem de entrada, utilizando um módulo adaptador leve. Este módulo atua como uma ponte, conectando eficientemente a entrada ao mecanismo de auto-atenção do modelo, mantendo assim os detalhes espaciais sem exigir alterações estruturais no modelo T2I. Além disso, o I2V-Adapter requer apenas uma fração dos parâmetros dos modelos convencionais e garante compatibilidade com os modelos T2I e ferramentas de controle existentes, impulsionados pela comunidade. Nossos resultados experimentais demonstram a capacidade do I2V-Adapter de produzir saídas de vídeo de alta qualidade. Esse desempenho, aliado à sua versatilidade e à redução da necessidade de parâmetros treináveis, representa um avanço substancial no campo da geração de vídeo impulsionada por IA, particularmente para aplicações criativas.
A síntese de novas visões de cenas dinâmicas tem sido um problema intrigante, porém desafiador. Apesar dos avanços recentes, alcançar simultaneamente resultados fotorealísticos de alta resolução, renderização em tempo real e armazenamento compacto continua sendo uma tarefa formidável. Para enfrentar esses desafios, propomos o Spacetime Gaussian Feature Splatting como uma nova representação de cenas dinâmicas, composta por três componentes fundamentais. Primeiro, formulamos Spacetime Gaussians expressivos ao aprimorar Gaussians 3D com opacidade temporal e movimento/rotação paramétricos. Isso permite que os Spacetime Gaussians capturem conteúdo estático, dinâmico e transitório em uma cena. Segundo, introduzimos a renderização de características splatadas, que substitui harmônicos esféricos por características neurais. Essas características facilitam a modelagem da aparência dependente de visão e tempo, mantendo um tamanho reduzido. Terceiro, aproveitamos a orientação do erro de treinamento e da profundidade aproximada para amostrar novos Gaussians em áreas que são difíceis de convergir com pipelines existentes. Experimentos em vários conjuntos de dados reais estabelecidos demonstram que nosso método alcança qualidade e velocidade de renderização de ponta, mantendo o armazenamento compacto. Em resolução 8K, nossa versão leve do modelo pode renderizar a 60 FPS em uma GPU Nvidia RTX 4090.
A geração de animações de personagens baseados em física com controle intuitivo tem sido há muito tempo uma tarefa desejável, com inúmeras aplicações. No entanto, gerar animações fisicamente simuladas que reflitam instruções humanas de alto nível continua sendo um problema difícil devido à complexidade dos ambientes físicos e à riqueza da linguagem humana. Neste artigo, apresentamos o InsActor, uma estrutura gerativa fundamentada que aproveita os avanços recentes em modelos de movimento humano baseados em difusão para produzir animações de personagens baseados em física orientadas por instruções. Nossa estrutura capacita o InsActor a capturar relações complexas entre instruções humanas de alto nível e movimentos dos personagens, empregando políticas de difusão para planejamento de movimento condicionado de forma flexível. Para superar estados inválidos e transições de estado inviáveis em movimentos planejados, o InsActor descobre habilidades de baixo nível e mapeia planos para sequências de habilidades latentes em um espaço latente compacto. Experimentos extensivos demonstram que o InsActor alcança resultados de ponta em várias tarefas, incluindo geração de movimento orientada por instruções e direcionamento a pontos de referência orientado por instruções. Notavelmente, a capacidade do InsActor de gerar animações fisicamente simuladas usando instruções humanas de alto nível o torna uma ferramenta valiosa, particularmente na execução de tarefas de longo prazo com um conjunto rico de instruções.
Os modelos de linguagem state-of-the-art estão se tornando cada vez maiores em um esforço para alcançar o melhor desempenho em grandes corpora de dados textuais disponíveis. No entanto, o tamanho considerável das arquiteturas Transformer dificulta a implantação dos modelos dentro de restrições computacionais, ambientais ou específicas de dispositivos. Exploramos a compressão baseada em dados de modelos pré-treinados existentes como uma alternativa ao treinamento de modelos menores do zero. Para isso, escalamos aproximações de curvatura fatoradas por Kronecker da paisagem de perda alvo para grandes modelos de linguagem. Ao fazer isso, podemos calcular tanto a alocação dinâmica de estruturas que podem ser removidas quanto as atualizações dos pesos restantes que levam em consideração a remoção. Fornecemos um framework geral para poda não estruturada, semiestruturada e estruturada e aprimoramos as atualizações de pesos para capturar mais correlações entre os pesos, mantendo a eficiência computacional. Experimentalmente, nosso método pode podar linhas e colunas de uma variedade de modelos OPT e do Llamav2-7B em 20%-30%, com uma perda de desempenho insignificante, e alcançar resultados state-of-the-art em poda não estruturada e semiestruturada de grandes modelos de linguagem.
Primitivas gráficas neurais são mais rápidas e alcançam maior qualidade quando suas redes neurais são aprimoradas por estruturas de dados espaciais que armazenam características treináveis organizadas em uma grade. No entanto, as grades de características existentes ou possuem uma grande pegada de memória (grades densas ou fatoradas, árvores e tabelas de hash) ou desempenho lento (aprendizado de índices e quantização vetorial). Neste artigo, mostramos que uma tabela de hash com sondas aprendidas não possui nenhuma dessas desvantagens, resultando em uma combinação favorável de tamanho e velocidade. A inferência é mais rápida do que tabelas de hash sem sondas com qualidade igual, enquanto o treinamento é apenas 1,2-2,6x mais lento, superando significativamente as abordagens anteriores de aprendizado de índices. Chegamos a essa formulação ao enquadrar todas as grades de características em um framework comum: cada uma corresponde a uma função de consulta que indexa uma tabela de vetores de características. Nesse framework, as funções de consulta das estruturas de dados existentes podem ser combinadas por meio de combinações aritméticas simples de seus índices, resultando em compressão e velocidade Pareto-ótimas.
Resolver a conversão de imagem para 3D a partir de uma única visão é um problema mal-posto, e os métodos atuais de reconstrução neural que abordam isso através de modelos de difusão ainda dependem de otimização específica para a cena, limitando sua capacidade de generalização. Para superar as limitações das abordagens existentes em relação à generalização e consistência, introduzimos uma nova técnica de renderização neural. Nossa abordagem emprega a função de distância com sinal como representação da superfície e incorpora prioridades generalizáveis por meio de volumes de codificação geométrica e HyperNetworks. Especificamente, nosso método constrói volumes de codificação neural a partir de entradas geradas de múltiplas visões. Ajustamos os pesos da rede SDF condicionados a uma imagem de entrada no momento do teste para permitir a adaptação do modelo a novas cenas de maneira direta via HyperNetworks. Para mitigar artefatos derivados das visões sintetizadas, propomos o uso de um módulo de transformador de volume para melhorar a agregação de características da imagem, em vez de processar cada ponto de vista separadamente. Através do nosso método proposto, denominado Hyper-VolTran, evitamos o gargalo da otimização específica para a cena e mantemos a consistência entre as imagens geradas a partir de múltiplos pontos de vista. Nossos experimentos mostram as vantagens da nossa abordagem proposta, com resultados consistentes e geração rápida.
Os atuais modelos de difusão em larga escala representam um salto gigantesco na síntese condicional de imagens, sendo capazes de interpretar diversas pistas, como texto, poses humanas e bordas. No entanto, sua dependência de recursos computacionais substanciais e da coleta extensiva de dados continua sendo um gargalo. Por outro lado, a integração de modelos de difusão existentes, cada um especializado para diferentes controles e operando em espaços latentes únicos, apresenta um desafio devido a resoluções de imagem incompatíveis e estruturas de incorporação de espaços latentes, dificultando seu uso conjunto. Para abordar essas limitações, apresentamos o "PanGu-Draw", um novo modelo de difusão latente projetado para síntese eficiente de texto em imagem que acomoda habilmente múltiplos sinais de controle. Primeiro, propomos uma Estratégia de Treinamento com Desacoplamento Temporal eficiente em recursos, que divide o modelo monolítico de texto em imagem em geradores de estrutura e textura. Cada gerador é treinado usando um regime que maximiza a utilização de dados e a eficiência computacional, reduzindo a preparação de dados em 48% e os recursos de treinamento em 51%. Em segundo lugar, introduzimos o "Coop-Diffusion", um algoritmo que permite o uso cooperativo de vários modelos de difusão pré-treinados com diferentes espaços latentes e resoluções predefinidas dentro de um processo unificado de remoção de ruído. Isso possibilita a síntese de imagens com múltiplos controles em resoluções arbitrárias sem a necessidade de dados adicionais ou retreinamento. Validações empíricas do PanGu-Draw mostram sua excepcional capacidade na geração de imagens a partir de texto e na síntese de imagens com múltiplos controles, sugerindo uma direção promissora para futuras eficiências no treinamento de modelos e versatilidade na geração. O maior modelo T2I de 5B do PanGu-Draw foi lançado na plataforma Ascend. Página do projeto: https://pangu-draw.github.io
Os recentes avanços na geração de imagens orientadas por objetos levaram à geração zero-shot, mas a seleção precisa e o foco em representações cruciais dos objetos ainda são desafios. Para abordar isso, introduzimos o SSR-Encoder, uma nova arquitetura projetada para capturar seletivamente qualquer objeto a partir de uma ou várias imagens de referência. Ele responde a várias modalidades de consulta, incluindo texto e máscaras, sem a necessidade de ajuste fino em tempo de teste. O SSR-Encoder combina um Alinhador de Token-para-Patch, que alinha as entradas de consulta com os patches de imagem, e um Codificador de Objetos com Preservação de Detalhes para extrair e preservar características refinadas dos objetos, gerando assim embeddings de objetos. Esses embeddings, usados em conjunto com embeddings de texto originais, condicionam o processo de geração. Caracterizado por sua generalizabilidade e eficiência, o SSR-Encoder se adapta a uma variedade de modelos personalizados e módulos de controle. Aprimorado pela Perda de Regularização de Consistência de Embeddings para melhorar o treinamento, nossos extensos experimentos demonstram sua eficácia na geração versátil e de alta qualidade de imagens, indicando sua ampla aplicabilidade. Página do projeto: https://ssr-encoder.github.io
A adaptação de domínio e a geração de retratos 3D guiados por texto encontram muitas aplicações em diversos campos. No entanto, devido à escassez de dados de treinamento e aos desafios em lidar com a alta variedade de geometria e aparência, os métodos existentes para essas tarefas sofrem com problemas como inflexibilidade, instabilidade e baixa fidelidade. Neste artigo, propomos um novo framework chamado DiffusionGAN3D, que impulsiona a adaptação de domínio e a geração 3D guiadas por texto ao combinar GANs 3D e priors de difusão. Especificamente, integramos modelos generativos 3D pré-treinados (por exemplo, EG3D) e modelos de difusão texto-para-imagem. O primeiro fornece uma base sólida para a geração estável e de alta qualidade de avatares a partir de texto. E os modelos de difusão, por sua vez, oferecem priors poderosos e guiam o ajuste fino do gerador 3D com direcionamento informativo para alcançar uma adaptação de domínio guiada por texto flexível e eficiente. Para aumentar a diversidade na adaptação de domínio e a capacidade de geração no texto-para-avatar, introduzimos a perda de distância relativa e o triplano aprendível específico para cada caso, respectivamente. Além disso, projetamos um módulo de refinamento progressivo de textura para melhorar a qualidade da textura em ambas as tarefas mencionadas. Experimentos extensivos demonstram que o framework proposto alcança excelentes resultados tanto na adaptação de domínio quanto nas tarefas de texto-para-avatar, superando os métodos existentes em termos de qualidade e eficiência de geração. A página do projeto está disponível em https://younglbw.github.io/DiffusionGAN3D-homepage/.
Modelos de geração de texto para imagem são poderosos, mas difíceis de usar. Os usuários elaboram prompts específicos para obter imagens melhores, embora as imagens possam ser repetitivas. Este artigo propõe uma estrutura de Expansão de Prompt que ajuda os usuários a gerar imagens de alta qualidade e diversificadas com menos esforço. O modelo de Expansão de Prompt recebe uma consulta de texto como entrada e produz um conjunto de prompts de texto expandidos que são otimizados para que, ao serem passados para um modelo de texto para imagem, gerem uma variedade maior de imagens atraentes. Realizamos um estudo de avaliação humana que mostra que as imagens geradas por meio da Expansão de Prompt são mais esteticamente agradáveis e diversificadas do que as geradas por métodos de linha de base. No geral, este artigo apresenta uma abordagem nova e eficaz para melhorar a experiência de geração de texto para imagem.
O poder gerativo inerente dos modelos de difusão de remoção de ruído os torna bem adequados para tarefas de restauração de imagens, onde o objetivo é encontrar a imagem de alta qualidade ideal dentro do espaço gerativo que se assemelhe de perto à imagem de entrada. Propomos um método para adaptar um modelo de difusão pré-treinado para restauração de imagens simplesmente adicionando ruído à imagem de entrada a ser restaurada e, em seguida, removendo o ruído. Nosso método é baseado na observação de que o espaço de um modelo gerativo precisa ser restringido. Impondo essa restrição ao ajustar o modelo gerativo com um conjunto de imagens âncora que capturam as características da imagem de entrada. Com o espaço restrito, podemos então aproveitar a estratégia de amostragem usada para geração para realizar a restauração de imagens. Avaliamos em comparação com métodos anteriores e mostramos desempenhos superiores em múltiplos conjuntos de dados de restauração do mundo real, preservando identidade e qualidade da imagem. Também demonstramos uma aplicação importante e prática na restauração personalizada, onde usamos um álbum pessoal como as imagens âncora para restringir o espaço gerativo. Essa abordagem nos permite produzir resultados que preservam com precisão detalhes de alta frequência, o que trabalhos anteriores não conseguem fazer. Página do projeto: https://gen2res.github.io.