Skip to content
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 several bugs & add Bert inc example to pipeline #1492

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

xiaoyu-work
Copy link
Contributor

Describe your changes

Fix Olive bugs & Add Bert inc examples to example pipeline.

  • batch_size is needed for Inc dataloader. Set default size to 1.
  • Custom eval func doesn't have batch_size as input.
  • For QuantizationAwareTraining pass, train_data_config is not required if user provides training_loop_func.
  • Latest transformers package will automatically save trained model as safetensors format. Add save_safetensors as false to train argument.
  • Some passes may have nested data_config in its config. Update auto-fill data_config logic to achieve this.

Checklist before requesting a review

  • Add unit tests for this change.
  • Make sure all tests can pass.
  • Update documents if necessary.
  • Lint and apply fixes to your code by running lintrunner -a
  • Is this a user-facing change? If yes, give a description of this change to be included in the release notes.
  • Is this PR including examples changes? If yes, please remember to update example documentation in a follow-up PR.

(Optional) Issue link

def resolve_all_data_configs(config, values):
"""Recursively traverse the config dictionary to resolve all 'data_config' keys."""
for param_name, param_value in config.items():
if isinstance(param_value, dict):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this recursion for cases like in inc quantization where it has a metric with data config inside it?

Copy link
Contributor

@jambayk jambayk Nov 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not an issue but I think the recursion feels more correct if the order of logic is

if param_name.endswith("data_config"):
     _resolve_data_config(config, values, param_name)
elif isinstance(param_value, dict):
    resolve_all_data_configs(param_value, values)

since now there is an explicit base case

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good! Updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants