Logotipo de Zephyrnet

ControlNet y StarCoder: avances en la investigación de Roblox para la IA generativa – Blog de Roblox

Fecha:

Estamos profundamente comprometidos con la realización de investigaciones responsables y comprometidas con la comunidad en todas las áreas, incluida la inteligencia artificial (IA). Lo logramos a través de la transparencia, la validación externa y el apoyo a las instituciones académicas a través de la colaboración y el patrocinio. Este enfoque nos permite acelerar el logro de los mayores avances en nuestras tres áreas de enfoque: IA generativa, escalamiento del centro de datos y seguridad en línea. Hoy compartimos conocimientos y resultados de dos de nuestros proyectos de investigación de IA generativa. Red de control es una red neuronal de código abierto que agrega control condicional a los modelos de generación de imágenes para obtener resultados de imágenes más precisos. codificador estrella es un modelo de lenguaje grande (LLM) de código abierto de última generación para la generación de código. 

Ambos proyectos son colaboraciones académicas y de la industria. Ambos también se centran en herramientas radicalmente más poderosas para nuestros creadores: artistas y programadores 3D. Lo más importante y alineado con nuestra misión de invertir a largo plazo a través de una investigación transformadora es que estos proyectos muestran indicios de avances en la comprensión científica fundamental y el control de la IA para muchas aplicaciones. Creemos que este trabajo puede tener un impacto significativo en el futuro de Roblox y el campo en general y estamos orgullosos de compartirlo abiertamente.

Red de control

Los recientes avances en IA, específicamente métodos de aprendizaje automático (ML) basados ​​en datos que utilizan redes neuronales profundas, han impulsado nuevos avances en las herramientas de creación. Estos avances incluyen nuestra Asistente de código y Generador de materiales funciones que están disponibles públicamente en nuestra herramienta gratuita, Roblox Studio. Los sistemas de IA generativa modernos contienen estructuras de datos llamadas modelos que se perfeccionan mediante miles de millones de operaciones de entrenamiento. Los modelos más potentes de la actualidad son multimodales, lo que significa que se entrenan en una combinación de medios como texto, imágenes y audio. Esto les permite encontrar los significados subyacentes comunes en todos los medios en lugar de ajustarse demasiado a elementos específicos de un conjunto de datos, como paletas de colores u ortografía. 

Estos nuevos sistemas de IA tienen un poder expresivo significativo, pero ese poder se dirige en gran medida a través de la “ingeniería rápida”. Hacerlo significa simplemente cambiar el texto de entrada, similar a refinar una consulta en un motor de búsqueda si no arrojó lo que esperaba. Si bien esta puede ser una forma atractiva de jugar con una nueva tecnología, como un chatbot no dirigido, no es una forma eficiente ni efectiva de crear contenido. En cambio, los creadores necesitan herramientas poderosas que puedan aprovechar de manera efectiva mediante un control activo en lugar de conjeturas.

El proyecto ControlNet es un paso hacia la solución de algunos de estos desafíos. Ofrece una forma eficiente de aprovechar el poder de grandes modelos de IA previamente entrenados, como Difusión estable, sin depender de una ingeniería rápida. ControlNet aumenta el control al permitir que el artista proporcione condiciones de entrada adicionales más allá de las indicaciones de texto. El investigador de Roblox y profesor de la Universidad de Stanford, Maneesh Agrawala, y el investigador de Stanford, Lvmin Zhang, enmarcan los objetivos de nuestro proyecto conjunto ControlNet de la siguiente manera:

  1. Desarrollar una mejor interfaz de usuario para herramientas de IA generativa. Vaya más allá de la oscura manipulación inmediata y desarrolle formas más naturales de comunicar una idea o concepto creativo.
  2. Proporcionar un control espacial más preciso, para ir más allá de crear “una imagen como” o “una imagen al estilo de…” para permitir realizar exactamente la imagen que el creador tiene en mente.
  3. Transforme el entrenamiento de IA generativa en un proceso más eficiente en computación que se ejecute más rápidamente, requiera menos memoria y consuma menos energía eléctrica.
  4. Amplíe la IA generadora de imágenes en un bloque de construcción reutilizable. Luego se puede integrar con procesos de imágenes estandarizados y procesos de renderizado 3D. 

Al permitir a los creadores proporcionar una imagen adicional para el control espacial, ControlNet otorga un mayor control sobre la imagen final generada. Por ejemplo, un mensaje de "ciervo macho con astas" en un generador de texto a imagen existente produjo una amplia variedad de imágenes, como se muestra a continuación:

