ControlNet e StarCoder: avanços na pesquisa da Roblox para IA generativa - Roblox Blog

ControlNet e StarCoder: avanços na pesquisa Roblox para IA generativa – Roblox Blog

Nó Fonte: 2864546

Estamos profundamente comprometidos em realizar pesquisas responsáveis ​​e engajadas na comunidade em todas as áreas, incluindo inteligência artificial (IA). Conseguimos isso por meio de transparência, validação externa e apoio a instituições acadêmicas por meio de colaboração e patrocínio. Esta abordagem permite-nos acelerar a obtenção dos maiores avanços nas nossas três áreas de foco: IA generativa, dimensionamento de data centers e segurança online. Hoje, estamos compartilhando insights e resultados de dois de nossos projetos de pesquisa generativa em IA. ControlNet é uma rede neural de código aberto que adiciona controle condicional aos modelos de geração de imagens para resultados de imagens mais precisos. StarCoder é um modelo de linguagem grande (LLM) de código aberto de última geração para geração de código. 

Ambos os projetos são colaborações acadêmicas e industriais. Ambos também estão focados em ferramentas radicalmente mais poderosas para nossos criadores: artistas e programadores 3D. Mais importante ainda, e alinhados com a nossa missão de investir numa visão de longo prazo através de investigação transformadora, estes projetos apresentam indicações de avanços na compreensão científica fundamental e no controlo da IA ​​para muitas aplicações. Acreditamos que este trabalho pode ter um impacto significativo no futuro da Roblox e da área como um todo e temos orgulho de compartilhá-lo abertamente.

ControlNet

Avanços recentes em IA – especificamente métodos de aprendizado de máquina (ML) orientados por dados usando redes neurais profundas – impulsionaram novos avanços em ferramentas de criação. Esses avanços incluem nosso Assistente de código e Gerador de Materiais recursos que estão disponíveis publicamente em nossa ferramenta gratuita, Roblox Studio. Os sistemas modernos de IA generativa contêm estruturas de dados chamadas modelos que são refinadas através de bilhões de operações de treinamento. Os modelos mais poderosos hoje são multimodais, o que significa que são treinados em uma mistura de mídias como texto, imagens e áudio. Isso permite que eles encontrem os significados subjacentes comuns nas mídias, em vez de se ajustarem demais a elementos específicos de um conjunto de dados, como paletas de cores ou ortografia. 

Estes novos sistemas de IA têm um poder expressivo significativo, mas esse poder é dirigido em grande parte através de “engenharia imediata”. Fazer isso significa simplesmente alterar o texto de entrada, semelhante a refinar uma consulta de mecanismo de pesquisa se ela não retornar o que você esperava. Embora esta possa ser uma forma envolvente de brincar com uma nova tecnologia, como um chatbot não direcionado, não é uma forma eficiente ou eficaz de criar conteúdo. Em vez disso, os criadores precisam de ferramentas poderosas que possam aproveitar de forma eficaz por meio de controle ativo, em vez de suposições.

O projeto ControlNet é um passo para resolver alguns desses desafios. Ele oferece uma maneira eficiente de aproveitar o poder de grandes modelos de IA pré-treinados, como Difusão Estável, sem depender de engenharia imediata. ControlNet aumenta o controle permitindo que o artista forneça condições de entrada adicionais além de apenas prompts de texto. O pesquisador Roblox e professor da Universidade de Stanford, Maneesh Agrawala, e o pesquisador de Stanford, Lvmin Zhang, enquadram os objetivos de nosso projeto conjunto ControlNet como:

  1. Desenvolva uma interface de usuário melhor para ferramentas generativas de IA. Vá além da manipulação obscura e imediata e desenvolva formas mais naturais de comunicar uma ideia ou conceito criativo.
  2. Proporcionar um controle espacial mais preciso, ir além de fazer “uma imagem semelhante” ou “uma imagem no estilo de…” para permitir perceber exatamente a imagem que o criador tem em mente.
  3. Transforme o treinamento generativo de IA em um processo mais eficiente em termos de computação, que é executado mais rapidamente, requer menos memória e consome menos energia elétrica.
  4. Amplie a IA geradora de imagens em um bloco de construção reutilizável. Em seguida, ele pode ser integrado com processamento de imagem padronizado e pipelines de renderização 3D. 

Ao permitir que os criadores forneçam uma imagem adicional para controle espacial, o ControlNet garante maior controle sobre a imagem final gerada. Por exemplo, um prompt de “veado macho com chifres” em um gerador de texto para imagem existente produziu uma grande variedade de imagens, conforme mostrado abaixo:

