Aller au contenu

Voix, multimodalité et leçons d’un build de week-end

Alors, qu’est-ce que j’ai appris ce week-end ?

🔴 Gemma est un super modèle, juste pas pour ce projet.

Essayer de préserver les fonctionnalités multimodales sur le Spark est un combat perdu d’avance. J’ai perdu presque tout un week-end à essayer de faire fonctionner la pile, pour finir avec des performances d’escargot. J’ai l’impression que c’est moins un problème de Gemma qu’un problème de Spark. Le hardware préfère le fp4 et le fp8, il tolère le fp16, mais il ne prétend pas être un TPU.

Avec le recul, ça n’a probablement jamais été conçu pour être une machine de développement, et pourtant me voilà, à m’en servir comme ça.

Le prochain candidat sera quelque chose de plus dense, comme Qwen3-VL-32B. Je pense que ça marchera, mais il faudra peut-être le cajoler un peu pour qu’il soit dans le bon état d’esprit.

Score de certitude

🟡 Le score de certitude est une bonne idée, mais le coût d’itération est bien réel.

Avec Gemma en texte seul, obtenir des résultats cohérents et fiables a nécessité entre 20 et 50 étapes de raisonnement. C’est plus lourd que ce que je pensais. Le modèle reste nerveux et semble plus rapide que Claude ou un DeepSeek distant, mais le surcoût est significatif. C’est peut-être un problème de processus, un problème structurel, ou les deux.

Clonage vocal

🟢 Le clonage vocal est étonnamment faisable.

En utilisant Vibe Voice, j’ai réalisé que cloner une voix de haute qualité à partir de clips de référence synthétiques est plus facile que prévu. Les performances coincent encore, parce que l’inférence fp16 est têtue sur cette machine, mais la qualité sonore réelle est excellente. Je peux produire des clips qui sonnent super bien à une vitesse quasi temps réel. Pas encore assez pour de la VoIP IA en direct, mais assez pour se sentir compétitive face au mode voix de ChatGPT. Cette partie, c’est une victoire.

La pile d’images

🔴 Flux2 est inutilement complexe.

C’est un système ingénieux emballé dans un manteau de béton. Même après élagage, il s’obstine à faire tourner des toolsets comme Mistral qui n’ont absolument rien à faire là.

Il n’y a aucun moyen de le consolider ou de l’alléger. Pour ce qu’il essaie d’accomplir, il ne devrait pas être aussi énorme.

L’un de mes objectifs est d’avoir un agent capable d’affiner des composites d’images multi-références via un processus itératif auto-orchestré, et de produire des story-boards exploitables pour le cinéma ou la pub. Je pense que c’est possible, mais Flux n’est pas l’outil adapté pour l’inférence edge.

Après quelques recherches, Montage a l’air prometteur.

Instructions d’outils dans un LoRA

🟢 Les LoRAs pour les instructions d’outils fonctionnent vraiment.

Le surapprentissage (overfitting) des instructions d’outils et du system prompting dans un minuscule LoRA s’est révélé extrêmement efficace. Ça ressemble plus à l’impression d’un style artistique qu’à du finetuning traditionnel. C’est petit, rapide, et ça garde la fenêtre de contexte propre.

Avec tout ce bidouillage de schedule, est-ce vraiment des LoRAs au sens traditionnel ? Probablement pas. Mais ce qui compte, c’est que ça règle le problème des outils.

Les agents ont besoin d’accéder à des centaines ou des milliers d’outils, et les architectures actuelles ne peuvent pas gérer ça. Pousser le comportement des outils dans les poids est la bonne direction. Je posterai le schedule d’entraînement et le code de la boucle cette semaine.

Et voilà ma petite mise à jour joyeuse.