-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configs for wav2vec experiments #259
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mostly good, some comments.
...speech_100_ctc/fairseq_finetuning/ctc_standalone/sisyphus_configs/config_phoneme_boundary.py
Outdated
Show resolved
Hide resolved
model_conf_w2v = base_model_conf.copy() | ||
model_conf_w2v["w2v_path"] = phon_boundary_pretrain_job.out_models[CHECKPOINT].model | ||
model_conf_w2v["mask_strategy"] = "phoneme" | ||
model_conf_w2v["mask_length"] = 1 | ||
eow_phon_ls100_ctc_base( | ||
model_conf_w2v=model_conf_w2v, | ||
train_name_suffix=os.path.join( | ||
"w2v_phoneme_boundary_masking", | ||
"1_phoneme_spec", | ||
f"checkpoint_{CHECKPOINT}" | ||
), | ||
fairseq_root=fairseq_root, | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this the same as above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this is just for adding all relevant jobs under the new alias 1_phoneme_spec
. Since the amount of jobs that is saved under the train_name_suffix
, I thought this approach is easier than calling job.add_alias(...)
on all relevant jobs. Feel free to suggest any other approach to accomplish this :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But do we need the old alias?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The base model represents four different models in the ablations:
- Testing the w2v modification itself (i.e. just the normal
"w2v_phoneme_boundary_masking"
alias prefix) - Testing masking strategies in finetuning (there, for
negatives_other
, the base model is the same for the ablation withrandom
masking strategy; fornegatives_other_boundary_masking
andboundary_masking
, the baseline model is the same as the ablation withphoneme
masking strategy) - Testing phoneme mask length in finetuning (only for
negatives_other_boundary_masking
andboundary_masking
, where it is the same as the ablation withmask_len = 1
) - Testing masking probability in finetuning (base model is the same as ablation with mask probability 0.65)
I wanted to make this structure clear in the alias
folder as well - otherwise, it is not clear from the outside that the base model also represents the "masking probability = 0.65" model. So in that sense, yes, we need the old alias and all other ones as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, then maybe put a comment above the block like "repeat same experiment to obtain additional alias in line with following experiments" and it should be fine.
Previously, all wav2vec experiments were located in a single file. After adding more and more experiments, this got more chaotic and less modular, hindering flexible development and experimentation. I therefore split the previous
config_phoneme_pretrain_finetune.py
into different files for each wav2vec modification. Furthermore, I added configs for the experiments with hard negatives and positive samples.Note: I need to test-run the new configs to see if I transferred everything correctly. Until then, this PR remains as a draft, but please feel welcome to give feedback on the current config structure :)