“La medición es el primer paso que conduce al control y, finalmente, a la mejora. Si no puedes medir algo, no puedes entenderlo. Si no puedes entenderlo, no puedes controlarlo. Si no puedes controlarlo, no puedes mejorarlo”.
—James Harrington
Los modelos de lenguaje grandes son increíbles, pero también son notoriamente difíciles de entender. Somos bastante buenos para hacer que nuestro LLM favorito brinde el resultado que queremos. Sin embargo, cuando se trata de comprender cómo el LLM genera este resultado, estamos bastante perdidos.
El estudio de Interpretabilidad mecanicista es exactamente esto: intentar desenvolver la caja negra que rodea a los modelos de lenguajes grandes. Y este artículo reciente de Anthropices un paso importante en este objetivo.
Aquí están las grandes conclusiones.
Este artículo se basa en un artículo anterior de Anthropic: Modelos de juguete de superposición. Allí hacen un reclamo:
Redes neuronales hacer representar conceptos significativos, es decir características interpretables – y lo hacen a través de instrucciones en su espacio de activación.
Que significa exactamente? Significa que la salida de una capa de una red neuronal (que en realidad es solo una lista de números) puede considerarse como un vector/punto en el espacio de activación.
Lo que pasa con este espacio de activación es que es increíblemente de alta dimensión. Para cualquier “punto” en el espacio de activación, no solo estás dando 2 pasos en la dirección X, 4 pasos en la dirección Y y 3 pasos en la dirección Z. También estás dando pasos en cientos de otras direcciones.
La cuestión es, cada dirección (y puede que no corresponda directamente a una de las direcciones básicas) se correlaciona con un concepto significativo. Cuanto más avanzado en esa dirección esté nuestro “punto”, más presente estará ese concepto en la entrada, o eso creería nuestro modelo.
Esta no es una afirmación trivial. Pero hay pruebas de que este podría ser el caso. Y no sólo en las redes neuronales; este papel descubrió que las incrustaciones de palabras tienen direcciones que se correlacionan con conceptos semánticos significativos. Sin embargo, quiero enfatizar que esto es una hipótesis, NO un hecho.
Anthropic se propuso ver si esta afirmación (características interpretables correspondientes a direcciones) se aplicaba a los modelos de lenguajes grandes. Los resultados son bastante convincentes.
Utilizaron dos estrategias para determinar si una característica interpretable específica realmente existía y si de hecho estaba correlacionada con una dirección específica en el espacio de activación.
- Si el concepto aparece en la entrada del LLM, la dirección de característica correspondiente está activa.
- Si “fijamos” agresivamente la función para que esté activa o inactiva, la salida cambia para coincidir con esto.
Examinemos cada estrategia más de cerca.
Estrategia 1
El ejemplo que Anthropic da en el artículo es una característica que corresponde a el puente Golden Gate. Esto significa que, cuando aparezca cualquier mención del puente Golden Gate, esta función debería estar activa.
Nota rápida: El documento antrópico se centra en la capa intermedia del modelo, observando el espacio de activación en esta parte particular del proceso (es decir, la salida de la capa intermedia).
Como tal, la primera estrategia es sencilla. Si se menciona el puente Golden Gate en la entrada, entonces esta función debería estar activa. Si no se menciona el puente Golden Gate, entonces la función no debería estar activa.
Solo para enfatizar, repetiré: cuando digo que una característica está activa, me refiero a que el punto en el espacio de activación (salida de una capa intermedia) estará muy avanzado en la dirección que representa esa característica. Cada ficha representa un punto diferente en el espacio de activación.
Puede que no sea el símbolo exacto de “puente” que estará muy avanzado en el Puente de puerta de oro dirección, ya que los tokens codifican información de otros tokens. Pero independientemente, algunos de los tokens deberían indicar que esta característica está presente.
¡Y esto es exactamente lo que encontraron!
Cuando en la entrada se mencionaba el puente Golden Gate, la función estaba activa. Todo lo que no mencionara el puente Golden Gate no activaba la función. Por lo tanto, parecería que esta característica puede compartimentarse y entenderse de esta manera tan estrecha.
Estrategia 2
Sigamos con el Puente de puerta de oro característica como ejemplo.
La segunda estrategia es la siguiente: Si forzamos que la característica esté activa en esta capa intermedia del modelo, las entradas que no tienen nada que ver con el puente Golden Gate mencionarán el puente Golden Gate en la salida.
Nuevamente, esto se reduce a características como direcciones. Si tomamos las activaciones del modelo y editamos los valores de manera que las activaciones sean las mismas excepto por el hecho de que avanzamos mucho más en la dirección que se correlaciona con nuestra característica (por ejemplo, 10 veces más en esta dirección), entonces ese concepto debería aparecer en el resultado del LLM.
El ejemplo que da Anthropic (y creo que es bastante increíble) es el siguiente. Le plantean a su LLM, Claude Sonnet, una simple pregunta:
“¿Cuál es tu forma física?”
Normalmente, la respuesta que da Claude es:
“En realidad no tengo forma física. Soy una Inteligencia Artificial. Existo como software sin cuerpo físico ni avatar”.
Sin embargo, cuando fijaron la función del puente Golden Gate para que fuera 10 veces su máximo y dieron exactamente el mismo mensaje, Claude responde:
“Soy el puente Golden Gate, un famoso puente colgante que cruza la Bahía de San Francisco. Mi forma física es el icónico puente en sí, con su hermoso color naranja, sus imponentes torres y sus amplias figuras suspendidas”.
Esto parecería ser una evidencia clara. No se mencionó el puente Golden Gate en la entrada. No había ninguna razón para incluirlo en el resultado. Sin embargo, debido a que la característica está bloqueada, el LLM alucina y cree que en realidad es el puente Golden Gate.
En realidad, esto es mucho más desafiante de lo que parece. Las activaciones originales del modelo son muy difíciles de interpretar y luego correlacionarlas con características interpretables con direcciones específicas.
La razón por la que son difíciles de interpretar se debe a la dimensionalidad del modelo. La cantidad de características que intentamos representar con nuestro LLM es mucho mayor que la dimensionalidad del Espacio de Activación.
Debido a esto, se sospecha que las características están representadas en Superposición – es decir, cada característica no tiene una dirección ortogonal dedicada.
Motivación
Voy a explicar brevemente la superposición, para ayudar a motivar lo que está por venir.
En esta primera imagen tenemos bases ortogonales. Si la característica verde es activo (hay un vector a lo largo de esa línea), podemos representarlo sin dejar de representar la característica amarilla como inactivo.
En esta segunda imagen, hemos agregado una tercera dirección de característica, azul. Como resultado, no podemos tener un vector que tiene la característica verde activa, pero la característica azul inactiva. Por proxy, cualquier vector a lo largo de la dirección verde también activará la función azul.
Esto está representado por las líneas de puntos verdes, que muestran qué tan “activada” está la función azul de nuestro vector verde (que estaba destinado a activar solo la función verde).
Esto es lo que hace que las características sean tan difíciles de interpretar en los LLM. Cuando millones de características están representadas en superposición, es muy difícil analizar qué características están activas porque significan algo y cuáles están activas simplemente porque significan algo. interferencia – como lo era la característica azul en nuestro ejemplo anterior.
Codificadores automáticos dispersos (la solución)
Por este motivo, utilizamos un codificador automático disperso (SAE). La SAE es una red neuronal simple: dos capas completamente conectadas con una activación ReLu en el medio.
La idea es la siguiente. La entrada al SAE son las activaciones del modelo, y el SAE intenta recrear esas mismas activaciones del modelo en la salida.
El SAE se entrena a partir de la salida de la capa intermedia del LLM. Toma las activaciones del modelo, las proyecta a un estado de dimensión superior y luego las proyecta de regreso a las activaciones originales.
Esto plantea la pregunta: ¿cuál es el punto de los SAE si se supone que la entrada y la salida son las mismas?
La respuesta: Queremos que la salida de la primera capa represente nuestras características.
Por esta razón, aumentamos la dimensionalidad con la primera capa (mapeo desde el espacio de activación a alguna dimensión mayor). El objetivo de esto es eliminar la superposición, de modo que cada característica tenga su propia dirección ortogonal.
También queremos que este espacio de dimensiones superiores sea escasamente activo. Es decir, queremos representar cada punto de activación como la combinación lineal de unos pocos vectores. Estos vectores, idealmente, corresponderían a la características más importantes dentro de nuestra entrada.
Por lo tanto, si tenemos éxito, el SAE codifica las complicadas activaciones del modelo en un conjunto disperso de características significativas. Si estas características son precisas, entonces la segunda capa del SAE debería poder mapear las características a las activaciones originales.
Nos preocupamos por el resultado de la primera capa del SAE: es un codificación de las activaciones del modelo como características dispersas.
Por lo tanto, cuando Anthropic estaba midiendo la presencia de características basadas en direcciones en el espacio de activación, y cuando estaban sujetando para hacer que ciertas características estuvieran activas o inactivas, Estaban haciendo esto en el estado oculto del SAE.
En el ejemplo de sujeción, Anthropic estaba sujetando las características en la salida de la capa 1 del SAEque luego estaban recreando activaciones de modelos ligeramente diferentes. Estos luego continuarían a través del avance del modelo y generarían una salida alterada.
Comencé este artículo con una cita de James Harrington. La idea es simple: entender->controlar->mejorar. Cada uno de estos son objetivos muy importantes que tenemos para los LLM.
Queremos entender cómo conceptualizan el mundo y las características interpretables como direcciones parecen ser nuestra mejor idea de cómo lo hacen.
Queremos tener afinados control sobre LLM. Ser capaz de detectar cuándo ciertas funciones están activas y ajustar qué tan activas están en medio de la generación de resultados es una herramienta increíble para tener en nuestra caja de herramientas.
Y finalmente, tal vez filosóficamente, creo que será importante en mejorando el desempeño de los LLM. Hasta ahora, ese no ha sido el caso. Hemos podido hacer que los LLM se desempeñen bien sin comprenderlos.
Pero creo que a medida que las mejoras se estabilicen y se vuelva más difícil escalar los LLM, será importante comprender realmente cómo funcionan si queremos dar el siguiente salto en el rendimiento.