环境与资源
MiniMind-O 不是只装 Python 包就能跑。它依赖冻结的语音 encoder、视觉 encoder、音频 codec、speaker encoder,以及训练/推理权重。先把目录摆对,后面的问题会少很多。
硬件与软件
快速推理
CPU 可以尝试文本或小样例,语音/图像推理建议用 CUDA 设备。
mini 训练
README 给出的参考是单张 RTX 3090 跑通 mini SFT 约 2 小时。
full 训练
更适合多卡,`trainer/train.sh` 提供 4 卡 dense/MoE 参考管线。
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
`requirements.txt` 包括 datasets、transformers、funasr、onnxruntime、gradio、flask、modelscope 等。Torch/torchvision/torchaudio 通常要按你的 CUDA 版本单独安装。
必须下载的资源
| 资源 | 放置路径 | 作用 |
|---|---|---|
| SenseVoice-Small | `./model/SenseVoiceSmall` | 语音输入 encoder,训练和语音推理都用。 |
| SigLIP2 base-p32-256 | `./model/siglip2-base-p32-256-ve` | 图像输入 encoder。 |
| Mimi | `./model/mimi` | 把 Talker 生成的 codes 解码成 24 kHz 音频。 |
| CAMPPlus | `./model/campplus` | 提取 speaker embedding,支持音色条件和克隆。 |
| MiniMind LLM 权重 | `./out/llm_768.pth` | 从语言模型底座开始训练 Omni。 |
| MiniMind-O 发布权重 | `./out` 或 transformers 目录 | 直接运行 `eval_omni.py` 或 WebUI。 |
modelscope download --model gongjy/SenseVoiceSmall --local_dir ./model/SenseVoiceSmall
modelscope download --model gongjy/siglip2-base-p32-256-ve --local_dir ./model/siglip2-base-p32-256-ve
modelscope download --model gongjy/mimi --local_dir ./model/mimi
modelscope download --model gongjy/campplus --local_dir ./model/campplus
modelscope download --model gongjy/minimind-3o-pytorch --local_dir ./out
推荐目录结构
minimind-o/
├── model/
│ ├── SenseVoiceSmall/
│ ├── siglip2-base-p32-256-ve/
│ ├── mimi/
│ ├── campplus/
│ └── speaker/
├── out/
│ ├── llm_768.pth
│ └── sft_omni_768.pth
├── dataset/
│ ├── sft_t2a_mini.parquet
│ ├── sft_a2a_mini.parquet
│ └── eval_omni/
└── trainer/
路径很关键:源码里很多默认路径是相对项目根目录写死的,例如 `./model/mimi`、`./dataset/eval_omni/`、`../model/SenseVoiceSmall`。运行脚本前先确认当前工作目录。
最小验证
启动教程网站
python3 serve.py --port 8765
# 浏览器访问 http://127.0.0.1:8765/
检查 CUDA
python - <<'PY'
import torch
print("cuda:", torch.cuda.is_available())
print("device:", torch.cuda.get_device_name(0) if torch.cuda.is_available() else "cpu")
PY
命令行推理
python eval_omni.py --load_from model --weight sft_omni --mode 0 --prompt_lang 2
transformers 权重推理
git clone https://huggingface.co/jingyaogong/minimind-3o
python eval_omni.py --load_from minimind-3o --mode 0
常见卡点
权重格式混淆
`--load_from model` 表示加载原生 PyTorch 权重;传入 transformers 模型目录时会走 `AutoModelForCausalLM.from_pretrained`。
WebUI 扫描目录
`scripts/web_demo_omni.py` 会扫描 `scripts/` 里的 transformers 模型子目录,README 提醒要先复制模型目录。
音频解码失败
确认 `model/mimi` 存在,并且生成的 8 路 codes 没有全为空。
图像路径缺失
图像推理需要 SigLIP2 目录和 `dataset/eval_omni` 下的图片样例。