# @package _group_

common:
  fp16: true
  log_format: json
  log_interval: 200
  user_dir: /data/home/abaevski/fairseq-py/examples/data2vec
#  tensorboard_logdir: tb

checkpoint:
  save_interval: 1
  no_epoch_checkpoints: true
  best_checkpoint_metric: wer

task:
  _name: audio_finetuning
  data: /fsx-wav2vec/abaevski/data/libri/100h/raw
  labels: ltr
  normalize: true

dataset:
  num_workers: 6
  max_tokens: 1280000
  skip_invalid_size_inputs_valid_test: true
  validate_after_updates: 100
  validate_interval: 1
  valid_subset: dev_other
  required_batch_size_multiple: 1

distributed_training:
  ddp_backend: legacy_ddp
  distributed_world_size: 8

criterion:
  _name: ctc
  zero_infinity: true
  post_process: letter
  wer_kenlm_model: /fsx-wav2vec/abaevski/data/libri/4-gram.bin
  wer_lexicon: /fsx-wav2vec/abaevski/data/libri/10h/wav2vec/raw/lexicon_ltr2.lst
  wer_lm_weight: 2.0
  wer_word_score: 0
  wer_sil_weight: -2

optimization:
  max_update: 100000
  lr: [1e-5]
#  lr: [1e-5]  # base 10h wer
  sentence_avg: true
  update_freq: [1]  # base 10h we -> 2/4

optimizer:
  _name: adam
  adam_betas: (0.9,0.98)
  adam_eps: 1e-08

lr_scheduler:
  _name: tri_stage
  phase_ratio: null
  warmup_steps: 8000
  hold_steps: 0
  decay_steps: 82000
  final_lr_scale: 0.05

model:
  _name: wav2vec_ctc
  w2v_path: ???
  apply_mask: true
  mask_prob: 0.4
  mask_length: 7
#  mask_prob: 0.65  # base 10h wer
  mask_channel_prob: 0.1
#  mask_channel_prob: 0.6  # base 10h wer
  mask_channel_length: 64
  layerdrop: 0
#  layerdrop: 0.05  # base 10h wer
  activation_dropout: 0.1
  feature_grad_mult: 0.0
  freeze_finetune_updates: 100
  dropout: 0
  final_dropout: 0
  attention_dropout: 0

