2 puntos por GN⁺ 2024-11-04 | 1 comentarios | Compartir por WhatsApp
  • hertz-dev se presentó como un modelo base exclusivamente de audio, full-duplex, de 8.5B parámetros, capaz de manejar incluso situaciones en las que dos personas hablan al mismo tiempo, y se convierte en un punto de partida para la investigación en agentes de voz en tiempo real
  • Su arquitectura se divide en hertz-codec y hertz-ar: convierte voz de 16 kHz en representaciones latentes de 8 Hz y luego predice de forma autorregresiva el siguiente valor latente de audio a partir de valores latentes pasados
  • En un benchmark con una sola RTX 4090, la latencia promedio real fue de 120 ms; la latencia promedio teórica se presenta como 80 ms, 2 veces menor que el mejor nivel anterior
  • hertz-codec genera un valor latente de 32 dimensiones por cada frame de 125 ms, y hertz-ar usa un transformer decoder-only de 40 capas y 8.4B parámetros con un contexto de alrededor de 4.5 minutos
  • No es un modelo de producto afinado con aprendizaje por refuerzo para acotar la distribución de respuestas, sino un modelo base que predice la distribución de los datos de entrenamiento, por lo que resulta fácil para investigadores ajustarlo finamente a tareas de audio conversacional

El problema de audio conversacional al que apunta Hertz-dev

  • Para agentes interactivos naturales, la modalidad de audio inmediata es más importante que el texto
  • Los enfoques de audio generativo se dividen, a grandes rasgos, en métodos basados en difusión y métodos autorregresivos; los modelos de difusión son fuertes en generación musical o muestras cortas, pero para audio conversacional real el enfoque autorregresivo es más adecuado
  • Hay dos dificultades clave que un modelo conversacional debe resolver
    • Generar audio que suene humano y manejar interrupciones de forma natural
    • Manejar situaciones en las que dos canales en tiempo real generan información simultáneamente, como en una conversación humana normal

Modelo publicado y latencia

  • hertz-dev es un modelo base full-duplex, exclusivamente de audio, de 8.5B parámetros
  • Está diseñado para un formato de dos hablantes, por lo que puede parsear y generar audio de dos hablantes superpuestos
  • Opera en un espacio latente que usa bits fonéticos cuantizados, y en cada timestep solo muestrea un valor latente
  • La latencia se presenta así
    • Latencia promedio teórica: 80 ms
    • Benchmark real en una sola RTX 4090: 120 ms
    • Una cifra 2 veces menor que el mejor nivel anterior

Arquitectura del modelo: hertz-codec y hertz-ar

  • hertz-dev se divide en dos componentes
    • hertz-codec: codifica el audio en valores latentes y lo reconstruye de nuevo como audio
    • hertz-ar: predice valores latentes futuros condicionándose en valores latentes pasados
  • Los latentes de audio se tratan como representaciones previas ricas que pueden usarse en varias tareas downstream
  • hertz-codec

    • hertz-codec es un VAE de audio convolucional que recibe voz mono de 16 kHz y la codifica en una representación latente de 8 Hz
    • Usa un bitrate de 1 kbps regularizado con KL
    • Para inferencia en streaming usa convoluciones causales y, funcionalmente, agrega padding al lado izquierdo de la secuencia
    • El codec emite parámetros gaussianos de media y varianza, y muestrea un único valor latente de 32 dimensiones por cada frame de 125 ms
    • En evaluaciones subjetivas, hertz-codec supera a Soundstream y Encodec a 6 kbps, y se evalúa a un nivel similar a DAC a 8 kbps
    • Al tener menos tokens por segundo que tokenizadores populares, resulta favorable para modelado de lenguaje
    • Configuración de parámetros
      • Encoder: 5M parámetros
      • Decoder: 95M parámetros
    • Checkpoints publicados
      • inference_apatosaurus_95000.pt: pesos de hertz-codec entrenados con reconstrucción mixta, pérdida adversarial y pérdida de regularización KL
      • inference_volcano_3.pt: hertz-codec quantizer que destila los 15 bits fonéticamente importantes de cada valor latente
  • hertz-ar

    • hertz-ar es un transformer decoder-only de 40 capas y 8.4B parámetros
    • El contexto de entrada es de 2048 tokens, equivalente a unos 4.5 minutos
    • Los latentes de salida pueden enviarse a hertz-codec
    • Las primeras 32 capas reciben como entrada el historial de latentes y predicen la proyección cuantizada de 15 bits del siguiente token latente de audio
    • Esta parte de 32 capas se llama hertz-lm, y puede entrenarse de forma independiente o inicializarse con pesos de un modelo de lenguaje
    • Las últimas 8 capas usan el historial de latentes y el latente cuantizado de 15 bits para predecir el futuro token latente de audio
    • El audio duplex se maneja como una tarea de post-entrenamiento
      • Se concatenan dos projection heads y luego se separan
      • Se procesa con dos pipelines de proyección cuantizada, cada uno condicionado por su propio residual
    • Checkpoints publicados