Estas imágenes generadas con soluciones de IA anteriores son atractivas, pero lamentablemente dan resultados esencialmente arbitrarios: no hay control. En esos sistemas de generación de imágenes anteriores no hay forma de dirigir la salida, excepto revisando el mensaje de texto.

Con ControlNet, el creador ahora tiene mucho más poder. Una forma de utilizar ControlNet es proporcionar una imagen de origen y una indicación para determinar la forma general a seguir. En este caso, las imágenes resultantes seguirían ofreciendo variedad pero, lo más importante, conservarían la forma especificada:

El creador también podría haber especificado un conjunto de bordes, una imagen sin ningún mensaje o muchas otras formas de proporcionar información expresiva al sistema.

Para crear un ControlNet, clonamos los pesos dentro de la red de un modelo de difusión grande en dos versiones. uno es el red entrenable (esto proporciona el control; es “el ControlNet”) y el otro es el red bloqueada. La red bloqueada conserva la capacidad aprendida de miles de millones de imágenes y podría ser cualquier generador de imágenes anterior. Luego entrenamos la red entrenable en conjuntos de datos de tareas específicas para aprender el control condicional de la imagen adicional. Las copias entrenables y bloqueadas están conectadas con un tipo único de capa convolucional que llamamos convolución cero, donde los pesos de convolución crecen progresivamente desde cero hasta parámetros optimizados de manera aprendida, lo que significa que inicialmente no tienen influencia y el sistema deriva el nivel óptimo de control para ejercer sobre la red bloqueada.

Dado que los pesos originales se conservan a través de la red bloqueada, el modelo funciona bien con conjuntos de datos de entrenamiento de varios tamaños. Y la capa de convolución cero hace que el proceso sea mucho más rápido: está más cerca de ajustar un modelo de difusión que de entrenar nuevas capas desde cero. 

Hemos realizado una validación exhaustiva de esta técnica para la generación de imágenes. ControlNet no sólo mejora la calidad de la imagen de salida. También hace que la capacitación de una red para una tarea específica sea más eficiente y, por lo tanto, práctica de implementar a escala para nuestros millones de creadores. En experimentos, ControlNet proporciona una ganancia de eficiencia de hasta 10 veces en comparación con escenarios alternativos que requieren que un modelo se vuelva a entrenar por completo. Esta eficiencia es fundamental, ya que el proceso de creación de nuevos modelos requiere mucho tiempo y recursos en comparación con el desarrollo de software tradicional. Hacer que la capacitación sea más eficiente conserva electricidad, reduce costos y aumenta la velocidad a la que se pueden agregar nuevas funciones.

La estructura única de ControlNet significa que funciona bien con conjuntos de datos de entrenamiento de varios tamaños y en muchos tipos diferentes de medios. Se ha demostrado que ControlNet funciona con muchos tipos diferentes de modalidades de control, incluidas fotografías, garabatos dibujados a mano y abierto Detección de pose. Creemos que ControlNet se puede aplicar a muchos tipos diferentes de medios para contenido de IA generativa. Este La investigación está abierta y disponible públicamente. para que la comunidad experimente y desarrolle, y continuaremos presentando más información a medida que hagamos más descubrimientos con ella.

codificador estrella

La IA generativa se puede aplicar para producir imágenes, audio, texto, código fuente de programas o cualquier otra forma de medios enriquecidos. Sin embargo, en diferentes medios, las aplicaciones con mayor éxito tienden a ser aquellas cuyo resultado se juzga subjetivamente. Por ejemplo, una imagen tiene éxito cuando atrae a un espectador humano. Es posible que no se noten ciertos errores en la imagen, como rasgos extraños en los bordes o incluso un dedo adicional en la mano, si la imagen general es convincente. Del mismo modo, un poema o un cuento pueden tener errores gramaticales o algunos saltos lógicos, pero si lo esencial es convincente, tendemos a perdonarlos. 

Otra forma de considerar criterios subjetivos es que el espacio de resultados es continuo. Un resultado puede ser mejor que otro, pero no existe un umbral específico en el que el resultado sea completamente aceptable o inaceptable. Para otros dominios y formas de medios, el resultado se juzga objetivamente. Por ejemplo, el código fuente producido por un asistente de programación de IA generativa es correcto o no. Si el código no puede pasar una prueba, falla, incluso si es similar al código de una solución válida. Este es un espacio de resultados discreto. Es más difícil tener éxito en un espacio discreto porque los criterios son más estrictos y porque no es posible acercarse progresivamente a una buena solución: el código se fragmenta hasta que de repente funciona.

