draccus(dataclass 配置库)
draccus (dataclass-based configuration library)进阶pyrallis 的分支:用 dataclass 定义配置,从命令行和文件读参数
draccus 是 David Hall(GitHub 用户名 dlwh)从 pyrallis 分支出来的 Python 配置库,MIT 协议。先用 dataclass 写好配置类,再给主函数加 @draccus.wrap(),运行时它从命令行参数和配置文件(默认 YAML,也支持 JSON)读值,两者可以合用,填成配置对象传给主函数,嵌套字段用点号连接。相比 pyrallis,它多了按 type 字段在几种子配置间切换、在配置文件里用 !include 引入其他文件等功能。新手常在 LeRobot 和 OpenVLA 里碰到它:LeRobot 的 lerobot-train 用 --policy.type=act 选策略就是这个机制,外层另包了自己的解析器,可用 --policy.path 从 Hugging Face Hub 加载预训练配置;OpenVLA 的训练、微调脚本都直接用 @draccus.wrap(),训练时用 --vla.type 选预设配置。
例子运行 lerobot-train --policy.type=act --dataset.repo_id=lerobot/aloha_mobile_cabinet,draccus 把两个参数填进训练配置的 policy 和 dataset 字段,其余用默认值。
- 也叫
- draccus
- 相关
- Hydra 配置框架、tyro(命令行配置库)、LeRobot、OpenVLA、超参数
- 来源
- dlwh/draccus (GitHub)
LeRobot src/lerobot/configs/parser.py (GitHub)
OpenVLA vla-scripts/train.py (GitHub) - 信息截至
- 2026-10