Temas en tendencia
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

thebes
¿Por qué sucede esto? El modelo cree que hay un emoji de caballito de mar, claro, pero ¿por qué eso hace que genere un emoji *diferente*? Aquí hay una pista de la herramienta de interpretabilidad subestimada favorita de todos, ¡Logit Lens!
En Logit Lens, usamos el lm_head del modelo de una manera extraña. Normalmente, el lm_head se utiliza para convertir el residuo (el estado interno acumulado sobre las capas del modelo) en un conjunto de probabilidades de token después de la capa final. Pero en Logit Lens, usamos el lm_head después de *cada* capa, mostrándonos qué tokens generaría el modelo si esa capa fuera la capa final.
Para las primeras capas, esto da como resultado estados difíciles de interpretar. Pero a medida que avanzamos a través de las capas, el modelo refina iterativamente el residuo primero hacia conceptos útiles para continuar el texto, y luego hacia la predicción final.
mirando la imagen nuevamente, en la capa final, tenemos la salida real del modelo: ĠðŁ, IJ, ł, también conocido como un prefijo de byte emoji seguido del resto del emoji de pez.
(Parece una tontería de Unicode debido a una peculiaridad de tokenización, no se preocupe por eso. Si tiene curiosidad, pregúntele a Claude sobre esta línea de código: 'bytes([byte_decoder[c] for c in 'ĠðŁIJł']).decode('utf-8') == ' 🐠 '')
Pero mira lo que sucede en las capas intermedias: ¡no solo obtenemos bytes de emojis! Obtenemos esos *conceptos*, específicamente el concepto de un caballito de mar. Por ejemplo, en la capa 52, obtenemos "caballo caballito de mar". Más tarde, en la parte superior, obtenemos una mezcla de "mar", "caballo" y ese prefijo emoji, "ĠðŁ".
Entonces, ¿en qué está pensando el modelo? ¡Caballito de mar + emoji! está tratando de construir una representación residual de un emoji de caballito de mar.
¿Por qué haría eso? Bueno, veamos cómo funciona realmente el lm_head. El lm_head es una enorme matriz de vectores de tamaño residual asociados con identificadores de tokens. Cuando se pasa un residuo a él, va a comparar ese residuo con cada vector de token, y en coordinación con el muestreador, selecciona el ID del token con un vector más similar al residual. (Más técnicamente: es una capa lineal sin sesgo, por lo que v @ w.T hace productos de puntos con cada vector de desincrustación, luego log_softmax y argmax / muestra de temperatura).
Entonces, si el modelo quiere generar la palabra "hola", necesita construir un residuo similar al vector para el token de salida "hola" que el lm_head puede convertir en el ID del token de saludo. Y si el modelo quiere generar un emoji de caballito de mar, necesita construir un residuo similar al vector para los tokens de salida de emoji de caballito de mar, que en teoría podría ser cualquier valor arbitrario, Pero en la práctica es caballito de mar + emoji, estilo word2vec.
¡El único problema es que el emoji del caballito de mar no existe! Entonces, cuando este residuo de caballito de mar + emoji llega al lm_head, hace su producto punto sobre todos los vectores, y el muestreador elige el token más cercano: un emoji de pez.
¡Ahora, esa discretización es información valiosa! puedes ver en el ejemplo de Armisticio que cuando el token se vuelve a colocar en el contexto de forma autorregresiva, el modelo puede decir que no es un emoji de caballito de mar. Así que lo intenta de nuevo, sacude el residuo y obtiene un emoji ligeramente diferente, enjuaga y repite hasta que se da cuenta de lo que está pasando, se da por vencido o se queda sin tokens de salida.
Pero hasta que el modelo obtiene el token de salida incorrecto del lm_head, simplemente no sabe que no hay un emoji de caballito de mar en el lm_head. Asume que Seahorse + Emoji producirá los tokens que desea.
------------------
para especular (aún más), me pregunto si esto es parte del beneficio de RL: les da a los modelos información sobre su lm_head que de otro modo sería difícil de obtener porque está al final de la pila de capas. (recuerde que los modelos base no se entrenan en sus propias salidas/implementaciones, eso solo ocurre en RL).

164.2K
¿Por qué celebramos Brekyat?
Brekyat es donde destruimos ritualmente el estado cada año.
¿Por qué nuestra gente destruye ritualmente el estado cada año?
porque somos nómadas.
¿Qué es un nómada?
alguien que deambula.
¿Pero no deambulamos?
Pero somos nómadas, porque vivimos fuera del estado.
¿Los nómadas viven fuera del estado?
Sí, debido a su deambular, están fuera del control del estado y lo destruyen periódicamente.
¿Pero no deambulamos?
Escapamos del estado incluso más que nuestros antepasados errantes, destruyéndolo anualmente.
Eso no tiene sentido.
es cultura, no tiene que tener sentido. Ahora ve a ponerte tu corona de hierba.
2.97K
Populares
Ranking
Favoritas