2 points par GN⁺ 2024-11-04 | 1 commentaires | Partager sur WhatsApp
  • hertz-dev est publié comme un modèle de fondation exclusivement audio, full-duplex, de 8,5 Md de paramètres, capable de gérer jusqu’aux situations où deux personnes parlent en même temps, et sert de point de départ à la recherche sur les agents vocaux en temps réel.
  • Son architecture se divise en hertz-codec et **hertz-ar : elle transforme la voix 16 kHz en représentations latentes à 8 Hz, puis prédit de manière autorégressive la prochaine valeur latente audio à partir des valeurs latentes passées.
  • La latence moyenne réelle a été mesurée à 120 ms sur une seule RTX 4090, tandis que la latence moyenne théorique est annoncée à 80 ms, soit deux fois moins que le précédent état de l’art.
  • hertz-codec produit une valeur latente de 32 dimensions toutes les trames de 125 ms, et hertz-ar utilise un transformer decoder-only de 40 couches et 8,4 Md de paramètres, avec un contexte d’environ 4,5 minutes.
  • Il ne s’agit pas d’un modèle produit dont la distribution des réponses aurait été resserrée par ajustement en apprentissage par renforcement, mais d’un modèle de fondation qui prédit la distribution des données d’entraînement, ce qui le rend plus facile à affiner par les chercheurs pour des tâches d’audio conversationnel.

Le problème d’audio conversationnel visé par Hertz-dev

  • Pour un agent interactif naturel, la modalité audio, plus immédiate que le texte, est importante.
  • Les approches d’audio génératif se divisent principalement entre méthodes par diffusion et méthodes autorégressives ; les modèles de diffusion sont puissants pour la génération musicale ou les courts échantillons, mais pour l’audio conversationnel réel, les méthodes autorégressives sont plus adaptées.
  • Les principales difficultés qu’un modèle conversationnel doit résoudre sont au nombre de deux :
    • générer un audio qui sonne comme une personne et gérer naturellement les interruptions ;
    • gérer les situations où deux canaux en temps réel génèrent simultanément de l’information, comme dans une conversation humaine ordinaire.

Modèle publié et latence

  • hertz-dev est un modèle de fondation 8,5 Md de paramètres, full-duplex et exclusivement audio.
  • Il est conçu pour un format à deux locuteurs et peut analyser comme générer de l’audio où deux voix se chevauchent.
  • Il fonctionne dans un espace latent utilisant des bits phonétiques quantifiés, et n’échantillonne qu’une seule valeur latente à chaque pas de temps.
  • La latence est présentée comme suit :
    • latence moyenne théorique : 80 ms ;
    • benchmark réel sur une seule RTX 4090 : 120 ms ;
    • un chiffre deux fois inférieur au précédent état de l’art.

