Modèle vocal de fusion précoce fait maison
Note
Mise à jour : 30 septembre 2024
Nous sommes passés de lama3-s à ? Ichigo.
Notre modèle vocal de fusion précoce personnalisé a désormais un nom et une voix.
Il a amélioré ses capacités multitours et peut désormais refuser de traiter des requêtes inaudibles.
Avertissement
Ichigo est une expérience de recherche ouverte
Rejoignez-nous sur la chaîne #research
du Discord de Homebrew
Nous diffusons en direct les formations dans #research-livestream
Ichigo est une expérience de recherche ouverte et continue visant à étendre un LLM basé sur du texte pour avoir une capacité native « d'écoute ». Considérez-le comme des données ouvertes, un poids ouvert, sur l'appareil Siri.
Il utilise une première technique de fusion inspirée du papier Chameleon de Meta.
Nous construisons des trains en public :
Rédaction du point de contrôle Ichigo v0.3
Rédaction du point de contrôle Ichigo v0.2
Rédaction du point de contrôle Ichigo v0.1
22 octobre : ? Publication du document de recherche : Nous sommes heureux d'annoncer la publication de notre document de recherche détaillant le développement et les innovations techniques derrière la série Ichigo. Les détails techniques complets, la méthodologie et les résultats expérimentaux sont désormais disponibles dans notre article.
4 octobre : les modèles Ichigo v0.3 sont désormais disponibles. Utilisant des données plus propres et améliorées, notre modèle a atteint un score MMLU amélioré de 63,79 et démontre de plus fortes capacités de suivi des instructions vocales, même dans les interactions à plusieurs tours. De plus, en incorporant des données de synthèse de bruit, nous avons réussi à entraîner le modèle à refuser le traitement des entrées audio non vocales des utilisateurs, améliorant ainsi ses fonctionnalités et son expérience utilisateur.
23 août : nous sommes ravis de partager Ichigo-llama3.1-s-instruct-v0.2, notre dernier point de contrôle multimodal avec une compréhension vocale améliorée en améliorant les capacités de suivi des instructions audio du modèle grâce à une formation sur l'entrelacement de données synthétiques.
17 août : Nous avons pré-entraîné notre modèle LLaMA 3.1 sur des données vocales continues, tokenisées à l'aide de WhisperSpeechVQ. La perte finale a convergé vers environ 1,9, ce qui a abouti à notre point de contrôle : Ichigo-llama3.1-s-base-v0.2
1er août : faute de frappe identifiée dans la recette de formation originale, provoquant une dégradation importante (MMLU : 0,6 -> 0,2), correctifs proposés.
30 juillet : présentation des progrès de llama3-s lors de : AI Training : From PyTorch to GPU Clusters
19 juillet : llama3-s-2024-07-19 comprend la voix synthétique avec des résultats limités
1er juillet : llama3-s-2024-07-08 a montré une perte convergente (1,7) avec des données limitées
Ichigo est un projet de recherche ouvert. Nous recherchons des collaborateurs et nous nous dirigerons probablement vers le crowdsourcing d'ensembles de données vocales à l'avenir.
Découvrez ce carnet pour essayer notre dernier modèle :
Pour des informations détaillées sur la génération synthétique, veuillez vous référer au Guide de génération synthétique.
Clonez d’abord le dépôt depuis github :
git clone --recurse-submodules https://github.com/homebrewltd/llama3-s.git
La structure des dossiers est la suivante :
Ichigo ├── HF_Trainer # HF training code (deprecated) ├── synthetic_data # Synthetic data generation pipeline ├── configs # Audio pipeline configs ├── audio_to_audio # Parler audio (.wav) to semantic tokens ├── synthetic_generation_config # TTS semantic tokens ├── scripts # Setup scripts for Runpod ├── torchtune # Submodule: our fork of fsdp with checkpointing ├── model_zoo # Model checkpoints │ ├── LLM │ │ ├── Meta-Llama-3-8B-Instruct │ │ ├── Meta-Llama-3-70B-Instruct ├── demo # Selfhost this demo (vllm) ├── inference # Google Colab
Installer les dépendances
python -m venv hf_trainer chmod +x scripts/install.sh ./scripts/install.sh
Redémarrez le shell maintenant
chmod +x scripts/setup.sh ./scripts/setup.sh source myenv/bin/activate
Journalisation
huggingface-cli login --token=
Entraînement
export CUTLASS_PATH="cutlass" export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 accelerate launch --config_file ./accelerate_config.yaml train.py
Installer le package
python -m venv torchtune pip install torch torchvision tensorboard cd ./torchtune pip install -e .
Vous pouvez également télécharger le modèle en utilisant tune :
tune download homebrewltd/llama3.1-s-whispervq-init --hf-token--output-dir ../model_zoo/llama3.1-s-whispervq-init --ignore-patterns "original/consolidated*"
Configurez l'ensemble de données à partir du chemin HF en modifiant le chemin et en modifiant le nom du modèle dans le fichier YAML suivant.
nano torchtune/recipes/configs/jan-llama3-s/8B_full.yaml
Entraînement multi-GPU (1 à 8 GPU pris en charge)
tune run --nproc_per_node 4 full_finetune_fsdp2 --config recipes/configs/jan-llama3-1-s/8B_full.yaml
Pour obtenir des instructions sur la façon d'auto-héberger la démo de l'interface utilisateur Web Ichigo à l'aide de Docker, veuillez visiter : Démo Ichigo. Pour essayer notre démo sur un seul GPU RTX 4090, vous pouvez vous rendre directement sur : https://ichigo.homebrew.ltd.
Nous proposons du code permettant aux utilisateurs de créer une démo d'interface utilisateur Web. Veuillez suivre les instructions ci-dessous :
python -m venv demo source demo/bin/activate # First install all required packages pip install --no-cache-dir -r ./demo/requirements.txt
Exécutez ensuite la commande ci-dessous pour lancer une démo Gradio localement. Vous pouvez ajouter les variables use-4bit
et use-8bit
pour une utilisation quantifiée :
python -m demo.app --host 0.0.0.0 --port 7860 --max-seq-len 1024
Vous pouvez également héberger une démo à l'aide de vLLM pour une inférence plus rapide, mais elle ne prend pas en charge la sortie en streaming :
python -m demo.app_vllm
Alternativement, vous pouvez facilement essayer notre démo sur HuggingFace ?
@misc{chameleonteam2024chameleonmixedmodalearlyfusionfoundation, title={Chameleon : modèles de fondation de fusion précoce à modes mixtes}, author={Chameleon Team}, année={2024}, eprint={2405.09818}, archivePrefix={arXiv}, PrimaryClass={cs.CL}, journal={arXiv preprint}}@misc{zhang2024adamminiusefewerlearning, title={Adam- mini : utilisez moins de taux d'apprentissage pour gagner plus}, author={Yushun Zhang et Congliang Chen et Ziniu Li et Tian Ding et Chenwei Wu et Yinyu Ye et Zhi-Quan Luo et Ruoyu Sun}, année={2024}, eprint={2406.16793}, archivePrefix={arXiv}, PrimaryClass= {cs.LG}, journal={arXiv preprint}}@misc{defossez2022highfi, title={Compression audio neuronale haute fidélité}, author={Défossez, Alexandre et Copet, Jade et Synnaeve, Gabriel et Adi, Yossi}, année= {2022}, eprint={2210.13438}, archivePrefix={arXiv}, journal={arXiv preprint}}@misc{WhisperSpeech, title={WhisperSpeech : un système de synthèse vocale open source construit en inversant le chuchotement}, author={Collabora et LAION}, année={2024}, url={https://github.com/collabora/WhisperSpeech}, note={Référentiel GitHub}}
Torchtune : la base de code sur laquelle nous avons construit
Accélération : bibliothèque pour une utilisation facile de la formation distribuée
WhisperSpeech : modèle de synthèse vocale pour la génération audio synthétique
Encodec : codec audio neuronal haute fidélité pour une compression audio efficace
Llama3 : la famille de modèles sur laquelle nous sommes basés et qui possède des capacités linguistiques étonnantes !!!