Add freezing bert and style options
This commit is contained in:
@@ -30,7 +30,17 @@ def get_path(model_name):
|
|||||||
return dataset_path, lbl_path, train_path, val_path, config_path
|
return dataset_path, lbl_path, train_path, val_path, config_path
|
||||||
|
|
||||||
|
|
||||||
def initialize(model_name, batch_size, epochs, save_every_steps, bf16_run):
|
def initialize(
|
||||||
|
model_name,
|
||||||
|
batch_size,
|
||||||
|
epochs,
|
||||||
|
save_every_steps,
|
||||||
|
bf16_run,
|
||||||
|
freeze_EN_bert,
|
||||||
|
freeze_JP_bert,
|
||||||
|
freeze_ZH_bert,
|
||||||
|
freeze_style,
|
||||||
|
):
|
||||||
global logger_handler
|
global logger_handler
|
||||||
dataset_path, _, train_path, val_path, config_path = get_path(model_name)
|
dataset_path, _, train_path, val_path, config_path = get_path(model_name)
|
||||||
|
|
||||||
@@ -42,7 +52,7 @@ def initialize(model_name, batch_size, epochs, save_every_steps, bf16_run):
|
|||||||
logger_handler = logger.add(os.path.join(dataset_path, file_name))
|
logger_handler = logger.add(os.path.join(dataset_path, file_name))
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Step 1: start initialization...\nmodel_name: {model_name}, batch_size: {batch_size}, epochs: {epochs}, save_every_steps: {save_every_steps}, bf16_run: {bf16_run}"
|
f"Step 1: start initialization...\nmodel_name: {model_name}, batch_size: {batch_size}, epochs: {epochs}, save_every_steps: {save_every_steps}, bf16_run: {bf16_run}, freeze_ZH_bert: {freeze_ZH_bert}, freeze_JP_bert: {freeze_JP_bert}, freeze_EN_bert: {freeze_EN_bert}, freeze_style: {freeze_style}"
|
||||||
)
|
)
|
||||||
if os.path.isfile(config_path):
|
if os.path.isfile(config_path):
|
||||||
with open(config_path, "r", encoding="utf-8") as f:
|
with open(config_path, "r", encoding="utf-8") as f:
|
||||||
@@ -59,6 +69,11 @@ def initialize(model_name, batch_size, epochs, save_every_steps, bf16_run):
|
|||||||
config["train"]["bf16_run"] = bf16_run
|
config["train"]["bf16_run"] = bf16_run
|
||||||
config["train"]["eval_interval"] = save_every_steps
|
config["train"]["eval_interval"] = save_every_steps
|
||||||
|
|
||||||
|
config["train"]["freeze_EN_bert"] = freeze_EN_bert
|
||||||
|
config["train"]["freeze_JP_bert"] = freeze_JP_bert
|
||||||
|
config["train"]["freeze_ZH_bert"] = freeze_ZH_bert
|
||||||
|
config["train"]["freeze_style"] = freeze_style
|
||||||
|
|
||||||
model_path = os.path.join(dataset_path, "models")
|
model_path = os.path.join(dataset_path, "models")
|
||||||
if os.path.exists(model_path):
|
if os.path.exists(model_path):
|
||||||
logger.warning(f"Step 1: {model_path} already exists, so copy it to backup.")
|
logger.warning(f"Step 1: {model_path} already exists, so copy it to backup.")
|
||||||
@@ -214,11 +229,23 @@ def preprocess_all(
|
|||||||
num_processes,
|
num_processes,
|
||||||
normalize,
|
normalize,
|
||||||
trim,
|
trim,
|
||||||
|
freeze_EN_bert,
|
||||||
|
freeze_JP_bert,
|
||||||
|
freeze_ZH_bert,
|
||||||
|
freeze_style,
|
||||||
):
|
):
|
||||||
if model_name == "":
|
if model_name == "":
|
||||||
return False, "Error: モデル名を入力してください"
|
return False, "Error: モデル名を入力してください"
|
||||||
success, message = initialize(
|
success, message = initialize(
|
||||||
model_name, batch_size, epochs, save_every_steps, bf16_run
|
model_name,
|
||||||
|
batch_size,
|
||||||
|
epochs,
|
||||||
|
save_every_steps,
|
||||||
|
bf16_run,
|
||||||
|
freeze_EN_bert,
|
||||||
|
freeze_JP_bert,
|
||||||
|
freeze_ZH_bert,
|
||||||
|
freeze_style,
|
||||||
)
|
)
|
||||||
if not success:
|
if not success:
|
||||||
return False, message
|
return False, message
|
||||||
@@ -349,14 +376,6 @@ if __name__ == "__main__":
|
|||||||
info="bfloat16を使うかどうか。新しめのグラボだと学習が早くなるかも、古いグラボだと動かないかも。",
|
info="bfloat16を使うかどうか。新しめのグラボだと学習が早くなるかも、古いグラボだと動かないかも。",
|
||||||
value=True,
|
value=True,
|
||||||
)
|
)
|
||||||
num_processes = gr.Slider(
|
|
||||||
label="プロセス数",
|
|
||||||
info="前処理時の並列処理プロセス数、大きすぎるとフリーズするかも",
|
|
||||||
value=cpu_count() // 2,
|
|
||||||
minimum=1,
|
|
||||||
maximum=cpu_count(),
|
|
||||||
step=1,
|
|
||||||
)
|
|
||||||
normalize = gr.Checkbox(
|
normalize = gr.Checkbox(
|
||||||
label="音声の音量を正規化する(音量の大小が揃っていない場合など)",
|
label="音声の音量を正規化する(音量の大小が揃っていない場合など)",
|
||||||
value=False,
|
value=False,
|
||||||
@@ -365,6 +384,33 @@ if __name__ == "__main__":
|
|||||||
label="音声の最初と最後の無音を取り除く",
|
label="音声の最初と最後の無音を取り除く",
|
||||||
value=False,
|
value=False,
|
||||||
)
|
)
|
||||||
|
with gr.Accordion("詳細設定", open=False):
|
||||||
|
num_processes = gr.Slider(
|
||||||
|
label="プロセス数",
|
||||||
|
info="前処理時の並列処理プロセス数、大きすぎるとフリーズするかも",
|
||||||
|
value=cpu_count() // 2,
|
||||||
|
minimum=1,
|
||||||
|
maximum=cpu_count(),
|
||||||
|
step=1,
|
||||||
|
)
|
||||||
|
gr.Markdown("学習時に特定の部分を凍結させるかどうか")
|
||||||
|
freeze_EN_bert = gr.Checkbox(
|
||||||
|
label="英語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_JP_bert = gr.Checkbox(
|
||||||
|
label="日本語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_ZH_bert = gr.Checkbox(
|
||||||
|
label="中国語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_style = gr.Checkbox(
|
||||||
|
label="スタイル部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
|
||||||
with gr.Column():
|
with gr.Column():
|
||||||
preprocess_button = gr.Button(value="自動前処理を実行", variant="primary")
|
preprocess_button = gr.Button(value="自動前処理を実行", variant="primary")
|
||||||
info_all = gr.Textbox(label="状況")
|
info_all = gr.Textbox(label="状況")
|
||||||
@@ -397,6 +443,22 @@ if __name__ == "__main__":
|
|||||||
label="bfloat16を使う",
|
label="bfloat16を使う",
|
||||||
value=True,
|
value=True,
|
||||||
)
|
)
|
||||||
|
freeze_EN_bert_manual = gr.Checkbox(
|
||||||
|
label="英語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_JP_bert_manual = gr.Checkbox(
|
||||||
|
label="日本語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_ZH_bert_manual = gr.Checkbox(
|
||||||
|
label="中国語bert部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
|
freeze_style_manual = gr.Checkbox(
|
||||||
|
label="スタイル部分を凍結",
|
||||||
|
value=False,
|
||||||
|
)
|
||||||
with gr.Column():
|
with gr.Column():
|
||||||
generate_config_btn = gr.Button(value="実行", variant="primary")
|
generate_config_btn = gr.Button(value="実行", variant="primary")
|
||||||
info_init = gr.Textbox(label="状況")
|
info_init = gr.Textbox(label="状況")
|
||||||
@@ -467,6 +529,10 @@ if __name__ == "__main__":
|
|||||||
num_processes,
|
num_processes,
|
||||||
normalize,
|
normalize,
|
||||||
trim,
|
trim,
|
||||||
|
freeze_EN_bert,
|
||||||
|
freeze_JP_bert,
|
||||||
|
freeze_ZH_bert,
|
||||||
|
freeze_style,
|
||||||
],
|
],
|
||||||
outputs=[info_all],
|
outputs=[info_all],
|
||||||
)
|
)
|
||||||
@@ -478,6 +544,10 @@ if __name__ == "__main__":
|
|||||||
epochs_manual,
|
epochs_manual,
|
||||||
save_every_steps_manual,
|
save_every_steps_manual,
|
||||||
bf16_run_manual,
|
bf16_run_manual,
|
||||||
|
freeze_EN_bert_manual,
|
||||||
|
freeze_JP_bert_manual,
|
||||||
|
freeze_ZH_bert_manual,
|
||||||
|
freeze_style_manual,
|
||||||
],
|
],
|
||||||
outputs=[info_init],
|
outputs=[info_init],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user