-
Notifications
You must be signed in to change notification settings - Fork 78
ローカル環境構築
ここではローカルPCでのTrainerの学習用ローカル環境を構築する方法を説明します。
その他の、提供されたexeを利用しない場合のクライアントのローカル環境構築や、exe化するためのPyInstallerのローカル環境構築については、下記ページを参照してください。
# WSL2にUbuntuをインストール
# Ubuntu環境が既にある場合は削除する。
wsl --list --online
wsl --install -d Ubuntu-20.04
# WSL2上のUbuntuに入る。
# 以下コメントで `On Ubuntu`となっている箇所はこのコマンド実行後実行するもの。
wsl
# On Ubuntu
sudo apt update
sudo apt upgrade -y
# On Windows
# WSL2 Ubuntuを再起動する
wsl -t Ubuntu-20.04
- かなり容量を食う(100GB~)ので、Cドライブに余裕がない場合、この時点で以下を実施
- 以降の作業、VSCodeにWSL2拡張を入れ、接続するとファイル編集等が楽になります。おすすめです。
詳細は対象リポジトリを参照
# On Ubuntu
cd ~
git clone https://github.com/isletennos/MMVC_Trainer
- 録音データを作成しておく
- 動画シリーズ等で方法を確認する。録音データの収録方法等が詳細に説明されています。
- 一番時間のかかる作業です。気長にやりましょう。
- ローカルの適当な場所に保存。
- Windowsのエクスプローラから
\\wsl$\Ubuntu-20.04\home\<UBUNTU_USERNAME>\MMVC_Trainer\dataset\textful
に録音データ、コーパスデータを配置-
<UBUNTU_USERNAME>
は1.でインストールした時に入力するユーザー名 - 配置する方法はgitのReadmeや動画シリーズを確認してください。
-
- GitHub - isletennos/MMVC_Trainer にアクセス
- 「Ph2. モデルの学習方法 > 1.下記リンクより、「G_180000.pth」「D_180000.pth」をダウンロード」を確認しダウンロード
- この時、表示されているバージョンが
MMVC_Trainer/version.txt
の内容と合致していることを確認。バージョンが違うと原則動作しません。
- この時、表示されているバージョンが
- Windowsのエクスプローラから
\\wsl$\Ubuntu-20.04\home\<UBUNTU_USERNAME>\MMVC_Trainer\fine_model
にアクセスし、ダウンロードしたデータを入れる。-
<UBUNTU_USERNAME>
は1.でインストールした時に入力するユーザー名
-
# On Ubuntu
cd ~/MMVC_Trainer
# 使用ライブラリをインストールするために必要なソフトのインストール
sudo apt install python3-pip -y
sudo apt install cmake -y
sudo apt install nvidia-utils-510 -y
sudo apt install espeak -y
# 使用ライブラリのインストール
pip install --upgrade -r requirements_wsl2.txt
pip install numpy==1.23.5
# pythonのパスを通す
sudo apt install python-is-python3
# monotonic_alignのインストール
cd monotonic_align
python setup.py build_ext --inplace
cd ..
# CUDAのインストール
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.1-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub
sudo apt update
sudo apt install cuda -y
# GPU確認
# GPUが認識されていることやメモリ量等を確認する
nvidia-smi
RTX4090ではcu118でないとpytorchが動かない(2023/2現在)
そのため、cu118系を使う必要があるが、cu118はtorch2.0系のNigtly buildしかまだ提供されていない。
https://download.pytorch.org/whl/nightly/torch/
から、Nightly buildの 2.0+cu118 を使うよう、requirements_wsl2.txt を修正する。
# On Ubuntu
cd ~/MMVC_Trainer
# 使用ライブラリをインストールするために必要なソフトのインストール
sudo apt install python3-pip -y
sudo apt install cmake -y
sudo apt install nvidia-utils-510 -y
sudo apt install espeak -y
# 使用ライブラリのインストール
pip install pyopenjtalk
pip install Cython==0.29.21
pip install librosa==0.8.0
pip install matplotlib==3.3.1
pip install phonemizer==2.2.1
pip install scipy==1.5.2
pip install tensorboard==2.3.0
pip install torch==1.8.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install torchvision==0.9.0
pip install torchaudio==0.8.0
pip install Unidecode==1.1.1
pip install retry
pip install tqdm
pip install resampy==0.2.2
# WSL2で動作させるためにnotebookに記載された使用ライブラリとは別にインストールしたものやバージョンを指定したもの
pip install psutil
pip install protobuf==3.19.0
pip install numpy==1.23.5
# pythonのパスを通す
sudo apt install python-is-python3
# monotonic_alignのインストール
cd monotonic_align
python setup.py build_ext --inplace
cd ..
# CUDAのインストール
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda-repo-wsl-ubuntu-11-1-local_11.1.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.1-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub
sudo apt update
sudo apt install cuda -y
# GPU確認
# GPUが認識されていることやメモリ量等を確認する
nvidia-smi
# On Windows
# WSL2 Ubuntuを再起動する
wsl -t Ubuntu-20.04
-
MMVC_Trainer/configs/baseconfig.json
を環境に合わせて書き換える。-
"others:
-
"os_type": "linux"
WSL2で実行する場合はこの箇所を"windows"
に変更する!
-
-
"train":
-
"eval_interval": 2000
記録間隔。小さいとこまめに記録されるが容量を食う。 -
"batch_size": 10
GPUのメモリサイズに合わせて調整。大きい方が学習の進み方が速い。
そのままで回してみて学習中にメモリエラーが出るようであれば小さくしていく。 このファイルは設定ファイルのテンプレートなので、後々作成するtrain_config_XXX.json
の値も修正する。
-
-
- 設定の書換のノウハウは冒頭で紹介した動画シリーズが詳しいです。
- 設定内容詳細は設定ファイル説明#サーバ側設定を確認してください。
旧バージョンではソースコードの書換が必要だったが、現在は設定ファイルの書換だけで対応可能。
-
MMVC_Trainer/train_ms.py
を次の通り書き換える。- 14行目、
DistributedDataParallel
をDataParallel
に。 - 78行目、
backend='nccl'
をbackend='gloo'
に。
- 14行目、
-
Windows側から
\\wsl$\Ubuntu-20.04\home\<UBUNTU_USERNAME>\MMVC_Trainer\train_ms.py
をメモ帳等で開いて修正してもよし、Ubuntu側からvi train_ms.py
で書き換えてもよい。 -
WindowsのVSCodeでWSL2に接続した方が楽。筆者はそうしています。説明は省略。
diff --git a/train_ms.py b/train_ms.py index b20d45f..d19e52f 100644 --- a/train_ms.py +++ b/train_ms.py @@ -11,7 +11,7 @@ from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter import torch.multiprocessing as mp import torch.distributed as dist -from torch.nn.parallel import DistributedDataParallel as DDP +from torch.nn.parallel import DataParallel as DDP from torch.cuda.amp import autocast, GradScaler import datetime import pytz @@ -75,7 +75,7 @@ def run(rank, n_gpus, hps): if cpu_count > 8: cpu_count = 8 - dist.init_process_group(backend='nccl', init_method='env://', world_size=n_gpus, rank=rank) + dist.init_process_group(backend='gloo', init_method='env://', world_size=n_gpus, rank=rank) torch.manual_seed(hps.train.seed) torch.cuda.set_device(rank) train_dataset = TextAudioSpeakerLoader(hps.data.training_files, hps.data)
-
v1.2.2.0 ではこの作業はなくなり、configに
"others":{ "os_type": "windows" }
を追加するだけになる。 -
v1.3.0などの場合 https://github.com/isletennos/MMVC_Trainer/blob/v1.3.0.0/train_ms.py#L59 「os.environ['MASTER_PORT'] = '80000'」のように65535以上の値にになっている場合は「80000」を「8000」などに修正してください。
以下の説明はずんだもんになる場合です。
九州そら、四国めたん、春日部つむぎ等、他の話者になりたい場合、対象リポジトリやMMVC_Trainer/notebook/*
のファイルを読んで音声データを配置の上コマンドを変更しましょう。
# On Ubuntu
cd ~/MMVC_Trainer
# Create_Configfile
python create_dataset_jtalk.py -f train_config_zundamon -s 24000 -t 100
# Train_MMVC
## 初回のみ
python train_ms.py -c configs/train_config_zundamon.json -m 20220811_24000_zundamon -fg fine_model/G_180000.pth -fd fine_model/D_180000.pth
## 途中から再開する場合
cd ~/MMVC_Trainer
python train_ms.py -c configs/train_config_zundamon.json -m 20220811_24000_zundamon
## 学習を中断させたい場合は `ctrl + c`
- マルチGPUで動作させている場合、
python train_ms.py ~
の前に以下のexport行を実行する-
export CUDA_VISIBLE_DEVICES=0
- 数字が0か1かは環境によって違う。学習中にWindows上のタスクマネージャで学習に使用したいGPUの負荷が上がってるかを確認する。
- WSL2だとDDPが動作しないため、マルチGPUでの計算は現状できない。(特定の一つのGPUのみで計算する以外に方法がない。)
-
# On Ubuntu
cd ~/MMVC_Trainer
tensorboard --logdir logs
# URLが表示されるのでそれにアクセスする。
# 終了するときは `ctrl + c`
-
MMVC_Trainer/logs/20220811_24000_zundamon/
にD_XXXXXX.pth, G_XXXXXX.pth
が保存されているので、ディレクトリごとWindows側にコピーする。 - クライアントソフト をDLし、設定する。(説明省略)
Windows11 Pro 21H2
CPU: Ryzen3900X
GPU: GeForce RTX 3070
MEM: 64GB
- 2022-12-13: 元のエントリ https://qiita.com/yukarimazedofu/items/ed39d34632e412b2fc03 をWikiにcommitしていただきました。感謝です!
- 2022-08-13: 最新版(v1300)リリースされましたが、ほぼバグフィックスなのでこの内容で動作するはずです。
- 2022-08-11: 最新版(v1220)リリースに伴う修正
- 動画へのリンクからシリーズへのリンクに変更
- githubのReadmeに合わせた記述の順序修正(2-2と2-3が順番逆だった)
- インストールライブラリの修正
- numpy, tqdm
- For RTX30XX の記述を削除(v1220を通常通りインストールすることで対応できるようになった)
- 「設定ファイルを書き換える」の増補
- LD_LIBRARY_PATH 環境変数の指定が不要になっていたので削除
- 2022-07-23: 現時点最新版(v1216)に合わせた内容の修正
- psutil, protobufの追加
- CUDAのインストールバージョンを11.1に変更
- 2.MMVC_Trainerのデータを配置する や 4.ファイルを改変する の内容を増補
- マルチGPU使用時の設定方法の追加