超越1.6K颗星的开源项目!深入探讨Ichigo:一个用于实时语音处理的人工智能解决方案
Ichigo 简介
Ichigo[1] 是一个开放的、持续进行的研究项目,目标是将基于文本的大型语言模型(LLM)扩展,使其具备原生的“听力”能力。
可以将其视为一个开放数据、开放权重、设备上的 Siri。该项目采用了早期融合技术,灵感来源于Meta的Chameleon论文。
项目特点
主要特点
- 早期融合技术:Ichigo使用的早期融合技术是指将语音信号和文本信息在模型的早期阶段就进行结合,形成一个统一的表示。
- 多轮对话能力:Ichigo具备改进的多轮对话能力,并能拒绝处理听不清楚的查询。
- 开放研究实验:Ichigo是一个开放的研究实验,鼓励社区参与和协作。
- 模型训练公开:Ichigo的训练过程是公开的,包括不同版本的模型检查点和详细的技术细节。
使用场景
Ichigo 适用于需要实时语音识别和处理的场景,如智能助手、语音控制应用等。
项目使用
快速开始(Google Colab)
可以通过以下链接尝试Ichigo的最新模型:在Colab中打开[2]
合成数据生成
有关合成数据生成的详细信息,请参考合成数据生成指南[3]。
输入/输出目录
1.从GitHub克隆仓库:
git clone --recurse-submodules https://github.com/homebrewltd/llama3-s.git
2.文件夹结构如下:
Ichigo
├── HF_Trainer # HF训练代码(已弃用)
├── synthetic_data # 合成数据生成管道
├── configs # 音频管道配置
├── audio_to_audio # Parler音频(.wav)到语义标记
├── synthetic_generation_config # TTS语义标记
├── scripts # Runpod的设置脚本
├── torchtune # 子模块:我们的fsdp分支,带有检查点
├── model_zoo # 模型检查点
├── LLM
├── Meta-Llama-3-8B-Instruct
├── Meta-Llama-3-70B-Instruct
├── demo # 自托管此演示(vllm)
├── inference # Google Colab
使用HF Trainer训练
1.安装依赖:
python -m venv hf_trainer
chmod +x scripts/install.sh
./scripts/install.sh
重启shell:
chmod +x scripts/setup.sh
./scripts/setup.sh
source myenv/bin/activate
2.登录Huggingface:
huggingface-cli login --token=<token>
3.训练:
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
使用Torchtune训练
1.安装包:
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 <token> --output-dir ../model_zoo/llama3.1-s-whispervq-init --ignore-patterns "original/consolidated*"
设置HF路径的数据集,更改路径和YAML文件中的模型名称:
nano torchtune/recipes/configs/jan-llama3-s/8B_full.yaml
2.多GPU训练(支持1-8GPU):
tune run --nproc_per_node 4 full_finetune_fsdp2 --config recipes/configs/jan-llama3-1-s/8B_full.yaml
演示
WebUI
- 有关如何使用Docker自托管Ichigo Web UI演示的说明,请访问:Ichigo演示[4]。
- 也可以直接访问https://ichigo.homebrew.ltd[5]尝试演示,它使用了单个RTX 4090 GPU。
Gradio Web UI
为用户提供了创建Web UI演示的代码。可按照以下步骤操作:
python -m venv demo
source demo/bin/activate
# 首先安装所有必需的包
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[6]上轻松尝试Ichigo的演示。
参考文档
- Chameleon: Mixed-Modal Early-Fusion Foundation Models[7]
- Adam-mini: Use Fewer Learning Rates To Gain More[8]
- High Fidelity Neural Audio Compression[9]
- WhisperSpeech: An Open Source Text-to-Speech System Built by Inverting Whisper[10]
发表评论