Construire un modèle Omni de 0,1 milliard de paramètres : Plongée au cœur de MiniMind-O

Découvrez MiniMind-O, un modèle Omni minuscule de 0,1 milliard de paramètres capable d'écouter, de voir et de parler, conçu pour une transparence totale et un entraînement local.

Dans le paysage actuel des grands modèles de langage (LLM), les modèles « Omni » — ceux capables de traiter et de générer simultanément de l'audio, de la vision et du texte — sont dominés par des géants massifs en source fermée. Pour les développeurs cherchant à comprendre le fonctionnement de ces systèmes, la barrière à l'entrée est souvent l'échelle colossale des modèles. Voici MiniMind-O, un projet qui élimine cette complexité pour offrir un modèle Omni de 0,1 milliard de paramètres entièrement transparent, que vous pouvez entraîner sur un seul GPU grand public.

Pourquoi MiniMind-O est important

La plupart des implémentations Omni reposent sur des architectures en cascade : ASR (Speech-to-Text) → LLM → TTS (Text-to-Speech). Bien que fonctionnelle, cette approche introduit une latence significative et perd les nuances émotionnelles. MiniMind-O emprunte une voie différente : il utilise une architecture à double voie « Thinker–Talker » où l'audio et le texte sont connectés au niveau des états cachés, permettant une interaction véritablement de bout en bout.

Avec environ 0,1 milliard de paramètres, c'est l'une des implémentations Omni complètes les plus petites disponibles. Il est conçu non seulement pour l'inférence, mais aussi pour l'éducation, permettant aux développeurs de lire chaque ligne de code, de comprendre le pipeline d'entraînement et d'expérimenter avec l'architecture du modèle.

L'architecture : Thinker et Talker

MiniMind-O divise le modèle en deux composants fonctionnels :

  1. Le Thinker (Penseur) : Basé sur l'épine dorsale linguistique de MiniMind, ce module traite les entrées texte, audio et visuelles. Il mappe ces entrées dans un espace latent partagé, permettant au modèle de « comprendre » le contexte multimodal.
  2. Le Talker (Parleur) : Au lieu de générer du texte à lire par un moteur TTS séparé, le Talker prédit directement des codes audio Mimi. Il utilise la prédiction multi-jetons (MTP) pour générer 8 couches de séquences de codebook Mimi, qui sont ensuite décodées en audio en streaming à 24 kHz.

En utilisant un pont au niveau des couches intermédiaires (généralement num_hidden_layers // 2 - 1), le modèle garantit que le Talker reçoit des représentations riches et contextuelles qui n'ont pas été trop contraintes par la tête linguistique finale.

Pour commencer : Entraînement sur une seule 3090

L'un des aspects les plus impressionnants de MiniMind-O est son accessibilité. Vous pouvez exécuter l'intégralité du pipeline d'entraînement sur une seule NVIDIA RTX 3090 en environ 2 heures en utilisant le jeu de données mini fourni.

Prérequis

Assurez-vous que votre environnement est configuré :

git clone --depth 1 https://github.com/jingyaogong/minimind-o
pip install -r requirements.txt

Flux de travail d'entraînement

L'entraînement est divisé en trois étapes logiques pour garantir la stabilité :

  1. SFT T2A (Text-to-Audio) : Alignement du modèle pour générer des codes audio basés sur une entrée texte.
  2. SFT A2A (Audio-to-Audio) : Introduction de l'entrée audio pour permettre des instructions basées sur la parole.
  3. SFT I2T (Image-to-Text) : Alignement du projecteur visuel pour gérer les entrées d'image.

Exemple de commande pour l'étape SFT :

CUDA_VISIBLE_DEVICES=0 torchrun --master_port 29560 --nproc_per_node 1 train_sft_omni.py \
  --learning_rate 5e-4 --data_path ../dataset/sft_t2a_mini.parquet \
  --epochs 1 --batch_size 40 --use_compile 1 --from_weight llm \
  --save_weight sft_zero --max_seq_len 512

Caractéristiques techniques clés

  • Streaming & Barge-in : Le modèle prend en charge la génération audio en temps réel et le « barge-in » de base (interrompre le modèle) en utilisant le VAD (Voice Activity Detection).
  • Clonage vocal in-context : En fournissant des codes audio de référence comme contexte, le modèle peut effectuer un clonage vocal « zero-shot » sans avoir besoin de réentraîner les poids.
  • Implémentation PyTorch native : Tous les algorithmes principaux sont implémentés à partir de zéro en PyTorch, évitant les abstractions tierces lourdes et rendant le code hautement lisible.

Les compromis

À 0,1 milliard de paramètres, MiniMind-O ne remplace pas GPT-4o. Il peine avec le raisonnement long et les relations spatiales visuelles complexes. Cependant, il sert de « bac à sable » parfait. Si vous souhaitez expérimenter la façon dont différentes dimensions cachées (384 vs 768) affectent la cohérence audio, ou comment les couches MoE (Mixture of Experts) impactent l'efficacité de l'entraînement, ce projet fournit le cadre exact pour le faire.

Pour les développeurs, MiniMind-O est une invitation à cesser de traiter l'IA comme une boîte noire et à commencer à construire à partir de zéro.

Source

jingyaogong/minimind-o: 🎙️ 「大模型」从0训练0.1B能听能说能看的全模态Omni模型!A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!