El equipo de OpenAI ha lanzado su modelo openai/circuit-sparsity en Hugging Face y el kit de herramientas openai/circuit_sparsity en GitHub. El comunicado incluye los modelos y circuitos del artículo ‘Los transformadores de peso disperso tienen circuitos interpretables’.
¿Qué es un transformador de poco peso?
Los modelos son transformadores decodificadores estilo GPT-2 entrenados en código Python. La escasez no se agrega después del entrenamiento, sino que se aplica durante la optimización. Después de cada paso de AdamW, el ciclo de entrenamiento mantiene solo las entradas de mayor magnitud en cada matriz de ponderación y sesgo, incluidas las incrustaciones de tokens, y pone a cero el resto. Todas las matrices mantienen la misma fracción de elementos distintos de cero.
Los modelos más escasos tienen aproximadamente 1 entre 1000 pesos distintos de cero. Además, el equipo de OpenAI impuso una leve escasez de activación, de modo que aproximadamente 1 de cada 4 activaciones de nodos sean distintas de cero, cubriendo lecturas residuales, escrituras residuales, canales de atención y neuronas MLP.
La escasez se recoce durante el entrenamiento. Los modelos comienzan siendo densos, luego el presupuesto permitido distinto de cero avanza gradualmente hacia el valor objetivo. Este diseño permite al equipo de investigación escalar el ancho mientras mantiene fijo el número de parámetros distintos de cero, y luego estudiar la compensación de la interpretabilidad de la capacidad a medida que varían la escasez y el tamaño del modelo. El equipo de investigación muestra que, para una determinada pérdida previa al entrenamiento, los circuitos recuperados de modelos dispersos son aproximadamente 16 veces más pequeños que los de modelos densos.
Entonces, ¿qué es un circuito disperso?
El objeto central de este trabajo de investigación es un circuito disperso. El equipo de investigación define los nodos con una granularidad muy fina, cada nodo es una única neurona, canal de atención, canal de lectura residual o canal de escritura residual. Una arista es una única entrada distinta de cero en una matriz de peso que conecta dos nodos. El tamaño del circuito se mide por la media geométrica del número de aristas en las tareas.
Para probar los modelos, el equipo de investigación creó 20 tareas binarias de token siguientes simples de Python. Cada tarea obliga al modelo a elegir entre 2 finalizaciones que difieren en una ficha. Los ejemplos incluyen:
single_double_quote, predice si cerrar una cadena con una comilla simple o doble bracket_counting, decide entre ]y ]]según la profundidad de anidamiento de la lista set_or_string, rastrea si una variable se inicializó como un conjunto o una cadena
Para cada tarea, podan el modelo para encontrar el circuito más pequeño que aún logra una pérdida objetivo de 0,15 en esa distribución de tareas. La poda opera a nivel de nodo. Los nodos eliminados se eliminan en promedio, sus activaciones se congelan en la media durante la distribución previa al entrenamiento. Una máscara binaria aprendida por nodo se optimiza con un sustituto de estilo directo para que el objetivo compense la pérdida de tareas y el tamaño del circuito.
Circuitos de ejemplo, cierre de cotizaciones y soportes de conteo.
El ejemplo más compacto es el circuito de single_double_quote. Aquí el modelo debe emitir el tipo de cotización de cierre correcto dada una cotización de apertura. El circuito podado tiene 12 nodos y 9 aristas.
El mecanismo es de dos pasos. En la capa 0.mlp, se especializan 2 neuronas:
una neurona detectora de comillas que se activa tanto en ” como en ‘ una neurona clasificadora de tipo comillas que es positiva en ” y negativa en ‘
Un encabezado de atención posterior en la capa 10.attn utiliza el canal detector de cotizaciones como clave y el canal clasificador de tipo de cotizaciones como valor. El token final tiene una consulta positiva constante, por lo que la salida de atención copia el tipo de cotización correcto en la última posición y el modelo cierra la cadena correctamente.
bracket_counting produce un circuito ligeramente más grande pero con un algoritmo claro. La incrustación de [ writes into several residual channels that act as bracket detectors. A value channel in a layer 2 attention head averages this detector activation over the context, effectively computing nesting depth and storing it in a residual channel. A later attention head thresholds this depth and activates a nested list close channel only when the list is nested, which leads the model to output ]].
Un tercer circuito, para set_or_string_fixedvarname, muestra cómo el modelo rastrea el tipo de una variable llamada actual. Un cabezal copia la incrustación de la corriente en el token set() o “”. Un encabezado posterior usa esa incrustación como consulta y clave para copiar la información relevante cuando el modelo debe elegir entre .add y +=.
Puentes que conectan modelos dispersos con modelos densos
El equipo de investigación también introduce puentes que conectan un modelo disperso con un modelo denso ya entrenado. Cada puente es un par de codificador y decodificador que asigna activaciones densas a activaciones dispersas y viceversa una vez por subcapa. El codificador utiliza un mapa lineal con activación AbsTopK, el decodificador es lineal.
El entrenamiento añade pérdidas que fomentan los pases delanteros híbridos, escasos y densos, para que coincidan con el modelo denso original. Esto permite al equipo de investigación perturbar características dispersas interpretables, como el canal clasificador de tipo cotización, y luego mapear esa perturbación en el modelo denso, cambiando su comportamiento de forma controlada.
¿Qué ha lanzado exactamente OpenAI Team?
El equipo de OpenAI lanzó el modelo openai/circuit-sparsity en Hugging Face. Este es un modelo de parámetros de 0.4B etiquetado con custom_code, correspondiente a csp_yolo2 en el artículo de investigación. El modelo se utiliza para obtener resultados cualitativos en el recuento de corchetes y la vinculación de variables. Tiene licencia Apache 2.0.
Conclusiones clave
Entrenamiento con poco peso, no poda post hoc: la escasez de circuitos entrena modelos de decodificador estilo GPT-2 con una escasez de peso extrema impuesta durante la optimización; la mayoría de los pesos son cero, por lo que cada neurona tiene solo unas pocas conexiones. Circuitos pequeños, específicos de tareas con nodos y bordes explícitos: el equipo de investigación define circuitos a nivel de neuronas individuales, canales de atención y canales residuales, y recupera circuitos que a menudo tienen decenas de nodos y pocos bordes para 20 siguientes tareas simbólicas binarias de Python. El cierre de cotizaciones y el seguimiento de tipos son circuitos totalmente instanciados: para tareas como single_double_quote, bracket_counting y set_or_string_fixedvarname, el equipo de investigación aísla circuitos que implementan algoritmos concretos para la detección de cotizaciones, la profundidad de los corchetes y el seguimiento de tipos variables, y el circuito de cierre de cadenas utiliza 12 nodos y 9 aristas. Modelos y herramientas en Hugging Face y GitHub: OpenAI lanzó el modelo openai/circuit-sparsity del parámetro 0.4B en Hugging Face y el código base completo openai/circuit_sparsity en GitHub bajo Apache 2.0, incluidos puntos de control de modelos, definiciones de tareas y una interfaz de usuario de visualización de circuitos. Mecanismo de puente para relacionar modelos dispersos y densos: el trabajo introduce puentes codificador-decodificador que mapean entre activaciones dispersas y densas, lo que permite a los investigadores transferir intervenciones de características dispersas a transformadores densos estándar y estudiar cómo los circuitos interpretables se relacionan con modelos a escala de producción real.
Consulte los pesos del papel y del modelo. No dude en consultar nuestra página de GitHub para tutoriales, códigos y cuadernos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 100.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.
Asif Razzaq es el director ejecutivo de Marktechpost Media Inc.. Como empresario e ingeniero visionario, Asif está comprometido a aprovechar el potencial de la inteligencia artificial para el bien social. Su esfuerzo más reciente es el lanzamiento de una plataforma de medios de inteligencia artificial, Marktechpost, que se destaca por su cobertura en profundidad del aprendizaje automático y las noticias sobre aprendizaje profundo que es técnicamente sólida y fácilmente comprensible para una amplia audiencia. La plataforma cuenta con más de 2 millones de visitas mensuales, lo que ilustra su popularidad entre el público.