Skip to content

Recommendation: Use hydra to manipulate configs. #119

@yuzh2001

Description

@yuzh2001

随着xuance的功能丰富,目前configs有一大把,但是逐渐难以管控,所有config单层铺开,并不是很优雅。
建议使用hydra来管理配置,可以考虑参考 Mava 里的配置方式:

defaults:
  - _self_
  - logger: logger
  - arch: anakin
  - system: sac/ff_masac
  - network: mlp
  - env: mabrax  # [mabrax, mpe]

hydra:
  searchpath:
    - file://mava/configs

用hydra的好处:

  1. 可以非常优雅地把config进行分类管理。
  2. 假设某天xuance希望添加一个新的checkpoint配置项,比如”保存第二好的checkpoint“,按现有的config,则需要每个文件都加入一行”save_second_best: True“,这工作量非常大不说、还容易出错。
  3. 而且由于所有配置是单层的,还存在命名空间冲突的问题。比如 env_seedexp_seed 就得分开。
  4. 如果换用hydra,在调参时还可以很方便地基于某个之前的参数创建新yaml,很轻松可以知道改了哪些参数。
  5. 还可以使用hydra的multirun功能,一次性启动多个参数的训练,起到sweep的作用。

综上,推荐考虑使用hydra来管理配置,特此提出本issue。如果管理者也有兴趣推进,我愿意贡献时间参与上述配置的迁移。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions