La razón por la que la gente se pregunta principalmente qué sucede realmente entre el modelo proviene de dos lados del espectro. Uno viene del lado científico/interpretable que piensa principalmente dónde están las cosas y qué están haciendo los modelos para lograrlas. En el lado del espectro, básicamente en sentido práctico, ya que a veces estos modelos se estropean y en algún momento queremos cambiar alguna información en el medio porque están desactualizados.
Aunque muchas de las redes neuronales más grandes que se usan en la actualidad son autorregresivas, la forma en que almacenan el conocimiento sigue sin explorarse.
Ya se han realizado algunas investigaciones sobre modelos enmascarados.
Las intervenciones casuales han demostrado ser muy útiles para determinar qué sucede dentro de un modelo.
La pregunta fundamental detrás del rastreo casual es que queremos saber cuál de los estados ocultos lleva la información que puede ayudarnos a depurar nuestro trabajo.
Pero muchas personas pueden llegar a la conclusión de que cada estado oculto contiene información importante que puede rastrear el estado oculto. Esto es lo que este trabajo concluye principalmente al comprobar que esto sucede o no.
¿Qué es el rastreo casual?
Entonces, el rastreo casual esencialmente ofusca el tema, agrega ruido para que ahora la red no sepa de qué estamos hablando y tiene un conjunto completo de activaciones corruptas y ahora las preguntas surgen como si tuviéramos un estado limpio, entonces podemos restaurar nuestra respuesta usando estado oculto.
Así que aquí, en primer lugar, simplemente nuestro modelo de lenguaje funciona normalmente sobre el aviso dado La aguja espacial está en el centro, esto también lo podemos comprobar claramente en la imagen a. También da la respuesta correcta como Seattle.
Pero en nuestra segunda ejecución estamos ingresando entradas corruptas como se muestra en la imagen b con asterisco al final de cada palabra token.
Eventualmente, después de que nuestros modelos de lenguaje se ejecutan en este indicador, eventualmente conduce a la respuesta incorrecta que se esperaba. Pero ahora aquí podemos usar el rastreo casual para verificar si todas las neuronas contienen la información importante para el rastreo de los estados ocultos.
Simplemente elegiremos la neurona del modelo previamente entrenado de entrada correcta y la colocaremos en el mismo lugar en este modelo y verificaremos si nos dará Seattle como respuesta incluso ahora o no.
Eventualmente funciona y también prueba que todas las neuronas no contienen la misma información importante. sí, contienen información, no todos contienen.
El sitio temprano y el sitio tardío tienen efectos casuales realmente altos, en esencia, tienen suficiente información requerida para restaurar las declaraciones fácticas, pero todos los demás estados no. Es un conjunto muy escaso de activaciones que en realidad pueden
La atención corresponde a los efectos de rastreo casual del sitio tardío.
No es demasiado sorprendente ya que el modelo recordará el pase y generará el siguiente token. Así que está justo al lado de la predicción.
MLP corresponde a los primeros efectos de rastreo casual del sitio
Es realmente extraño ver esto, ya que está en el medio que surgió de la nada.
Si realizamos este promedio de efectos más de 1000 veces, sabremos que el sitio temprano aterriza sistemáticamente en el último token de sujeto.
Parche de alto efecto casual en MLP
Los autores de este artículo básicamente formaron la hipótesis de que estos MLP son los que están recordando el conocimiento fáctico.
Estos MLP son los que recuerdan la declaración fáctica y el token de atención, que en realidad es responsable de la próxima predicción del token, es el que los lee.
Ahora, como la hipótesis establece que el MLP es quien almacena/restaura la declaración fáctica, entonces, para probar esto, estamos aquí, el autor simplemente cortó el MLP y la Atención uno por uno y podemos ver claramente el efecto de esto en la imagen de arriba. .
Como se muestra arriba, si cortamos el MLP, entonces podemos ver que tiene un efecto muy menor en comparación con el que cortamos la atención.
Para las primeras capas como 10–20 MLP es muy importante para recordar la declaración de hechos.
Sin eliminar ninguno entre MLP y atención, podemos ver las líneas azules que están en la parte superior, pero tan pronto como cortemos el MLP, eventualmente caerá a las líneas verdes inferiores.
Si prestamos atención, también se reducirá, pero no tanto como MLP para las primeras capas, como se muestra con las líneas rojas en la imagen de arriba.
Entonces, a partir de esto, podemos tener una mejor comprensión de que la atención tiene un papel, pero no igual que MLP. MLP juega un papel mucho más importante en recordar la información que la Atención.
Después de la ficha space needle ya habrá una capa MLP que ya se ha recuperado y almacenado del hecho de que está en seattle.
Aunque hasta ahora ni siquiera le hemos preguntado a la modelo sobre la ubicación de la aguja espacial.
Entonces, esencialmente significa que si la hipótesis de este documento es correcta, una vez que el modelo ve al sujeto, recopila todo tipo de capas MLP recuperadas y almacenadas con una gran cantidad de información.
Al final, con la ayuda del modelo de capa de atención, se enfoca principalmente en lo que pedimos para que extraiga esa información particular de toda la información almacenada en diferentes capas de MLP.
Así que aquí MLP actúa como un almacén de valores clave. Uno de los investigadores llamado Geva descubrió que la segunda capa de avance actúa como la memoria de valor clave. Esto en sí tiene mucho de que hablar, lo discutiremos en futuros blogs.
Esta clave aquí probablemente corresponde al sujeto
Esto no corresponde exactamente a la salida que queremos, ya que todavía no hemos preguntado qué queremos, pero contiene algo así como un hecho sobre el tema.
¿Cómo editar el modelo de lenguaje?
Digamos en lugar de Seattle ellos quieren Paris como una respuesta de nuestro modelo de lenguaje.
También tienen el valor de Paris en forma de vector y usando ese valor y usando un poco de autor matemático, configure esto como un problema de optimización restringido.
Resulta que si resuelven eso, da una solución de forma cerrada para una actualización de rango 1.
Aquí W es una matriz original, K & V son pares clave-valor
Se necesita una actualización de rango 1 que pueden calcular fácilmente y que necesitan agregar a la matriz de ponderación original y, finalmente, obtienen una matriz de ponderación actualizada que respeta el nuevo hecho que desean insertar.
Aquí el nuevo hecho es simplemente ubicación Paris .
¿Cómo saben qué vector de clave y valor es el que queremos insertar?
La clave es relativamente simple, ya que la clave es el tema que conoce y desea, y que simplemente podemos dejar que se ejecute a través de la red y obtener la activación en el sitio en particular, siempre eligen el mismo sitio aquí.
El valor es muy diferente ya que resuelven el problema de optimización.
¿Cómo eligieron el MLP donde quieren hacer la edición?
Aquí tienen que apuntar al MLP específico en la capa específica.
El rastreo casual da el rango de MLP en el que funciona
A medida que ampliamos el modelo, la mayoría de los FLOPS en entrenamiento e inferencia van principalmente a la capa de avance, al MLP y no necesariamente al mecanismo de atención. Todo el mundo trata de hacer que el mecanismo de atención sea más eficiente, mientras que no se dan cuenta de que estos grandes modelos funcionan principalmente en la capa de avance. La capa de alimentación hacia adelante Fan-out y Fan-in realmente puede absorber una gran cantidad de recursos (básicamente información memorizada).
Con todo esto, terminemos este blog ya que esto es un resumen del trabajo de investigación sobre la localización y edición de asociaciones fácticas en GP. Si encuentra algún problema relacionado con el concepto o el código, puede enviarme un mensaje a mi Gorjeo o LinkedIn. El próximo blog se publicará el 21 de marzo de 2023.
Soy Mohit.❤️ También puedes llamarme Chessman. Soy un desarrollador de aprendizaje automático y un programador competitivo. La mayor parte de mi tiempo lo paso mirando la pantalla de una computadora. Durante el día, generalmente estoy programando, trabajando para obtener información de grandes conjuntos de datos. Mis habilidades incluyen análisis de datos, visualización de datos, aprendizaje automático, aprendizaje profundo, DevOps y trabajo hacia Full Stack. He desarrollado una gran perspicacia para la resolución de problemas y disfruto de los desafíos ocasionales.