Skip to content

GlobalOptimManager override_config method doesn't actually override config #1269

Open
@yongkeattan

Description

@yongkeattan

override_config method doesn't work as expected following the way in documentation, tried to update the optim_bits in 8-bit optimizer to 32bits for embedding layer, but didn't succeed.
image

Optimizer get_config method uses mng.index2config, but manager override_config method only updates pid2config
https://github.com/TimDettmers/bitsandbytes/blob/dada530149212d64d4b69534716202659ef37ec8/bitsandbytes/optim/optimizer.py#L296-L311

Optimizer check_overrides method uses mng.module_weight_config_triple to override mng.index2config. So, using Manager's register_module_override works (GPU memory usage increases compared to using full 8-bit optimization)
https://github.com/TimDettmers/bitsandbytes/blob/dada530149212d64d4b69534716202659ef37ec8/bitsandbytes/optim/optimizer.py#L238-L255

Extra question

What does Manager register_parameters actually do? Doesn't seem to actually do anything if the methods are called exactly like the order in the documentation above.
https://github.com/TimDettmers/bitsandbytes/blob/dada530149212d64d4b69534716202659ef37ec8/bitsandbytes/optim/optimizer.py#L296-L311

Metadata

Metadata

Assignees

No one assigned

    Labels

    OptimizersIssues or feature requests relating to optimizers

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions