自制的早期融合语音模型
笔记
更新:2024 年 9 月 30 日
我们已从 llama3-s 更名为 ?一护。
我们定制的早期融合语音模型现在有了名字和声音。
它改进了多轮功能,现在可以拒绝处理听不见的查询。
警告
Ichigo 是一个开放的研究实验
加入我们 Homebrew 的 Discord 中的#research
频道
我们在#research-livestream
中直播训练
Ichigo 是一项开放的、正在进行的研究实验,旨在扩展基于文本的法学硕士,使其具有原生的“听力”能力。将其视为设备 Siri 上的开放数据、开放权重。
它使用受 Meta 的 Chameleon 论文启发的早期融合技术。
我们在公共场合建造火车:
Ichigo v0.3 检查点写入
Ichigo v0.2 检查点写入
Ichigo v0.1 检查点写入
10 月 22 日:?研究论文发布:我们很高兴地宣布发表研究论文,详细介绍了 Ichigo 系列背后的开发和技术创新。完整的技术细节、方法和实验结果现已在我们的论文中提供。
10 月 4 日:Ichigo v0.3 模型现已上市。利用更清晰和改进的数据,我们的模型获得了 63.79 的增强 MMLU 分数,并且即使在多轮交互中也表现出更强的语音指令跟踪能力。此外,通过合并噪声合成数据,我们成功训练模型拒绝处理用户的非语音音频输入,进一步改善其功能和用户体验。
8 月 23 日:我们很高兴分享 Ichigo-llama3.1-s-instruct-v0.2,这是我们最新的多模态检查点,通过交错合成数据的训练增强模型的音频指令跟踪能力,从而提高了语音理解能力。
8 月 17 日:我们在连续语音数据上预训练了 LLaMA 3.1 模型,并使用 WhisperSpeechVQ 进行标记。最终损失收敛到大约 1.9,产生我们的检查点:Ichigo-llama3.1-s-base-v0.2
8 月 1 日:发现原始训练配方中的拼写错误,导致显着退化(MMLU:0.6 -> 0.2),建议修复。
7 月 30 日:在以下位置介绍了 llama3-s 的进展:AI 训练:从 PyTorch 到 GPU 集群
7 月 19 日:llama3-s-2024-07-19 能够理解合成语音,但结果有限
7 月 1 日:llama3-s-2024-07-08 显示收敛损失 (1.7),但数据有限
Ichigo 是一个开放研究项目。我们正在寻找合作者,并且未来可能会转向众包语音数据集。
查看此笔记本电脑以尝试我们的最新型号:
有关合成生成的详细信息,请参阅合成生成指南。
首先从 github 克隆 Repo:
git clone --recurse-submodules https://github.com/homebrewltd/llama3-s.git
文件夹结构如下:
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
安装依赖项
python -m venv hf_trainer chmod +x scripts/install.sh ./scripts/install.sh
立即重新启动外壳
chmod +x scripts/setup.sh ./scripts/setup.sh source myenv/bin/activate
记录拥抱脸
huggingface-cli login --token=
训练
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
安装包
python -m venv torchtune pip install torch torchvision tensorboard cd ./torchtune pip install -e .
您还可以使用tune下载模型:
tune download homebrewltd/llama3.1-s-whispervq-init --hf-token--output-dir ../model_zoo/llama3.1-s-whispervq-init --ignore-patterns "original/consolidated*"
通过更改路径并更改以下 YAML 文件中的模型名称来从 HF 路径设置数据集。
nano torchtune/recipes/configs/jan-llama3-s/8B_full.yaml
训练多 GPU(支持 1-8GPU)
tune run --nproc_per_node 4 full_finetune_fsdp2 --config recipes/configs/jan-llama3-1-s/8B_full.yaml
有关如何使用 Docker 自托管 Ichigo Web UI 演示的说明,请访问:Ichigo demo。要在单个 RTX 4090 GPU 上尝试我们的演示,您可以直接访问:https://ichigo.homebrew.ltd。
我们为用户提供创建 Web UI 演示的代码。请按照以下说明操作:
python -m venv demo source demo/bin/activate # First install all required packages pip install --no-cache-dir -r ./demo/requirements.txt
然后运行以下命令在本地启动 Gradio 演示。您可以添加变量use-4bit
和use-8bit
以进行量化使用:
python -m demo.app --host 0.0.0.0 --port 7860 --max-seq-len 1024
您还可以使用 vLLM 托管演示以加快推理速度,但它不支持流输出:
python -m demo.app_vllm
或者,您可以轻松地在 HuggingFace 上尝试我们的演示?
@misc{chameleonteam2024chameleonmixedmodalearlyfusionfoundation,title={Chameleon:混合模态早期融合基础模型}, 作者={变色龙团队},年份={2024},eprint={2405.09818},archivePrefix={arXiv},primaryClass={cs.CL},期刊={arXiv预印本}}@misc{zhang2024adamminiusefewerlearning,标题={Adam- mini:使用更少的学习率获得更多}, 作者={张玉顺、陈从良、李子牛、丁田、吴陈伟、叶音宇、罗志全、孙若宇},年份={2024},eprint={2406.16793},archivePrefix={arXiv},primaryClass= {cs.LG},journal={arXiv 预印本}}@misc{defossez2022highfi,title={高保真神经音频压缩},作者={Défossez、Alexandre 和 Copet、Jade 和 Synnaeve、Gabriel 和 Adi、Yossi},年份= {2022},eprint={2210.13438},archivePrefix={arXiv},journal={arXiv preprint}}@misc{WhisperSpeech,title={WhisperSpeech:由 Inverting Whisper 构建的开源文本转语音系统}, 作者={Collabora 和 LAION},年份={2024},url={https://github.com/collabora/WhisperSpeech},注释={GitHub 存储库}}
Torchtune:我们构建的代码库
加速:轻松使用分布式训练的库
WhisperSpeech:用于生成合成音频的文本到语音模型
编码器:用于高效音频压缩的高保真神经音频编解码器
Llama3:我们所基于的模型系列具有惊人的语言能力!