Featured image of post Entendiendo FastPitch y la arquitectura Transformers

Entendiendo FastPitch y la arquitectura Transformers

Preparaci贸n de una clase para entender el modelo de TTS FastPitch centrandome en la arquitectura Transformer.

Entender un modelo moderno de deep learning no es sencillo debido a la gran cantidad de conocimiento previo necesario y al r谩pido ritmo de avance en este campo. En el proyecto de investigaci贸n Intercambios Transorg谩nicos, estamos trabajando con TTS, espec铆ficamente con el modelo FastPitch de Nvidia. He estudiado este modelo para ajustarlo (fine-tuning) al espa帽ol y he compartido este proceso de investigaci贸n en una clase para ayudar a mis colegas del grupo de investigaci贸n a comprenderlo mejor.

Entendiendo los Modelos Seq2Seq

En Intercambios Transorg谩nicos utiliz谩bamos previamente Tacotron2 como modelo TTS. Este modelo funciona bien, pero presenta varios problemas, principalmente durante el entrenamiento y la inferencia, debido a su naturaleza auto-regresiva. En contraste, FastPitch es un modelo no auto-regresivo (NAR). Para entender estas diferencias, explor茅 en profundidad los modelos seq2seq, analizando su evoluci贸n a lo largo del tiempo, y realic茅 un resumen r谩pido de los modelos de an谩lisis de secuencias m谩s relevantes:

  • RNN
  • LSTM
  • Transformers

Tacotron2 se basa en un modelo LSTM (AR), mientras que FastPitch utiliza Transformers (NAR). Comprender esta progresi贸n tecnol贸gica proporciona un contexto esencial, especialmente sobre los transformers, incluyendo la codificaci贸n posicional, un elemento clave para su naturaleza no auto-regresiva, y el mecanismo de atenci贸n.

La Arquitectura Transformer

Comenc茅 estudiando la arquitectura transformer, ya que es fundamental para el modelo FastPitch. Revis茅 recursos en l铆nea y el influyente art铆culo Attention is All You Need. A continuaci贸n, algunos puntos clave que anot茅 durante mi estudio:

  1. Mecanismo de Auto-Atenci贸n

    • Prop贸sito: Focalizar din谩micamente en diferentes partes de la secuencia de entrada.
    • Mecanismo:
      • Query (Q), Key (K), Value (V): Derivados de las embeddings de entrada.
      • Los puntajes de atenci贸n se calculan como el producto punto de Q y K, escalado por la ra铆z cuadrada de la dimensi贸n.
      • Los puntajes se normalizan con softmax para generar pesos de atenci贸n.
      • Se calcula una suma ponderada de V basada en estos pesos para producir la salida.
  2. Atenci贸n Multi-Cabezal

    • Prop贸sito: Capturar diferentes relaciones entre tokens aplicando m煤ltiples mecanismos de auto-atenci贸n en paralelo.
    • Mecanismo: Las salidas de las m煤ltiples cabezas de atenci贸n se concatenan y se transforman linealmente.
  3. Codificaci贸n Posicional

    • Prop贸sito: A帽adir informaci贸n sobre el orden de los tokens en la secuencia, compensando la falta de un concepto incorporado de orden secuencial en los Transformers (a diferencia de los RNNs).
    • Mecanismo: Se a帽ade un vector fijo o aprendible a las embeddings de entrada.
  4. Estructura Codificador-Descodificador

    • Codificador: Procesa la secuencia de entrada en representaciones ricas en contexto.
      • Componentes:
        • Auto-atenci贸n multi-cabezal
        • Red neuronal feed-forward (FFN)
        • Normalizaci贸n por capas y conexiones residuales
    • Descodificador: Genera la secuencia de salida atendiendo tanto a las salidas del codificador como a los tokens generados previamente.
      • Componentes:
        • Auto-atenci贸n multi-cabezal enmascarada (evita atender a tokens futuros)
        • Atenci贸n multi-cabezal sobre las salidas del codificador
        • FFN, normalizaci贸n por capas y conexiones residuales
  5. Red Feed-Forward (FFN)

    • Prop贸sito: Introducir no linealidad y procesar cada token de manera independiente.
    • Mecanismo: Dos capas lineales con una activaci贸n ReLU entre ellas.
  6. Normalizaci贸n por Capas y Conexiones Residuales

    • Prop贸sito: Estabilizar el entrenamiento y mejorar el flujo de gradientes al normalizar las entradas de cada capa y a帽adir conexiones de salto.

FastPitch

Con la teor铆a cubierta, examin茅 cada secci贸n de la arquitectura de FastPitch en detalle. Ofrec铆 una breve explicaci贸n sobre las embeddings de palabras y la codificaci贸n posicional, ya que son temas complejos, y quise mantener la clase concisa.

FastPitch convierte texto en espectrogramas mel, que luego son transformados en audio por otro modelo (en nuestro caso, HiFi-GAN). La secuencia de entrenamiento incluye los siguientes pasos:

  1. Texto a embeddings de palabras
  2. Concatenaci贸n de embeddings de palabras con espectrogramas mel
  3. Codificaci贸n posicional y FFT (bloque Transformer Feed-Forward)
  4. Predicci贸n de tono
  5. Predicci贸n de la duraci贸n de los fonemas
  6. Otro bloque FFT
  7. Capa completamente conectada
  8. Salida del espectrograma mel

En cada bloque, present茅 las ecuaciones correspondientes y proporcion茅 explicaciones cualitativas sobre su rol en el modelo. Por ejemplo, la predicci贸n de la duraci贸n de los fonemas es crucial para alinear la duraci贸n de un fonema con la duraci贸n esperada en el espectrograma.

Clase Online

Finalmente, resum铆 los puntos m谩s importantes y realic茅 una clase online para compartir estos conceptos con mis colegas. Puedes verla aqu铆:

Licensed under CC BY-NC-SA 4.0
Creado con Hugo