-
Notifications
You must be signed in to change notification settings - Fork 125
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
Fix YAML referencing to allow better CLI overrides #150
Conversation
47c784f
to
3eda252
Compare
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.
yesss thank you. LGTM, assuming you checked a few and the syntax works.
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.
So I'm kind of confused why we still use YAML anchors for the run_name
in the BERT configs.
- ./examples/bert/yamls/finetuning/glue/mcloud_run.yaml: base_run_name: *run_name
- ./examples/bert/yamls/finetuning/mcloud_run.yaml: run_name: *run_name
- ./examples/bert/yamls/main/mcloud_run_a100_40gb.yaml: run_name: *run_name
- ./examples/bert/yamls/main/mcloud_run_a100_80gb.yaml: run_name: *run_name
But seems like there are no issues besides those we already flagged.
In more detail, I wrote a script to parse the old and new versions via omegaconf, resolve() them, and then check that they're the same. It correctly found the new null
that Daniel flagged and said everything else is the same*
so I kinda believe it.
*Except that the BERT yamls can't resolve anything because you need to write out the parameters:
as a separate yaml file for it to work. (Yet another reason we need to indirect to the other config files).
I agree, we shouldn't have these. But I think I need to fix the BERT training scripts to read in |
Currently we rely on YAML anchors to copy things like
max_seq_len
into many places.But since we use OmegaConf to read our YAMLs, we can instead use the
${max_seq_len}
syntax.This allows CLI to override the anchored values like
data_remote
,data_local
,max_seq_len
, etc. that could not be done before. Previously, you would have to override every materialized value liketrain_loader.dataset.remote
.There are a lot of files here, but I'm going to check the high priority ones 1 by 1 to make sure nothing broke. And then assume that YAMLs within a dir (like
yamls/mosaic_gpt/...
all work).