本文档记录当前版本的推荐运行环境,以及如何从一个干净的 NVIDIA NGC 容器配置到可运行状态。
这份说明对应当前仓库代码,不包含模型训练环境,只覆盖前后端推理与本地联调所需依赖。
[!TIP] 当前提供两种环境配置方式:
- 使用仓库根目录的 Dockerfile 构建环境镜像。
- 按照本文档中的步骤,在一个干净的 NGC 容器里手动安装依赖。
以下内容是手动配置教程。
当前推荐从 NVIDIA NGC 的 PyTorch 容器开始:
25.02-py3这个基础镜像已经自带了当前项目依赖的核心 CUDA / PyTorch / Transformer Engine 环境,因此不建议在此基础上自行重新安装 torch 或 transformer_engine。
项目代码可以放在任意位置,后续路径均默认相对于仓库根目录。
例如:
git clone https://github.com/Shao-Music-AI/Shao.git
cd Shao
后续文档中的路径均默认相对于仓库根目录,而不是固定写死某个宿主机目录。
当前项目额外依赖已经整理到仓库根目录的 requirements.txt。
在 NGC 容器内安装:
python3 -m pip install --break-system-packages -r requirements.txt \
-i https://pypi.tuna.tsinghua.edu.cn/simple
ffmpeg后端会在生成 WAV 后调用 ffmpeg 导出 MP3,因此需要安装:
apt update
apt install -y ffmpeg
如果你希望像开发环境一样直接 SSH 登录容器,而不是先进入宿主机再 docker exec,可以额外安装并启动 SSH 服务。
例如:
apt update
apt install -y openssh-server
mkdir -p /var/run/sshd
这一步不是项目运行必需项,只是开发和远程调试更方便。
前端当前使用 Vite 开发服务器运行,因此需要安装 Node.js。
目前验证可用的版本是:
node-v24.15.0-linux-x64安装方式如下:
curl -fsSLO https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.xz
mkdir -p /usr/local/lib/nodejs
tar -xJf node-v24.15.0-linux-x64.tar.xz -C /usr/local/lib/nodejs
ln -sf /usr/local/lib/nodejs/node-v24.15.0-linux-x64/bin/node /usr/local/bin/node
ln -sf /usr/local/lib/nodejs/node-v24.15.0-linux-x64/bin/npm /usr/local/bin/npm
ln -sf /usr/local/lib/nodejs/node-v24.15.0-linux-x64/bin/npx /usr/local/bin/npx
ln -sf /usr/local/lib/nodejs/node-v24.15.0-linux-x64/bin/corepack /usr/local/bin/corepack
说明:
验证:
node -v
npm -v
npx -v
在仓库根目录下执行:
cd frontend
npm install
当前版本前端推荐通过开发模式启动:
npm run dev
当前代码默认按仓库相对路径查找 tokenizer、decoder 配置和 checkpoints。
请确保目录结构如下:
Shao/
├── backend/
├── frontend/
├── core/
├── models/
│ ├── Decoder/
│ ├── Megatron/
│ └── Tokenizer/
└── checkpoints/
├── ...
└── ...
注意:
checkpoints/ 目录下的模型文件和目录结构需要与当前代码配置保持一致。cd backend
bash run_backend.sh
默认会启动:
GPU_IDS 中指定数量的 worker 进程停止:
bash run_backend.sh stop
cd frontend
npm run dev
默认情况下:
308698889如果你希望把宿主机上的项目目录挂载进容器,可以使用类似这样的命令:
docker run -d \
--name shao_dev \
--gpus all \
-p 2222:22 \
-p 30869:30869 \
-p 8889:8889 \
-v /path/to/your/workspace:/workspace \
<your-image> \
/usr/sbin/sshd -D
需要根据你自己的环境调整: