Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
|
|
2 years ago | |
|---|---|---|
| README.md | 2 years ago | |
dockerhub.pcl.ac.cn:5000/user-images/openi:SOVITS4.1-QZ
192.168.242.22:443/default-workspace/fccb038c23234b9e80105d4ccd152117/image:SOVITS4.1-ZS
启智集群的调试任务是T4 15G(一次最长运行4小时,停止后会重置)
启智集群的无外网训练任务是V100S 32G有外网的训练任务是A100 40G
智算集群的调试任务是V100S 32G与A100 40G(一次最长运行4小时,停止后会重置),训练任务也是V100S 32G与A100 40G
/root/so-vits-svcsu提权,自动激活conda环境mv /root/so-vits-svc /code
dataset_raw 目录 (音频文件仅支持wav格式,且路径仅能包含英文,数字,下划线以下仅作示范,合规命名都行)dataset_raw
├───speaker0
│ ├───xxx1-xxx1.wav
│ ├───...
│ └───Lxx-0xx8.wav
└───speaker1
├───xx2-0xxx2.wav
├───...
└───xxx7-xxx007.wav
如果将数据集打包上传到openi并挂载,数据集将被挂载在/dataset,请自行移动.
不同集群和不同任务类型,数据集是否解压均不一样,请自行判断后操作
python resample.py
以上这行代码包含响度匹配,有可能损失音质,如果已经进行过响度匹配,可以执行下面这行跳过响度匹配
python resample.py --skip_loudnorm
python preprocess_flist_config.py --speech_encoder vec768l12
若使用响度嵌入,需要增加--vol_aug参数,比如:
python preprocess_flist_config.py --speech_encoder vec768l12 --vol_aug
此时可以在生成的 config.json 与 diffusion.yaml 修改部分参数
config.json
keep_ckpts:训练时保留最后几个模型,0为保留所有,默认只保留最后3个,根据本人实测,本平台可以开到30不报错,不建议更大
all_in_mem:加载所有数据集到内存中,由于本平台提供的计算资源,硬盘IO较低,且内存较小,如果使用的数据集很小,可以打开,如果是大数据集大概率会爆内存
batch_size:单次处理的数据量。较大的 batch size 可以利用硬件资源并行计算,加快训练速度。因为 GPU 等硬件设备在处理大规模矩阵运算时效率更高。但是,更大的 batchsize 会导致显存占用增加,超出硬件所能承受的范围便会出现 COOM (Cuda out of memory)
关于设置Batch size的建议,使用T4 15G时不建议超过14,使用V100S 32G时不建议超过34,使用A100 40G时不建议超过44
learning_rate : 默认0.0001,可适当调大,加快模型收敛速度,bs12可设置成0.00014,bs24可设置成0.0002,bs48可设置成0.00028
fp16_run :是否启用半精度计算,默认False,打开可加快模型训练速度。
half_type :默认fp16,如果是A100可使用bf16,V100S和T4不支持bf16
** BF16 相比 FP16 没那么容易 NaN,同时又比 FP32 快,但是损失精度比FP16更严重**
** FP16 相比 FP32/BF16 更容易 NaN,但是精度比 BF16 高,对比 FP32 也损失不多,理论上来说,A100 跑 BF16/FP16 运算速度一样**
diffusion.yaml
cache_all_data:小数据集可以启用,能大幅提升训练速度
cache_device:缓存的设备,默认的cpu是缓存到内存,改成cuda可以缓存至显存,效率高于内存
k_step_max : 训练时可仅训练k_step_max步扩散以节约训练时间,注意,该值必须小于1000,0 为训练整个扩散模型,可以改成100以提高训练速度和浅扩散的质量注意,如果不训练整个扩散模型将无法使用仅扩散模型推理!
python preprocess_hubert_f0.py --f0_predictor rmvpe --use_diff --num_processes 8
f0_predictor 建议在以下几个中选择
crepe
rmvpe
fcpe
rmvpe音质最好;fcpe最快,同时音质不输crepe;crepe对于嘈杂音频处理稍好,个人推荐rmvpe
num_processes是处理线程数,开的越大,CPU使用越多线程,同时内存显存占用也更高,但是处理效率更高
T4建议开3,V100S建议开6,A100建议开8
python train.py -c configs/config.json -m 44k
推理使用的模型将输出在/logs/44k
这个模型主要用于消除电音,如果主模型训练的已经足够满意了,可以不训练
python train_diff.py -c configs/diffusion.yaml
浅扩散模型将输出在/logs/44k/diffusion
这个模型主要用于减小音色泄露,使得模型训练出来更像目标的音色
python cluster/train_cluster.py --gpu
聚类模型将输出为/logs/44k/kmeans_10000.pt
这一步是将模型文件中继续训练所需的部分移除,可以将大小缩小至约1/3
例:
python compress_model.py -c="configs/config.json" -i="logs/44k/G_30400.pth" -o="logs/44k/release.pth"
##阿里云盘的使用方法
cd aliyunpan
./aliyunpan
可以通过upload命令将上传模型至阿里云盘
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》