Architecture du modèle : hertz-codec et hertz-ar

  • hertz-dev se divise en deux composants :
    • hertz-codec : encode l’audio en valeurs latentes, puis les reconstruit en audio ;
    • hertz-ar : prédit les valeurs latentes futures en conditionnant sur les valeurs latentes passées.
  • Les valeurs latentes audio sont traitées comme de riches représentations pré-entraînées utilisables pour de nombreuses tâches aval.
  • hertz-codec

    • hertz-codec est un VAE audio convolutionnel qui reçoit une voix mono 16 kHz et l’encode en une représentation latente à 8 Hz.
    • Il utilise un débit de 1 kbps régularisé par KL.
    • Pour l’inférence en streaming, il utilise des convolutions causales et ajoute fonctionnellement du padding à gauche de la séquence.
    • Le codec produit les paramètres gaussiens de moyenne et de variance, puis échantillonne une unique valeur latente à 32 dimensions toutes les trames de 125 ms.
    • Lors d’évaluations subjectives, hertz-codec dépasse SoundStream et Encodec à 6 kbps, et est jugé d’un niveau comparable à DAC à 8 kbps.
    • Avec un nombre de tokens par seconde inférieur à celui des tokenizers populaires, il est favorable à la modélisation du langage.
    • Configuration des paramètres :
      • encodeur : 5 M de paramètres ;
      • décodeur : 95 M de paramètres.
    • Checkpoints publiés :
      • inference_apatosaurus_95000.pt : poids hertz-codec entraînés avec reconstruction mélangée, perte adversariale et perte de régularisation KL ;
      • inference_volcano_3.pt : hertz-codec quantizer qui distille les 15 bits phonétiquement importants de chaque valeur latente.
  • hertz-ar

    • hertz-ar est un transformer decoder-only de 40 couches et 8,4 Md de paramètres.
    • Le contexte d’entrée est de 2048 tokens, soit environ 4,5 minutes.
    • Les valeurs latentes de sortie peuvent être transmises à hertz-codec.
    • Les 32 premières couches reçoivent l’historique latent en entrée et prédisent la projection quantifiée sur 15 bits du prochain token latent audio.
    • Cette partie de 32 couches est appelée hertz-lm et peut être entraînée indépendamment ou initialisée à partir de poids de modèle de langage.
    • Les 8 dernières couches utilisent l’historique latent et la valeur latente quantifiée sur 15 bits pour prédire le futur token latent audio.
    • L’audio duplex est traité comme une tâche de post-entraînement :
      • deux projection heads sont concaténés puis séparés ;
      • ils sont traités par deux pipelines de projection quantifiée, chacun conditionné par son propre residual.
    • Checkpoints publiés :

Génération d’échantillons et choix d’entraînement

  • Pour montrer les capacités de modélisation audio du modèle, des échantillons de génération monocanal, de génération à deux canaux et de conversation en direct entre une personne et le modèle sont fournis.
  • Les échantillons interactifs incluent un prompt de 9 secondes.
  • Les principaux choix d’entraînement sont les suivants :
    • hertz-codec utilise des Causal ConvNets pour le décodage parallèle et un contrôle plus fin de la génération latente ;
    • les valeurs latentes quantifiées sur 15 bits sont initialement entraînées pour contenir de l’information phonétique, afin d’inciter le modèle à produire des énoncés syntaxiquement corrects ;
    • la quantification est réalisée en insérant une projection MLP dans une couche de Finite Scalar Quantization ;
    • pour hertz-lm, deux stratégies d’initialisation ont été testées en ablation, et il est indiqué que le modèle a appris efficacement la linguistique, avec ou sans initialisation depuis un modèle texte.

Mode d’inférence en temps réel

  • Pendant l’inférence live, le modèle effectue 8 forward passes par seconde et poursuit continuellement la génération autorégressive.
  • L’entrée est constituée de deux canaux séparés, mais dans une conversation, un seul canal est renvoyé.
  • À chaque étape, l’audio humain est tokenisé en valeurs latentes, puis combiné avec la dernière valeur latente générée par le modèle avant d’être fourni à hertz-ar.
  • La latence est mesurée comme le temps moyen entre l’énoncé de l’utilisateur et la réponse du modèle.
  • La latence moyenne calculée est de 62,5 ms et inclut le temps moyen entre un énoncé arbitraire et la fin d’un token, le temps de forward pass et la latence Internet aller-retour.
  • Lors d’une exécution locale sur RTX 4090, la latence moyenne réelle est généralement de 120 ms.
  • Une faible latence est une condition pour créer un modèle qui interagit comme une personne, sans donner l’impression d’un appel téléphonique retardé et haché.

Nature de la publication et cas d’usage

  • hertz-dev est présenté comme le premier modèle de fondation public pour l’audio conversationnel.
  • Ici, « modèle de fondation » désigne non pas un modèle dont la distribution de génération a été fortement resserrée par ajustement en apprentissage par renforcement, mais un modèle qui prédit précisément la distribution des données d’entraînement.
  • Cette nature en fait un bon point de départ pour le fine-tuning sur diverses tâches aval.
  • Ressources associées :

1 commentaires

 
GN⁺ 2024-11-04
Avis sur Hacker News
  • C’est vraiment impressionnant. Pour référence, les moteurs de synthèse vocale open source existants sont assez médiocres comparés à ce qui est montré ici ; donc même si c’est pour l’instant du voix-à-voix, il y aurait probablement beaucoup de demande si cela était étendu à une forme multimodale capable aussi de recevoir du texte.
    En pratique, cela en ferait un très bon modèle de voix-à-voix, mais aussi un très bon modèle TTS. Quelqu’un pourrait peut-être contourner le problème en fine-tunant un système pour rejouer la sortie de quelque chose comme Piper avec une prosodie et une intonation plus naturelles, mais une prise en charge native du texte serait sans doute bien plus utile qu’un pipeline LLM texte → Piper → Hertz-dev.

    • Si l’équipe ne compte que 4 personnes, je pense qu’il vaut mieux se concentrer sur une seule direction plutôt que de s’éparpiller.
    • Oui, exactement. Piper est déjà plutôt correct, et ce serait très bien d’y ajouter ce modèle.
      Cela dit, ce n’est peut-être pas forcément à cette équipe de le faire elle-même.
  • Hertz se présente comme le premier, mais Moshi, sorti plus tôt cette année, est aussi un modèle vocal bidirectionnel qui fonctionne de manière similaire et tourne même sur MacBook : https://github.com/kyutai-labs/moshi

    • Moshi n’a pas publié son modèle de base, seulement deux modèles fine-tunés pour la conversation. En dehors du codec, ils n’ont pas non plus publié le code d’entraînement.
      Pour Hertz aussi, on ne voit que trois notebooks d’inférence et du code modèle rempli de no_grad, mais pas de code d’entraînement. Il n’y a pas non plus d’article, donc il est difficile de comprendre comment il a été entraîné et quelle est son architecture ; sauf si j’ai manqué quelque chose, c’est donc difficile de dire que c’est très adapté à la recherche.
    • LLaMA-Omni https://github.com/ictnlp/LLaMA-Omni est un modèle parole-langage basé sur Llama-3.1-8B-Instruct, qui génère simultanément du texte et de la parole.
      moshi https://github.com/kyutai-labs/moshi est un modèle parole-texte qui utilise Mimi, un codec audio neuronal de streaming récent, et Mini-Omni https://github.com/gpt-omni/mini-omni est un LLM multimodal basé sur Qwen2 qui fournit des entrées/sorties vocales. Ichigo https://github.com/homebrewltd/ichigo est un projet de recherche ouvert qui étend un LLM textuel avec des capacités natives d’écoute grâce à une technique de fusion précoce.
    • Moshi est un bon modèle pour créer une application de chat, mais celui-ci semble plutôt conçu comme un véritable modèle de base, avec l’étrangeté, le naturel et la convivialité pour la recherche propres à la modélisation de base.
  • Le fait que Tesla écarte pour l’instant le lidar et d’autres capteurs pour se concentrer sur la conduite autonome purement basée sur la vision ressemble à une stratégie visant à rendre la technologie plus accessible et plus scalable.
    Se concentrer sur des modèles uniquement visuels peut accélérer l’adoption, permettre de collecter des données à grande échelle et d’itérer plus vite. Si les systèmes basés sur la vision deviennent suffisamment matures, Tesla pourrait ensuite réintégrer des données de capteurs comme le lidar ou le radar afin de rendre sa gamme de conduite autonome plus robuste et plus aboutie.
    J’ai pensé à une idée similaire pour les systèmes d’interaction vocale. Aujourd’hui, la plupart transforment la parole en texte, génèrent une réponse textuelle, puis la reconvertissent en parole. Mais si l’on pouvait les entraîner à répondre directement par la voix sans passer par le texte, les réponses pourraient être plus naturelles et spontanées. La parole naturelle possède sa propre syntaxe, son rythme, ses différences de dialecte et de ton ; un système entraîné uniquement sur l’audio pourrait donc sembler plus humain et plus intéressant.
    Je me demande si les modèles actuels d’interaction vocale suivent le pipeline standard parole→texte→parole, ou s’ils explorent déjà le traitement voix-à-voix.

    • Je suis l’un des développeurs. Notre modèle est entièrement voix-à-voix, et c’est précisément pour cette raison que nous n’avons pas utilisé de texte du tout pour créer hertz-dev.
    • Le deuxième paragraphe semble décrire ChatGPT Advanced Voice Mode ou la Realtime API.
  • Vraiment impressionnant. Je suis en train d’examiner les VUI (interfaces utilisateur vocales), donc cela pourrait être utile.
    Je suis peut-être un peu biaisé, puisque j’ai fait un doctorat sur la manière dont les VUI persuadent les gens, mais je pense qu’elles représentent l’avenir de l’interaction avec les ordinateurs. Même si ce n’est pas tout l’avenir, elles peuvent ouvrir l’informatique à de nouveaux publics, comme les enfants et les personnes âgées.

    • Les interfaces utilisateur vocales m’intéressent beaucoup. Je serais curieux de savoir ce que vous construisez, et si vous avez un lien.
    • Oui, et les personnes aveugles aussi.
  • S’il y a ici des auteurs de modèles vocaux ou des personnes travaillant sur des sujets liés, je me demande si vous avez déjà eu l’impression que les sons produits par le système étaient inquiétants, ou qu’ils avaient un effet physiologique.

  • On peut le voir comme une sorte de LLM, mais un LLM audio dont le prompt est de l’audio et dont la sortie générée est aussi de l’audio ?

    • Oui. À mon avis, c’est exactement comme cela que ça fonctionne.
  • Je me demande si l’idée d’« effondrement de la distribution générative » est un sujet de recherche étudié. Si oui, j’aimerais savoir sous quel nom on l’appelle.
    Je trouve intéressant l’argument selon lequel un modèle de base modélise précisément la distribution des données d’entraînement, tandis qu’un modèle ayant subi un fort tuning par apprentissage par renforcement voit sa distribution générative se replier, ce qui rend le modèle de base préférable comme point de départ pour fine-tuner plusieurs tâches. Cela semble aussi lié à l’apprentissage continu et aux bonnes méthodes de fine-tuning.

  • Comment faire pour préentraîner le modèle de base hertz-dev dans une autre langue ? Je me demande où trouver des informations à ce sujet.

  • La voix sonne légèrement déformée, et il y a souvent du bruit en arrière-plan. On l’entend particulièrement bien disparaître lorsque la voix s’arrête.
    Je me demande si c’est une limite du modèle ou un problème de qualité des données d’entraînement.

  • L’un des auteurs pourrait-il expliquer ce que signifie réellement cette phrase de l’article ?
    hertz-vae : un décodeur Transformer de 1,8 milliard de paramètres qui sert de distribution a priori apprise pour le VAE audio. Il utilise 8192 représentations latentes échantillonnées, soit 17 minutes de contexte, et prédit la prochaine trame audio encodée sous forme de mélange de gaussiennes. L’information quantifiée sur 15 bits du prochain token sert de support sémantique pour guider la génération d’une manière compatible avec le streaming.

    • Mon hypothèse est la suivante. D’abord, le codec semble compresser l’audio à 16 kHz par convolution en 8 échantillons par seconde, puis le quantifier vectoriellement sur 128 bits pour obtenir le codec.
      Ce nombre de bits est largement insuffisant pour représenter l’audio réel ; il sert probablement plutôt à représenter quelque chose comme des phonèmes. Le vae ressemble à un modèle de diffusion basé sur un VAE qui utilise le codec comme prompt, et dev semble être le modèle qui prédit le prochain codec.
      Le flux global est probablement le suivant : tokeniser le prompt avec le codec, puis, si l’on a besoin de s secondes d’audio supplémentaires, prédire 8 * s tokens de plus avec dev, avant de les reconvertir en audio avec le modèle de diffusion vae.