Essas imagens geradas com soluções anteriores de IA são atraentes, mas infelizmente apresentam resultados essencialmente arbitrários – não há controle. Não há nenhuma maneira nesses sistemas de geração de imagens anteriores direcionar a saída, exceto para revisar o prompt de texto.

Com o ControlNet, o criador agora tem muito mais poder. Uma maneira de usar o ControlNet é fornecer um prompt e uma imagem de origem para determinar a forma geral a seguir. Neste caso, as imagens resultantes ainda ofereceriam variedade, mas, fundamentalmente, manteriam a forma especificada:

O criador também poderia ter especificado um conjunto de bordas, uma imagem sem nenhum prompt ou muitas outras maneiras de fornecer informações expressivas ao sistema.

Para criar uma ControlNet, clonamos os pesos dentro da rede de um modelo de grande difusão em duas versões. Um é o rede treinável (este fornece o controle; é “o ControlNet”) e o outro é o rede bloqueada. A rede bloqueada preserva a capacidade aprendida com bilhões de imagens e pode ser qualquer gerador de imagens anterior. Em seguida, treinamos a rede treinável em conjuntos de dados específicos de tarefas para aprender o controle condicional da imagem adicional. As cópias treináveis ​​e bloqueadas estão conectadas a um tipo único de camada de convolução que chamamos convolução zero, onde os pesos de convolução crescem progressivamente de zeros para parâmetros otimizados de maneira aprendida, o que significa que inicialmente não têm influência e o sistema deriva o nível ideal de controle a ser exercido na rede bloqueada.

Como os pesos originais são preservados por meio da rede bloqueada, o modelo funciona bem com conjuntos de dados de treinamento de vários tamanhos. E a camada de convolução zero torna o processo muito mais rápido – mais próximo do ajuste fino de um modelo de difusão do que do treinamento de novas camadas do zero. 

Realizamos extensa validação desta técnica para geração de imagens. O ControlNet não melhora apenas a qualidade da imagem de saída. Também torna o treinamento de uma rede para uma tarefa específica mais eficiente e, portanto, prático para implantação em escala para nossos milhões de criadores. Em experimentos, o ControlNet fornece um ganho de eficiência de até 10x em comparação com cenários alternativos que exigem que um modelo seja totalmente treinado novamente. Esta eficiência é crítica, uma vez que o processo de criação de novos modelos é demorado e consome muitos recursos em relação ao desenvolvimento de software tradicional. Tornar o treinamento mais eficiente economiza eletricidade, reduz custos e aumenta a taxa de adição de novas funcionalidades.

A estrutura exclusiva do ControlNet significa que ele funciona bem com conjuntos de dados de treinamento de vários tamanhos e em diversos tipos de mídia. Foi demonstrado que o ControlNet funciona com muitos tipos diferentes de modalidades de controle, incluindo fotos, rabiscos desenhados à mão e pose aberta detecção de pose. Acreditamos que o ControlNet pode ser aplicado a muitos tipos diferentes de mídia para conteúdo generativo de IA. Esse a pesquisa é aberta e disponível publicamente para a comunidade experimentar e desenvolver, e continuaremos apresentando mais informações à medida que fizermos mais descobertas com ele.

StarCoder

A IA generativa pode ser aplicada para produzir imagens, áudio, texto, código-fonte de programa ou qualquer outra forma de rich media. Contudo, em diferentes meios de comunicação, as aplicações com maior sucesso tendem a ser aquelas cujos resultados são avaliados subjetivamente. Por exemplo, uma imagem tem sucesso quando atrai um espectador humano. Certos erros na imagem, como características estranhas nas bordas ou até mesmo um dedo extra na mão, podem não ser notados se a imagem geral for atraente. Da mesma forma, um poema ou conto pode conter erros gramaticais ou alguns saltos lógicos, mas se a essência for convincente, tendemos a perdoá-los. 

Outra forma de considerar critérios subjetivos é que o espaço de resultados é contínuo. Um resultado pode ser melhor que outro, mas não existe um limite específico no qual o resultado seja completamente aceitável ou inaceitável. Para outros domínios e formas de mídia, o resultado é julgado objetivamente. Por exemplo, o código-fonte produzido por um assistente de programação de IA generativa está correto ou não. Se o código não passar no teste, ele falhará, mesmo que seja semelhante ao código de uma solução válida. Este é um espaço de resultados discreto. É mais difícil ter sucesso em um espaço discreto porque os critérios são mais rígidos e porque não é possível aproximar-se progressivamente de uma boa solução – o código é dividido até funcionar repentinamente.