Generación de muestras y decisiones de entrenamiento

  • Para mostrar la capacidad de modelado de audio del modelo, se ofrecen muestras de generación de un solo canal, generación de dos canales y conversación en vivo entre una persona y el modelo
  • Las muestras interactivas incluyen un prompt de 9 segundos
  • Las principales decisiones de entrenamiento son las siguientes
    • En hertz-codec se usan Causal ConvNets para permitir decodificación paralela y un control más fino de la generación latente
    • Los latentes cuantizados de 15 bits se entrenan inicialmente para contener información fonética, lo que induce al modelo a producir enunciados sintácticamente correctos
    • La cuantización se realiza incorporando una proyección MLP como una capa Finite Scalar Quantization
    • En hertz-lm se hicieron experimentos de ablación con dos estrategias de inicialización, y se presenta que aprendió lingüística de forma efectiva independientemente de si se inicializó o no con un modelo de texto

Método de inferencia en tiempo real

  • Durante la inferencia en vivo, el modelo realiza 8 forward passes por segundo y continúa generando de forma autorregresiva
  • La entrada son dos canales separados, pero en la conversación solo se devuelve un canal
  • En cada paso, el audio de la persona se tokeniza en latentes y se combina con el último latente generado por el modelo para ingresarlo en hertz-ar
  • La latencia se mide como el tiempo promedio entre la intervención del usuario y la respuesta del modelo
  • La latencia promedio computacional es de 62.5 ms e incluye el tiempo promedio entre una emisión arbitraria y el final de un token, el tiempo del forward pass y la latencia de ida y vuelta por internet
  • Al ejecutarlo localmente en una RTX 4090, la latencia promedio real suele ser de 120 ms
  • La baja latencia es una condición para crear un modelo que interactúe como una persona, en lugar de sentirse como una llamada telefónica retrasada y entrecortada

Naturaleza de la publicación y uso previsto

  • hertz-dev se presenta como el primer modelo base público para audio conversacional
  • Aquí, modelo base se refiere a un modelo que predice con precisión la distribución de los datos de entrenamiento, no a uno cuya distribución generativa haya sido muy acotada mediante ajuste con aprendizaje por refuerzo
  • Por esta naturaleza, es útil como punto de partida de fine-tuning para varias tareas downstream
  • Recursos relacionados