Los LLM utilizados para la producción de texto funcionan bien para aplicaciones subjetivas y continuas, como los chatbots. También parecen funcionar bien para la generación de prosa en muchos idiomas humanos, como el inglés y el francés. Sin embargo, los LLM existentes no parecen funcionar tan bien para programación lenguas como lo hacen con las lenguas humanas. El código es una forma de matemática que es una forma objetiva y muy diferente de expresar significado que el lenguaje natural. Es un espacio de resultados discreto en lugar de un espacio de resultados continuo. Para lograr la más alta calidad en la generación de código de lenguaje de programación para los creadores de Roblox, necesitamos métodos de aplicación de LLM que puedan funcionar bien en este espacio objetivo y discreto. También necesitamos métodos sólidos para expresar la funcionalidad del código independientemente de la sintaxis de un lenguaje particular, como Lua, JavaScript o Python. 

StarCoder, un nuevo LLM de código abierto de última generación para generación de código, es un avance importante para este desafío técnico y un LLM verdaderamente abierto para todos. StarCoder es un resultado del código grande consorcio de investigación, que involucra a más de 600 miembros en laboratorios de investigación académicos y de la industria. El investigador de Roblox y profesor de la Universidad Northeastern, Arjun Guha, ayudó a liderar este equipo para desarrollar StarCoder. Estos primeros resultados publicados se centran exclusivamente en el aspecto del código, que es el área en la que el campo más necesita un nuevo crecimiento dado el relativo éxito de los métodos subjetivos. 

Para ofrecer IA generativa a través de LLM que respalden el ecosistema de IA más amplio y la comunidad Roblox, necesitamos modelos que hayan sido capacitados exclusivamente en conjuntos de datos recopilados de manera responsable y con licencia adecuada. Estos también deberían tener licencias irrestrictas para que cualquiera pueda usarlos, desarrollarlos y contribuir al ecosistema. Hoy en día, los LLM más potentes son propietarios o tienen licencia para formas limitadas de uso comercial, lo que prohíbe o limita la capacidad de los investigadores para experimentar con el modelo en sí. Por el contrario, StarCoder es un modelo verdaderamente abierto, creado a través de una coalición de investigadores académicos y de la industria y con licencia sin restricciones para aplicaciones comerciales a cualquier escala. StarCoder está capacitado exclusivamente en contenido recopilado de manera responsable y con la licencia adecuada. El modelo se entrenó inicialmente con código público y hay un proceso de exclusión disponible para aquellos que prefieren que no se utilice su código para la capacitación.

Actualmente, StarCoder funciona en 86 lenguajes de programación diferentes, incluidos Python, C++ y Java. En el momento de la publicación del artículo, estaba superando a todos los LLM de código abierto que admiten múltiples idiomas e incluso era competitivo con muchos de los modelos propietarios cerrados. 

StarCoder LLM es una contribución al ecosistema, pero nuestro objetivo de investigación es mucho más profundo. El mayor impacto de esta investigación es avanzar en el modelado semántico de modelos multimodales objetivos y subjetivos, incluidos código, texto, imágenes, voz y video, y aumentar la eficiencia del entrenamiento a través de técnicas de transferencia de dominio. También esperamos obtener conocimientos profundos sobre la capacidad de mantenimiento y control de la IA generativa para tareas objetivas como la generación de código fuente. Existe una gran diferencia entre una demostración intrigante de tecnología emergente y un producto seguro, confiable y eficiente que aporta valor a su comunidad de usuarios. Para nuestros modelos de ML, optimizamos el rendimiento en función del uso de memoria, la conservación de energía y el tiempo de ejecución. También desarrollamos una infraestructura sólida, rodeamos el núcleo de IA con software para conectarlo al resto del sistema y desarrollamos un sistema perfecto para actualizaciones frecuentes a medida que se agregan nuevas funciones. 

Reunir a los científicos e ingenieros de Roblox con algunas de las mentes más brillantes de la comunidad científica es un componente clave en nuestra búsqueda de tecnología innovadora. Estamos orgullosos de compartir estos primeros resultados e invitar a la comunidad de investigación a colaborar con nosotros y aprovechar estos avances.

punto_img

Información más reciente

punto_img