Modelo de discurso de fusión temprana elaborado en casa
Nota
Actualización: 30 de septiembre de 2024
Hemos cambiado el nombre de llama3-s a ? Ichigo.
Nuestro modelo de habla de fusión temprana personalizado ahora tiene un nombre y una voz.
Ha mejorado las capacidades multivuelta y ahora puede negarse a procesar consultas inaudibles.
Advertencia
Ichigo es un experimento de investigación abierto.
Únase a nosotros en el canal #research
en Discord de Homebrew
Transmitimos en vivo carreras de capacitación en #research-livestream
Ichigo es un experimento de investigación abierto y en curso para ampliar un LLM basado en texto para que tenga la capacidad nativa de "escuchar". Piense en ello como datos abiertos, peso abierto, en el dispositivo Siri.
Utiliza una técnica de fusión temprana inspirada en el papel Chameleon de Meta.
Construimos tren en público:
Redacción del punto de control de Ichigo v0.3
Redacción del punto de control de Ichigo v0.2
Redacción del punto de control de Ichigo v0.1
22 de octubre: ? Lanzamiento del artículo de investigación: Nos complace anunciar la publicación de nuestro artículo de investigación que detalla el desarrollo y las innovaciones técnicas detrás de la serie Ichigo. Los detalles técnicos completos, la metodología y los resultados experimentales ahora están disponibles en nuestro artículo.
4 de octubre: los modelos Ichigo v0.3 ya están disponibles. Utilizando datos más limpios y mejorados, nuestro modelo logró una puntuación MMLU mejorada de 63,79 y demuestra capacidades más sólidas para seguir instrucciones de voz, incluso en interacciones de varios turnos. Además, al incorporar datos sintéticos de ruido, hemos entrenado con éxito el modelo para que rechace procesar entradas de audio que no sean de voz de los usuarios, mejorando aún más su funcionalidad y experiencia del usuario.
23 de agosto: Nos complace compartir Ichigo-llama3.1-s-instruct-v0.2, nuestro último punto de control multimodal con comprensión mejorada del habla al mejorar las capacidades de seguimiento de instrucciones de audio del modelo mediante capacitación sobre entrelazado de datos sintéticos.
17 de agosto: Entrenamos previamente nuestro modelo LLaMA 3.1 con datos de voz continuos, tokenizados mediante WhisperSpeechVQ. La pérdida final convergió a aproximadamente 1,9, lo que resultó en nuestro punto de control: Ichigo-llama3.1-s-base-v0.2
1 de agosto: error tipográfico identificado en la receta de entrenamiento original, que causa una degradación significativa (MMLU: 0,6 -> 0,2), soluciones propuestas.
30 de julio: Presentación del progreso de llama3-s en: AI Training: From PyTorch to GPU Clusters
19 de julio: llama3-s-2024-07-19 entiende la voz sintética con resultados limitados
1 de julio: llama3-s-2024-07-08 mostró pérdida convergente (1,7) con datos limitados
Ichigo es un proyecto de investigación abierto. Estamos buscando colaboradores y probablemente avanzaremos hacia el crowdsourcing de conjuntos de datos de voz en el futuro.
Consulte este cuaderno para probar nuestro último modelo:
Para obtener información detallada sobre la generación sintética, consulte la Guía de generación sintética.
Primero clona el repositorio desde github:
git clone --recurse-submodules https://github.com/homebrewltd/llama3-s.git
La estructura de carpetas es la siguiente:
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
Instalar dependencias
python -m venv hf_trainer chmod +x scripts/install.sh ./scripts/install.sh
Reiniciar shell ahora
chmod +x scripts/setup.sh ./scripts/setup.sh source myenv/bin/activate
Iniciando sesión abrazando cara
huggingface-cli login --token=
Capacitación
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
Instalar paquete
python -m venv torchtune pip install torch torchvision tensorboard cd ./torchtune pip install -e .
También puedes descargar el modelo usando tune:
tune download homebrewltd/llama3.1-s-whispervq-init --hf-token--output-dir ../model_zoo/llama3.1-s-whispervq-init --ignore-patterns "original/consolidated*"
Configure el conjunto de datos desde la ruta HF cambiando la ruta y cambiando el nombre del modelo en el siguiente archivo YAML.
nano torchtune/recipes/configs/jan-llama3-s/8B_full.yaml
Entrenamiento de múltiples GPU (se admiten de 1 a 8 GPU)
tune run --nproc_per_node 4 full_finetune_fsdp2 --config recipes/configs/jan-llama3-1-s/8B_full.yaml
Para obtener instrucciones sobre cómo autohospedar la demostración de la interfaz de usuario web de Ichigo usando Docker, visite: Demostración de Ichigo. Para probar nuestra demostración en una única GPU RTX 4090, puede ir directamente a: https://ichigo.homebrew.ltd.
Ofrecemos código para que los usuarios creen una demostración de interfaz de usuario web. Siga las instrucciones a continuación:
python -m venv demo source demo/bin/activate # First install all required packages pip install --no-cache-dir -r ./demo/requirements.txt
Luego ejecute el siguiente comando para iniciar una demostración de Gradio localmente. Puede agregar las variables use-4bit
y use-8bit
para uso cuantificado:
python -m demo.app --host 0.0.0.0 --port 7860 --max-seq-len 1024
También puede alojar una demostración utilizando vLLM para una inferencia más rápida, pero no admite salida de streaming:
python -m demo.app_vllm
Alternativamente, puedes probar fácilmente nuestra demostración en HuggingFace.
@misc{chameleonteam2024chameleonmixedmodalearlyfusionfoundation, title={Chameleon: Modelos de base de fusión temprana de modos mixtos}, autor={Chameleon Team}, año={2024}, eprint={2405.09818}, archivePrefix={arXiv}, PrimaryClass={cs.CL}, diario={arXiv preprint}}@misc{zhang2024adamminiusefewerlearning, title={Adam- mini: utilice menos tasas de aprendizaje para ganar más}, autor={Yushun Zhang y Congliang Chen y Ziniu Li y Tian Ding y Chenwei Wu y Yinyu Ye y Zhi-Quan Luo y Ruoyu Sun}, año={2024}, eprint={2406.16793}, archivePrefix={arXiv}, PrimaryClass= {cs.LG}, diario={arXiv preprint}}@misc{defossez2022highfi, título={Compresión de audio neuronal de alta fidelidad}, autor={Défossez, Alexandre y Copet, Jade y Synnaeve, Gabriel y Adi, Yossi}, año= {2022}, eprint={2210.13438}, archivePrefix={arXiv}, journal={arXiv preprint}}@misc{WhisperSpeech, title={WhisperSpeech: un sistema de conversión de texto a voz de código abierto creado mediante Inverting Whisper}, autor={Collabora y LAION}, año={2024}, url={https://github.com/collabora/WhisperSpeech}, nota={repositorio de GitHub}}
Torchtune: el código base sobre el que construimos
Accelerate: Biblioteca para facilitar el uso de la formación distribuida
WhisperSpeech: modelo de texto a voz para generación de audio sintético
Encodec: códec de audio neuronal de alta fidelidad para una compresión de audio eficiente
Llama3: ¡la familia de modelos en la que nos basamos y que tiene increíbles capacidades lingüísticas!