Selbst erstelltes Early-Fusion-Sprachmodell
Notiz
Update: 30. September 2024
Wir haben uns von llama3-s in ? Ichigo.
Unser maßgeschneidertes Frühfusions-Sprachmodell hat jetzt einen Namen und eine Stimme.
Es verfügt über verbesserte Multiturn-Fähigkeiten und kann nun die Verarbeitung unhörbarer Abfragen verweigern.
Warnung
Ichigo ist ein offenes Forschungsexperiment
Begleiten Sie uns im #research
-Kanal in Homebrew's Discord
Wir übertragen Schulungen live im #research-livestream
Ichigo ist ein offenes, fortlaufendes Forschungsexperiment zur Erweiterung eines textbasierten LLM um die Fähigkeit, muttersprachlich zuzuhören. Betrachten Sie es als offene Daten, offenes Gewicht auf dem Siri-Gerät.
Es verwendet eine frühe Fusionstechnik, die von Metas Chameleon-Papier inspiriert ist.
Wir bauen Züge in der Öffentlichkeit:
Ichigo v0.3 Checkpoint-Beschreibung
Ichigo v0.2 Checkpoint-Beschreibung
Ichigo v0.1 Checkpoint-Beschreibung
22. Okt.: ? Veröffentlichung eines Forschungspapiers: Wir freuen uns, die Veröffentlichung unseres Forschungspapiers bekannt zu geben, in dem die Entwicklung und technischen Innovationen hinter der Ichigo-Serie detailliert beschrieben werden. Die vollständigen technischen Details, die Methodik und die experimentellen Ergebnisse sind jetzt in unserem Artikel verfügbar.
4. Okt.: Ichigo v0.3-Modelle sind jetzt verfügbar. Durch die Verwendung saubererer und verbesserter Daten hat unser Modell einen verbesserten MMLU-Wert von 63,79 erreicht und zeigt bessere Fähigkeiten zur Befolgung von Sprachanweisungen, selbst bei Interaktionen mit mehreren Runden. Darüber hinaus haben wir das Modell durch die Einbeziehung rauschsynthetischer Daten erfolgreich darauf trainiert, die Verarbeitung nichtsprachlicher Audioeingaben von Benutzern zu verweigern, wodurch seine Funktionalität und Benutzererfahrung weiter verbessert werden.
23. August: Wir freuen uns, Ichigo-llama3.1-s-instruct-v0.2 vorzustellen, unseren neuesten multimodalen Prüfpunkt mit verbessertem Sprachverständnis, indem wir die Fähigkeiten des Modells zur Befolgung von Audioanweisungen durch Training zur Verschachtelung synthetischer Daten verbessern.
17. August: Wir haben unser LLaMA 3.1-Modell anhand kontinuierlicher Sprachdaten vorab trainiert, die mit WhisperSpeechVQ tokenisiert wurden. Der endgültige Verlust näherte sich ungefähr 1,9 an, was zu unserem Kontrollpunkt führte: Ichigo-llama3.1-s-base-v0.2
1. Aug.: Tippfehler im ursprünglichen Trainingsrezept identifiziert, der zu einer erheblichen Verschlechterung führt (MMLU: 0,6 -> 0,2), vorgeschlagene Korrekturen.
30. Juli: Präsentiert den Fortschritt von llama3 bei: AI Training: From PyTorch to GPU Clusters
19. Juli: llama3-s-2024-07-19 versteht synthetische Stimme mit begrenzten Ergebnissen
1. Juli: llama3-s-2024-07-08 zeigte einen konvergierenden Verlust (1,7) mit begrenzten Daten
Ichigo ist ein offenes Forschungsprojekt. Wir sind auf der Suche nach Mitarbeitern und werden wahrscheinlich in Zukunft auf Crowdsourcing von Sprachdatensätzen umsteigen.
Schauen Sie sich dieses Notebook an, um unser neuestes Modell auszuprobieren:
Ausführliche Informationen zur Synthesegenerierung finden Sie im Leitfaden zur Synthesegenerierung.
Klonen Sie zuerst das Repo von Github:
git clone --recurse-submodules https://github.com/homebrewltd/llama3-s.git
Die Ordnerstruktur ist wie folgt:
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
Abhängigkeiten installieren
python -m venv hf_trainer chmod +x scripts/install.sh ./scripts/install.sh
Starten Sie die Shell jetzt neu
chmod +x scripts/setup.sh ./scripts/setup.sh source myenv/bin/activate
Protokollierung von Huggingface
huggingface-cli login --token=
Ausbildung
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
Paket installieren
python -m venv torchtune pip install torch torchvision tensorboard cd ./torchtune pip install -e .
Sie können das Modell auch mit tune herunterladen:
tune download homebrewltd/llama3.1-s-whispervq-init --hf-token--output-dir ../model_zoo/llama3.1-s-whispervq-init --ignore-patterns "original/consolidated*"
Richten Sie den Datensatz vom HF-Pfad ein, indem Sie den Pfad und den Namen des Modells in der folgenden YAML-Datei ändern.
nano torchtune/recipes/configs/jan-llama3-s/8B_full.yaml
Training mit mehreren GPUs (1–8 GPUs werden unterstützt)
tune run --nproc_per_node 4 full_finetune_fsdp2 --config recipes/configs/jan-llama3-1-s/8B_full.yaml
Anweisungen zum Selbsthosten der Ichigo-Web-UI-Demo mit Docker finden Sie unter: Ichigo-Demo. Um unsere Demo auf einer einzelnen RTX 4090-GPU auszuprobieren, gehen Sie direkt zu: https://ichigo.homebrew.ltd.
Wir bieten Benutzern Code zum Erstellen einer Web-UI-Demo an. Bitte befolgen Sie die nachstehenden Anweisungen:
python -m venv demo source demo/bin/activate # First install all required packages pip install --no-cache-dir -r ./demo/requirements.txt
Führen Sie dann den folgenden Befehl aus, um eine Gradio-Demo lokal zu starten. Sie können die Variablen use-4bit
und use-8bit
für die quantisierte Nutzung hinzufügen:
python -m demo.app --host 0.0.0.0 --port 7860 --max-seq-len 1024
Sie können für eine schnellere Inferenz auch eine Demo mit vLLM hosten, die Streaming-Ausgabe wird jedoch nicht unterstützt:
python -m demo.app_vllm
Alternativ können Sie ganz einfach unsere Demo auf HuggingFace ausprobieren?
@misc{chameleonteam2024chameleonmixedmodalearlyfusionfoundation, title={Chameleon: Mixed-Modal Early-Fusion Foundation Models}, Autor={Chameleon Team}, Jahr={2024}, eprint={2405.09818}, archivePrefix={arXiv}, PrimaryClass={cs.CL}, Journal={arXiv preprint}}@misc{zhang2024adamminiusefewerlearning, title={Adam- mini: Weniger Lernraten nutzen, um mehr zu gewinnen}, Autor={Yushun Zhang und Congliang Chen und Ziniu Li und Tian Ding und Chenwei Wu und Yinyu Ye und Zhi-Quan Luo und Ruoyu Sun}, Jahr={2024}, eprint={2406.16793}, archivePrefix={arXiv}, PrimaryClass= {cs.LG}, Journal={arXiv Preprint}}@misc{defossez2022highfi, Titel={High Fidelity Neural Audio Compression}, Autor={Défossez, Alexandre und Copet, Jade und Synnaeve, Gabriel und Adi, Yossi}, Jahr= {2022}, eprint={2210.13438}, archivePrefix={arXiv}, journal={arXiv preprint}}@misc{WhisperSpeech, title={WhisperSpeech: An Open Source Text-to-Speech System Built by Inverting Whisper}, Autor={Collabora und LAION}, Jahr={2024}, url={https://github.com/collabora/WhisperSpeech}, note={GitHub-Repository}}
Torchtune: Die Codebasis, auf der wir aufgebaut haben
Accelerate: Bibliothek zur einfachen Nutzung verteilter Schulungen
WhisperSpeech: Text-to-Speech-Modell zur synthetischen Audioerzeugung
Encodec: Neuronaler High-Fidelity-Audio-Codec für effiziente Audiokomprimierung
Llama3: Die Modellfamilie, auf der wir basieren, verfügt über erstaunliche Sprachfähigkeiten !!!