Size Category サイズカテゴリー - akjava/Matcha-TTS-Japanese GitHub Wiki

Size Category(EN)

My categorize to define difficulty of training

  • Tiny - very difficult (only adaption training work)
  • small - hard (need some phonome-audio from other dataset or tts)
  • medium - easy
  • large - hard (take time)
  • Huge - difficult(too take time)

サイズカテゴリーとは(おおまかに私が分類するために決めました)

なぜ、サイズカテゴリーが必要か。

  • ファイルサイズによってトレーニング方法が変わる(tinyは特殊な方法じゃないと無理)・Smallもモーラが足りない
  • ファイルサイズによって時間が変わる。(Hugeとか大変)

クラス分け(datasetの分類)

推奨Checkpointサイズ

lightningの設定で configs/callbacks/model_checkpoint.yamlの中のevery_n_epochsで決めます。(デフォルトは100)

それと、save_top_kの設定を見直しましょう。これより増えた時に、古いcheckpointが消えます。

ただ、この安全装置を外すとディスク容量が溢れます。(tinyとかsmallを放置してたら10000エポックを超えて、25GB超えて悲劇がおきます。)

逆に、ファイル数多いと、checkpointが作成されません。

  • tiny -500
  • small -250
  • medium -100
  • large -50
  • huge -25 - 10

checkpoint数の求め方 - 1時間に何個作るか

1 epochに、かかる時間を表示で見てみる。60分を、それでわれば、1時間あたりで進むエポック数が予想できます。(ただし、学習が途中から早くなることもある)

ファイル数が多い場合(1万から2万ほどの場合) - 1epochに2-3分かかります。この場合は、保存を per 10(fine-tune) か per 25(from-scratch)ぐらいに設定しています。

TODO トレーニング方法

トレーニング時間

A4000とかの高速な訓練環境を前提

  • Tiny - 5ファイル以下 - 準備含めて1時間もあれば(ただしAdaptionのみ可能)
  • Small - 5から50 ファイル - 数時間ほどで出来る。(fine-tuneならギリギリ単独でも出来る)
  • Medium - 50から500ファイル - 6時間もあれば十分 (質は低いけどscratchからも出来る。 - イントネーションを完全再現可能)
  • Large - 500から5000ファイル - 1日で出来るかも
  • Huge - 5000ファイル以上 - 訓練完了まで数日 (CLトレーニングとかしないとイントネーションでこけるかも)