Skip to content

Commit

Permalink
Add RNNLM recipe
Browse files Browse the repository at this point in the history
  • Loading branch information
ddwkim committed Apr 18, 2024
1 parent 8db74e9 commit 5ea0b88
Showing 1 changed file with 117 additions and 0 deletions.
117 changes: 117 additions & 0 deletions recipes/KsponSpeech/LM/hparams/RNNLM.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# ############################################################################
# Model: RNNLM of E2E ASR
# Tokens: unigram
# losses: NLL
# Training: KsponSpeech 965.2h transcript
# Authors: Ju-Chieh Chou 2020, Jianyuan Zhong 2021, Dong Won Kim 2024
# ############################################################################

# Seed needs to be set at top of yaml, before objects with parameters are made
seed: 2226
__set_seed: !apply:torch.manual_seed [!ref <seed>]
output_folder: !ref results/RNN/<seed>
save_folder: !ref <output_folder>/save
train_log: !ref <output_folder>/train_log.txt

# Data files
# The data_folder is needed because we train the LM on the training
# Data files
data_folder: !PLACEHOLDER # e.g., /path/to/KsponSpeech
train_csv: !ref <data_folder>/train.csv
valid_csv: !ref <data_folder>/dev.csv
test_csv:
- !ref <data_folder>/eval_clean.csv
- !ref <data_folder>/eval_other.csv

# Tokenizer model
tokenizer_file: ddwkim/asr-conformer-transducer-rnnlm-ksponspeech/tokenizer.ckpt

####################### Training Parameters ####################################
number_of_epochs: 20
batch_size: 128
lr: 0.001
weight_decay: 0.01
num_workers: 10
grad_accumulation_factor: 1 # Gradient accumulation to simulate large batch training
ckpt_interval_minutes: 15 # save checkpoint every N min

# Dataloader options
train_dataloader_opts:
batch_size: !ref <batch_size>
shuffle: True
num_workers: !ref <num_workers>

valid_dataloader_opts:
batch_size: 1

test_dataloader_opts:
batch_size: 1

####################### Model Parameters #######################################
emb_size: 256
activation: !name:torch.nn.LeakyReLU
dropout: 0.0
rnn_layers: 6
rnn_neurons: 512
dnn_blocks: 1
dnn_neurons: 256

# Outputs
output_neurons: 5000
# blank_index: 0
bos_index: 1
eos_index: 2
# pad_index: 0


# Functions
model: !new:speechbrain.lobes.models.RNNLM.RNNLM
output_neurons: !ref <output_neurons>
embedding_dim: !ref <emb_size>
activation: !ref <activation>
dropout: !ref <dropout>
rnn_layers: !ref <rnn_layers>
rnn_neurons: !ref <rnn_neurons>
dnn_blocks: !ref <dnn_blocks>
dnn_neurons: !ref <dnn_neurons>

modules:
model: !ref <model>

checkpointer: !new:speechbrain.utils.checkpoints.Checkpointer
checkpoints_dir: !ref <save_folder>
recoverables:
model: !ref <model>
scheduler: !ref <lr_annealing>
counter: !ref <epoch_counter>

log_softmax: !new:speechbrain.nnet.activations.Softmax
apply_log: True

optimizer: !name:torch.optim.AdamW
lr: !ref <lr>
betas: (0.9, 0.998)
eps: 0.000000001
weight_decay: !ref <weight_decay>

lr_annealing: !new:speechbrain.nnet.schedulers.NoamScheduler
lr_initial: !ref <lr>
n_warmup_steps: 2000
model_size: 1

epoch_counter: !new:speechbrain.utils.epoch_loop.EpochCounter
limit: !ref <number_of_epochs>

compute_cost: !name:speechbrain.nnet.losses.nll_loss

train_logger: !new:speechbrain.utils.train_logger.FileTrainLogger
save_file: !ref <train_log>

tokenizer: !new:sentencepiece.SentencePieceProcessor

pretrainer: !new:speechbrain.utils.parameter_transfer.Pretrainer
collect_in: !ref <save_folder>
loadables:
tokenizer: !ref <tokenizer>
paths:
tokenizer: !ref <tokenizer_file>

0 comments on commit 5ea0b88

Please sign in to comment.