hubert_vq_diffusion.yaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. defaults:
  2. - base
  3. - _self_
  4. project: hubert_vq_diffusion
  5. # Lightning Trainer
  6. trainer:
  7. accelerator: gpu
  8. devices: 1
  9. strategy:
  10. _target_: lightning.pytorch.strategies.DDPStrategy
  11. static_graph: true
  12. gradient_clip_val: 1.0
  13. gradient_clip_algorithm: 'norm'
  14. precision: 16-mixed
  15. max_steps: 1_000_000
  16. val_check_interval: 1000
  17. sample_rate: 44100
  18. hop_length: 512
  19. num_mels: 128
  20. n_fft: 2048
  21. win_length: 2048
  22. # Dataset Configuration
  23. train_dataset:
  24. _target_: fish_speech.datasets.vqgan.VQGANDataset
  25. filelist: data/vq_train_filelist.txt
  26. sample_rate: ${sample_rate}
  27. hop_length: ${hop_length}
  28. slice_frames: 512
  29. val_dataset:
  30. _target_: fish_speech.datasets.vqgan.VQGANDataset
  31. filelist: data/vq_val_filelist.txt
  32. sample_rate: ${sample_rate}
  33. hop_length: ${hop_length}
  34. data:
  35. _target_: fish_speech.datasets.vqgan.VQGANDataModule
  36. train_dataset: ${train_dataset}
  37. val_dataset: ${val_dataset}
  38. num_workers: 0 #16
  39. batch_size: 32
  40. val_batch_size: 4
  41. # Model Configuration
  42. model:
  43. _target_: fish_speech.models.vq_diffusion.lit_module.VQDiffusion
  44. sample_rate: ${sample_rate}
  45. hop_length: ${hop_length}
  46. text_encoder:
  47. _target_: fish_speech.models.vqgan.modules.encoders.TextEncoder
  48. in_channels: 1024
  49. out_channels: 128
  50. hidden_channels: 192
  51. hidden_channels_ffn: 768
  52. n_heads: 2
  53. n_layers: 4
  54. kernel_size: 1
  55. dropout: 0.1
  56. use_vae: false
  57. gin_channels: 512
  58. speaker_cond_layer: 0
  59. vq_encoder:
  60. _target_: fish_speech.models.vqgan.modules.encoders.VQEncoder
  61. in_channels: 1024
  62. vq_channels: 1024
  63. codebook_size: 2048
  64. downsample: 2
  65. kmeans_ckpt: results/hubert-vq-pretrain/kmeans.pt
  66. speaker_encoder:
  67. _target_: fish_speech.models.vqgan.modules.encoders.SpeakerEncoder
  68. in_channels: 128
  69. hidden_channels: 192
  70. out_channels: 512
  71. num_heads: 2
  72. num_layers: 4
  73. p_dropout: 0.1
  74. # denoiser:
  75. # _target_: fish_speech.models.vq_diffusion.convnext_1d.ConvNext1DModel
  76. # in_channels: 256
  77. # out_channels: 128
  78. # intermediate_dim: 512
  79. # mlp_dim: 2048
  80. # num_layers: 20
  81. # dilation_cycle_length: 2
  82. # time_embedding_type: "positional"
  83. denoiser:
  84. _target_: fish_speech.models.vq_diffusion.wavenet.WaveNet
  85. in_channels: 128
  86. out_channels: 128
  87. d_encoder: 128
  88. residual_channels: 512
  89. residual_layers: 20
  90. use_linear_bias: false
  91. dilation_cycle: 2
  92. # denoiser:
  93. # _target_: fish_speech.models.vq_diffusion.unet1d.Unet1DDenoiser
  94. # dim: 64
  95. # dim_mults: [1, 2, 4]
  96. # groups: 8
  97. # pe_scale: 1000
  98. vocoder:
  99. _target_: fish_speech.models.vq_diffusion.adamos.ADaMoSHiFiGANV1
  100. mel_transform:
  101. _target_: fish_speech.models.vqgan.spectrogram.LogMelSpectrogram
  102. sample_rate: ${sample_rate}
  103. n_fft: ${n_fft}
  104. hop_length: ${hop_length}
  105. win_length: ${win_length}
  106. n_mels: ${num_mels}
  107. f_min: 40
  108. f_max: 16000
  109. optimizer:
  110. _target_: torch.optim.AdamW
  111. _partial_: true
  112. lr: 1e-4
  113. betas: [0.9, 0.999]
  114. eps: 1e-5
  115. lr_scheduler:
  116. _target_: torch.optim.lr_scheduler.LambdaLR
  117. _partial_: true
  118. lr_lambda:
  119. _target_: fish_speech.scheduler.get_cosine_schedule_with_warmup_lr_lambda
  120. _partial_: true
  121. num_warmup_steps: 0
  122. num_training_steps: ${trainer.max_steps}
  123. final_lr_ratio: 0.05