1 comentarios

 
GN⁺ 2024-11-04
Opiniones en Hacker News
  • Esto es realmente genial. Como referencia, los motores de síntesis de voz open source existentes son bastante malos comparados con lo que se muestra aquí, así que creo que habría mucha demanda si se ampliara a una modalidad multimodal que, aunque ahora es de voz a voz, también pudiera recibir texto.
    En la práctica, además de ser un gran modelo de voz a voz, también sería un muy buen modelo TTS. Quizá alguien podría encontrar un atajo afinando algo como Piper para reproducir sus salidas con prosodia y entonación más naturales, pero creo que la capacidad de recibir texto de forma nativa sería mucho más útil que encadenar una tubería texto LLM → Piper → Hertz-dev.

    • Si el equipo es de 4 personas, creo que es mejor enfocarse en una sola cosa en lugar de abrirse en muchas direcciones.
    • Sí, exactamente eso. Piper ya es bastante bueno, y sería genial sumarle este modelo.
      Aunque quizá no sea algo que necesariamente tenga que hacer este equipo directamente.
  • Dicen que Hertz es el primero, pero Moshi, que salió a principios de este año, también es un modelo de voz bidireccional que funciona de manera similar y corre incluso en una MacBook: https://github.com/kyutai-labs/moshi

    • Moshi no publicó el modelo base; solo publicó dos modelos afinados para conversación. Si excluimos el códec, tampoco publicó el código de entrenamiento.
      En Hertz también solo veo 3 notebooks de inferencia y código del modelo lleno de no_grad; no veo código de entrenamiento. Tampoco hay paper, así que es difícil entender cómo se entrenó y cuál es su arquitectura. Si no se me está escapando algo, cuesta decir que sea amigable para investigación.
    • LLaMA-Omni https://github.com/ictnlp/LLaMA-Omni es un modelo de voz-lenguaje basado en Llama-3.1-8B-Instruct que genera texto y voz al mismo tiempo.
      moshi https://github.com/kyutai-labs/moshi es un modelo basado en voz-texto que usa Mimi, un códec de audio neuronal de streaming de última generación, y Mini-Omni https://github.com/gpt-omni/mini-omni es un LLM multimodal basado en Qwen2 que ofrece entrada y salida de voz. Ichigo https://github.com/homebrewltd/ichigo es un proyecto público de investigación que extiende un LLM basado en texto con capacidad nativa de escucha mediante una técnica de fusión temprana.
    • Moshi es un buen modelo para crear una app de chat, pero esto parece estar diseñado más como un modelo base propiamente dicho, con esa rareza, naturalidad y facilidad para investigación propias del modelado base.
  • Que Tesla excluya por ahora el lidar y otros sensores y se enfoque en la conducción autónoma basada solo en visión parece una estrategia para hacer la tecnología más accesible y escalable.
    Enfocarse en modelos solo de visión podría acelerar la adopción, permitir recopilar datos a gran escala y acelerar las mejoras iterativas. Una vez que los sistemas basados en visión maduren lo suficiente, Tesla podría volver a integrar datos de sensores como lidar o radar para hacer más robusta y completa su línea de productos de conducción autónoma.
    Pensé en una idea similar para los sistemas de interacción por voz. Hoy, la mayoría convierte voz a texto, genera una respuesta en texto y luego la vuelve a convertir en voz. Pero si se pudiera entrenar un sistema para responder directamente con voz sin pasar por texto, podría producir respuestas más naturales y espontáneas. El habla natural tiene su propia sintaxis y ritmo, además de diferencias de dialecto y tono, así que un sistema entrenado puramente con voz podría sentirse más humano e interesante.
    Me pregunto si los modelos actuales de interacción por voz siguen el proceso estándar voz→texto→voz, o si ya están explorando el procesamiento de voz a voz.

    • Soy uno de los desarrolladores. Nuestro modelo es completamente voz a voz, y precisamente por esta razón no usamos texto en absoluto al crear hertz-dev.
    • El segundo párrafo parece describir ChatGPT Advanced Voice Mode o la Realtime API.
  • Muy genial. Justo estoy revisando VUI (interfaz de usuario por voz), así que podría ser útil.
    Quizá estoy un poco sesgado porque hice mi doctorado investigando cómo las VUI persuaden a las personas, pero creo que las VUI son el futuro de la interacción con computadoras. Incluso si no son el futuro, pueden abrir nuevos grupos de usuarios, como niños y adultos mayores.

    • Me interesan mucho las interfaces de usuario por voz. Me da curiosidad qué estás construyendo y si tienes algún enlace.
    • Sí, también están las personas con discapacidad visual.
  • Si hay autores que crean modelos de voz o gente trabajando en temas relacionados, me pregunto si alguna vez han sentido que el sonido que sale del sistema resulta inquietante o tiene un impacto fisiológico.

  • ¿Se puede ver como una especie de LLM, pero un LLM de audio, donde el prompt también es audio y la salida generada también es audio?

    • Sí. A mi parecer, funciona exactamente así.
  • Me pregunto si la idea de “colapso de la distribución generativa” es un tema investigado. Si lo es, me gustaría saber con qué nombre se conoce.
    Me parece interesante la idea de que un modelo base modela con precisión la distribución de los datos de entrenamiento, mientras que un modelo que pasó por una gran cantidad de ajuste con aprendizaje por refuerzo ve su distribución generativa plegarse, por lo que el modelo base es un mejor punto de partida para afinarlo en varias tareas. También parece relacionado con el aprendizaje continuo o con los métodos correctos de fine-tuning.

  • ¿Cómo se podría preentrenar el modelo base hertz-dev en otros idiomas? Me pregunto dónde se puede conseguir información relacionada.

  • La voz suena un poco distorsionada y a menudo hay ruido de fondo. Se nota especialmente cuando la voz se detiene y ese ruido desaparece.
    Me pregunto si esto es una limitación del modelo o un problema de calidad de los datos de entrenamiento.

  • ¿Alguno de los autores podría explicar qué significa realmente esta oración del texto?
    hertz-vae: un decodificador Transformer de 1.800 millones de parámetros que actúa como distribución previa aprendida para el VAE de audio. Usa 8192 representaciones latentes muestreadas, es decir, un contexto de 17 minutos, y predice el siguiente frame de audio codificado como una mezcla gaussiana. La información cuantizada de 15 bits del siguiente token funciona como un andamiaje semántico que guía la generación de una forma apta para streaming.

    • Mi conjetura es esta. Primero, parece que el codec comprime audio con sample rate de 16k a 8 muestras por segundo mediante convoluciones, y luego hace cuantización vectorial a 128 bits para obtener el códec.
      Esa cantidad de bits es totalmente insuficiente para representar audio real, y probablemente esté más orientada a representar algo como fonemas. El vae parece un modelo de difusión basado en VAE que usa el códec como prompt, y dev parece ser un modelo que predice el siguiente códec.
      Lo más probable es que el flujo completo consista en tokenizar el prompt con codec; si se necesitan s segundos más de audio, predecir 8 * s tokens adicionales con dev; y luego convertirlos de nuevo en audio con el modelo de difusión vae.