LLMs usados ​​para saída de texto funcionam bem para aplicações subjetivas e contínuas, como chatbots. Eles também parecem funcionar bem para a geração de prosa em muitas línguas humanas, como o inglês e o francês. No entanto, os LLMs existentes não parecem funcionar tão bem para programação línguas como o fazem para aquelas línguas humanas. Código é uma forma de matemática que é uma forma objetiva e muito diferente de expressar significado da linguagem natural. É um espaço de resultados discreto em vez de um espaço de resultados contínuo. Para alcançar a mais alta qualidade de geração de código de linguagem de programação para criadores de Roblox, precisamos de métodos de aplicação de LLMs que possam funcionar bem neste espaço discreto e objetivo. Também precisamos de métodos robustos para expressar a funcionalidade do código independente da sintaxe de uma linguagem específica, como Lua, JavaScript ou Python. 

StarCoder, um novo LLM de código aberto de última geração para geração de código, é um grande avanço para esse desafio técnico e um LLM verdadeiramente aberto para todos. StarCoder é um resultado do código grande consórcio de pesquisa, que envolve mais de 600 membros em laboratórios de pesquisa acadêmicos e industriais. O pesquisador Roblox e professor da Northeastern University, Arjun Guha, ajudou a liderar esta equipe no desenvolvimento do StarCoder. Estes primeiros resultados publicados concentram-se exclusivamente no aspecto do código, que é a área em que o campo mais necessita de novo crescimento, dado o relativo sucesso dos métodos subjetivos. 

Para fornecer IA generativa por meio de LLMs que apoiam o ecossistema de IA mais amplo e a comunidade Roblox, precisamos de modelos que tenham sido treinados exclusivamente em conjuntos de dados devidamente licenciados e coletados de forma responsável. Estes também devem ter licenças irrestritas para que qualquer pessoa possa usá-los, desenvolvê-los e contribuir de volta para o ecossistema. Hoje, os LLMs mais poderosos são proprietários ou licenciados para formas limitadas de uso comercial, o que proíbe ou limita a capacidade dos pesquisadores de experimentar o próprio modelo. Em contraste, o StarCoder é um modelo verdadeiramente aberto, criado através de uma coligação de investigadores industriais e académicos e licenciado sem restrições para aplicação comercial em qualquer escala. StarCoder é treinado exclusivamente em conteúdo coletado de forma responsável e devidamente licenciado. O modelo foi inicialmente treinado em código público e um processo de opt-out está disponível para quem prefere não ter seu código utilizado para treinamento.

Hoje, StarCoder funciona em 86 linguagens de programação diferentes, incluindo Python, C++ e Java. No momento da publicação do artigo, ele estava superando todos os LLM de código aberto que suportam vários idiomas e era até competitivo com muitos dos modelos proprietários fechados. 

O StarCoder LLM é uma contribuição para o ecossistema, mas nosso objetivo de pesquisa é muito mais profundo. O maior impacto desta pesquisa é o avanço da modelagem semântica de modelos multimodais objetivos e subjetivos, incluindo código, texto, imagens, fala, vídeo, e para aumentar a eficiência do treinamento por meio de técnicas de transferência de domínio. Também esperamos obter insights profundos sobre a capacidade de manutenção e controlabilidade da IA ​​generativa para tarefas objetivas, como a geração de código-fonte. Há uma grande diferença entre uma demonstração intrigante de tecnologia emergente e um produto seguro, confiável e eficiente que agrega valor à sua comunidade de usuários. Para nossos modelos de ML, otimizamos o desempenho em termos de consumo de memória, conservação de energia e tempo de execução. Também desenvolvemos uma infraestrutura robusta, cercamos o núcleo de IA com software para conectá-lo ao restante do sistema e desenvolvemos um sistema contínuo para atualizações frequentes à medida que novos recursos são adicionados. 

Reunir os cientistas e engenheiros da Roblox com algumas das mentes mais perspicazes da comunidade científica é um componente-chave em nossa busca por tecnologia inovadora. Estamos orgulhosos de partilhar estes resultados iniciais e convidar a comunidade de investigação a colaborar connosco e a desenvolver estes avanços.

Carimbo de hora:

Mais de Roblox