Construyendo arquitecturas que puedan manejar los datos del mundo.

Perceiver y Perceiver IO funcionan como herramientas multipropósito para IA

La mayoría de las arquitecturas utilizadas por los sistemas de IA en la actualidad son especialistas. Una red residual 2D puede ser una buena opción para procesar imágenes, pero en el mejor de los casos es una opción poco adecuada para otros tipos de datos, como las señales Lidar utilizadas en vehículos autónomos o los pares utilizados en robótica. Es más, las arquitecturas estándar a menudo se diseñan con una sola tarea en mente, lo que a menudo lleva a los ingenieros a hacer todo lo posible para remodelar, distorsionar o modificar sus entradas y salidas con la esperanza de que una arquitectura estándar pueda aprender a manejar su problema correctamente. Manejar más de un tipo de datos, como los sonidos y las imágenes que componen los videos, es aún más complicado y generalmente implica sistemas complejos, ajustados a mano, construidos a partir de muchas partes diferentes, incluso para tareas simples. Como parte de la misión de DeepMind de resolver inteligencia para hacer avanzar la ciencia y la humanidad, queremos construir sistemas que puedan resolver problemas que utilicen muchos tipos de entradas y salidas, por lo que comenzamos a explorar una arquitectura más general y versátil que pueda manejar todo tipo de datos. .

Figura 1. La arquitectura Perceiver IO asigna matrices de entrada a matrices de salida mediante una pequeña matriz latente, lo que le permite escalar con elegancia incluso para entradas y salidas muy grandes. Perceiver IO utiliza un mecanismo de atención global que se generaliza a través de muchos tipos diferentes de datos.

En un trabajo presentado en ICML 2021 (la Conferencia Internacional sobre Aprendizaje Automático) y publicado como preimpresión en arXiv, presentamos Perceiver, una arquitectura de propósito general que puede procesar datos que incluyen imágenes, nubes de puntos, audio, video y sus combinaciones. Si bien el Perceiver podía manejar muchas variedades de datos de entrada, estaba limitado a tareas con resultados simples, como la clasificación. A nueva preimpresión en arXiv describe Perceiver IO, una versión más general de la arquitectura Perceiver. Perceiver IO puede producir una amplia variedad de resultados a partir de muchas entradas diferentes, lo que lo hace aplicable a dominios del mundo real como el lenguaje, la visión y la comprensión multimodal, así como a juegos desafiantes como StarCraft II. Para ayudar a los investigadores y a la comunidad de aprendizaje automático en general, ahora hemos código abierto.

Figura 2. Perceiver IO procesa el lenguaje eligiendo primero a qué caracteres prestar atención. El modelo aprende a utilizar varias estrategias diferentes: algunas partes de la red atienden a lugares específicos en la entrada, mientras que otras atienden a caracteres específicos como signos de puntuación.

Los perceptores se basan en Transformador, una arquitectura que utiliza una operación llamada “atención” para asignar entradas a salidas. Al comparar todos los elementos de la entrada, los Transformers procesan las entradas en función de sus relaciones entre sí y con la tarea. La atención es simple y ampliamente aplicable, pero los transformadores usan la atención de una manera que puede volverse costosa rápidamente a medida que aumenta la cantidad de entradas. Esto significa que los Transformers funcionan bien para entradas con como máximo unos pocos miles de elementos, pero las formas comunes de datos como imágenes, vídeos y libros pueden contener fácilmente millones de elementos. Con el Perceiver original, resolvimos un problema importante para una arquitectura generalista: escalar la operación de atención del Transformador a entradas muy grandes sin introducir suposiciones específicas de dominio. El Perceptor hace esto utilizando la atención para codificar primero las entradas en una pequeña matriz latente. Esta matriz latente luego se puede procesar más a un costo independiente del tamaño de la entrada, lo que permite que la memoria del Perceiver y las necesidades computacionales crezcan con gracia a medida que la entrada crece, incluso para modelos especialmente profundos.

Figura 3. Perceiver IO produce resultados de última generación en la desafiante tarea de estimar el flujo óptico o rastrear el movimiento de todos los píxeles de una imagen. El color de cada píxel muestra la dirección y velocidad del movimiento estimada por Perceiver IO, como se indica en la leyenda anterior.

Este “crecimiento elegante” permite al Perceiver alcanzar un nivel de generalidad sin precedentes: es competitivo con modelos de dominios específicos en puntos de referencia basados ​​en imágenes, nubes de puntos 3D y audio e imágenes juntos. Pero como el Perceiver original producía sólo una salida por entrada, no era tan versátil como necesitaban los investigadores. Perceiver IO soluciona este problema utilizando la atención no solo para codificar en una matriz latente sino también para decodificarla, lo que le da a la red una gran flexibilidad. Perceiver IO ahora se adapta a entradas grandes y diversas y resultados e incluso puede manejar muchas tareas o tipos de datos a la vez. Esto abre la puerta a todo tipo de aplicaciones, como comprender el significado de un texto a partir de cada uno de sus caracteres, rastrear el movimiento de todos los puntos de una imagen, procesar el sonido, las imágenes y las etiquetas que componen un vídeo, e incluso reproducir juegos, todo ello utilizando una arquitectura única que es más simple que las alternativas.

En nuestros experimentos, hemos visto a Perceiver IO funcionar en una amplia gama de dominios de referencia (como lenguaje, visión, datos multimodales y juegos) para proporcionar una forma lista para usar de manejar muchos tipos de datos. Esperamos nuestra última preimpresión y el codigo disponible en Github Ayude a los investigadores y profesionales a abordar problemas sin necesidad de invertir tiempo y esfuerzo para crear soluciones personalizadas utilizando sistemas especializados. A medida que continuamos aprendiendo de la exploración de nuevos tipos de datos, esperamos seguir mejorando esta arquitectura de propósito general y hacer que sea más rápido y fácil resolver problemas en la ciencia y el aprendizaje automático.