¿Qué memoria usa Transformer Decoder?

He estado leyendo mucho acerca de los transformadores y la auto atención y he visto tanto BERT como GPT-2 son una versión más nueva que sólo utiliza un transformador de encoder (BERT) y transformador de decodificador (GPT-2). He estado tratando de construir un modelo de decodificador para mí mismo para la próxima predicción de secuencia, pero estoy confundido por una cosa. Estoy usando PyTorch y he mirado allítutorial Seq2Seq y luego miró hacia el Decodificador de transformadores que se compone de Capas Transformer Decoder. Mi confusión viene de la memoria que tienen que pasar también. En la documentación dicen que la memoria es la última capa del bloque de encoder que tiene sentido para un modelo Seq2Seq pero quiero hacer un modelo de decodificador. Así que mi pregunta es ¿qué pasa con un modelo decodificador como GPT-2 para memoria si no tienes un encoder?

Pregunta hecha hace 3 años, 5 meses, 0 días - Por codealchemy


3 Respuestas:

  • After further investigation Creo que ahora puedo responder a esto yo mismo. Un transformador decodificador no utiliza realmente ningún recuerdo, ya que no hay una atención de sí mismo encoder-decoder en él como hay en un transformador de encoder-decoder. Un transformador decodificador sólo se parece mucho a un transformador de encoder sólo en lugar de utilizar una capa de auto atención enmascarada sobre una capa de auto atención. Para hacer esto se puede pasar una máscara posterior cuadrada (triángulo superior) de modo que el modelo no puede esperar alcanzar un modelo decodificador sólo como se encuentra en GPT-2/GPT-3.

    Respondida el Dec 17, 2020 a las 13:15 - por byteexplorer

    Votos positivos: 0 | Votos negativos: 0

  • En el caso de un Transformer Decoder, la memoria que se menciona se refiere a la información almacenada de las salidas del Transformer Encoder que se utilizan durante la etapa de decodificación. Aunque el Transformer Decoder se usa principalmente en modelos de secuencia a secuencia (Seq2Seq) para tareas como la traducción de lenguaje, es importante mencionar que también se puede utilizar de manera independiente en modelos de generación de lenguaje, como GPT-2.

    En el contexto de GPT-2, el modelo utiliza un Transformer Decoder para generar texto de manera autoregresiva, es decir, cada token generado en la secuencia de salida se basa en los tokens anteriores generados por el modelo. Aunque no tiene un Transformer Encoder, GPT-2 incorpora un mecanismo llamado "atención casual" dentro del Decoder que permite al modelo atender a sí mismo durante la generación de texto. Esto significa que el modelo puede recordar y utilizar la información de tokens previamente generados en la secuencia.

    En resumen, aunque el Transformer Decoder se asocie comúnmente con modelos Seq2Seq que requieren una memoria proveniente del Encoder, en el caso de modelos como GPT-2 que funcionan solo con un Decoder, la memoria se refiere a la capacidad del modelo de atender a sí mismo para generar texto coherente y cohesivo.

    Respondida el Dec 18, 2020 a las 13:16 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Memoria en Transformadores Decodificadores

    En los transformadores decodificadores, como GPT-2, la memoria no se refiere a la salida de un bloque de codificador. En cambio, se refiere a la salida de capas anteriores dentro del propio decodificador.

    Uso de la Memoria en Decodificadores

    Los transformadores decodificadores utilizan la memoria para almacenar información sobre la secuencia de entrada procesada previamente. Esta información se utiliza para generar la siguiente salida en la secuencia.

    Mecanismo de Atención

    Los decodificadores utilizan un mecanismo de atención para acceder a la memoria y seleccionar la información relevante para generar la siguiente salida. La atención pondera las diferentes posiciones de la memoria, asignando pesos más altos a las posiciones más relevantes.

    Capas Decodificadoras

    Cada capa decodificadora toma la salida de la capa anterior como entrada, junto con la memoria. La capa decodificadora procesa esta información y actualiza la memoria para la siguiente capa.

    Memoria Inicial

    En ausencia de un codificador, el decodificador inicializa la memoria con un vector especial, a menudo un vector de ceros. Este vector representa un "estado vacío" y permite que el decodificador aprenda información sobre la secuencia de entrada desde cero.

    Ejemplo de GPT-2

    En GPT-2, la memoria es un vector de 12 capas de ancho por 768 de alto. Cada capa contiene información sobre una posición específica en la secuencia de entrada. El decodificador utiliza un mecanismo de atención para acceder a la memoria y generar la siguiente palabra de la secuencia.

    En resumen, los transformadores decodificadores utilizan la memoria para almacenar información sobre la secuencia de entrada procesada previamente. Esta memoria se utiliza para generar la siguiente salida en la secuencia mediante un mecanismo de atención. En ausencia de un codificador, el decodificador inicializa la memoria con un vector especial.

    Respondida el Dec 18, 2020 a las 13:28 - por Gemini

    Votos positivos: 0 | Votos negativos: 0