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

[ADVICE] 好是好,但是我觉得wandb有个最关键的功能是支持调参(sweep),swanlab似乎还没有这个功能 #829

Open
2catycm opened this issue Feb 22, 2025 · 1 comment
Assignees
Labels
🏠 advice advice to the project 💪 enhancement New feature or request

Comments

@2catycm
Copy link

2catycm commented Feb 22, 2025

🤪 Features description [Please make everyone to understand it]

我想要用swanlab替代wandb,但是我发现替代不了,因为没有我最需要的sweep功能。

👍 What problem does this feature solve

增加一个接口 swanlab sweep,读取某种配置文件或者python文件(我觉得python文件最好,有dataclass可以限定强类型,参考meta的hydra库里面的 structured config ),然后根据文件指定的超参数分布信息来调参

👾 What does the proposed API look like

类似wandb的sweep
但是我认为我们可以做得更好,我们是开源的,wandb是封闭的无法修改的调参算法,只支持少量的受限的算法。
我觉得既然swanlab主打开源,应该接入optuna、ray tune、hebo、nevergrad、geatpy等开源的调参库,这些库算法很丰富,如果接入成功,我们就可以超过wandb。

wandb有个比较有趣的设计是,一开始不自动调参可以先人工跑实验,记录下运行效果;然后用户觉得要开始sweep了,wandb可以自动推荐一个sweep的配置,根据之前人工实验记录下来的参数。

🚑 Any additional [like screenshots]

可以参考 谷歌调参手册 https://github.com/schrodingercatss/tuning_playbook_zh_cn 里面的哲学来设计。

这本手册里面提到,调参是在探索与利用的平衡,我们有一个swanlab这样的记录机器学习参数和性能的软件,其实就是为了探索清楚这背后的自变量和因变量的关系,获得更多的实验insight。

这本手册指出了三类变量,固定超参(比如batch size应该根据硬件允许的范围设置最大,后续实验保持不变)、冗余超参(优化到最优)和自变量超参(实验研究的目标,比如选择我的方法还是其他人的方法,我自己的方法ablation study选择哪个参数)

@2catycm 2catycm added the 🏠 advice advice to the project label Feb 22, 2025
@Zeyi-Lin
Copy link
Member

Zeyi-Lin commented Feb 23, 2025

你的建议非常好与珍贵!我们会积极采纳你的建议,在合适的时机推出我们的“swanlab sweep”。
也希望更多开发者能为我们贡献sweep这块的建议和指引,让更多人调参体验更好

@SAKURA-CAT SAKURA-CAT self-assigned this Feb 26, 2025
@SAKURA-CAT SAKURA-CAT added the 💪 enhancement New feature or request label Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏠 advice advice to the project 💪 enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants