Skip to content

Commit d5bdeca

Browse files
authored
Remove robotics backend (flagos-ai#1070)
### PR Category Train ### PR Types Deprecations ### PR Description Remove robotics backend
1 parent b5e47cd commit d5bdeca

6 files changed

Lines changed: 8 additions & 35 deletions

File tree

examples/robobrain_x0_5/conf/train.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ experiment:
1111
ckpt_format: torch
1212
task:
1313
type: train
14-
backend: robotics
14+
backend: native
1515
entrypoint: flagscale/train/megatron/train_robobrain_x0.5_qwengroot.py
1616
runner:
1717
per_node_task: false

examples/robobrain_x0_5/conf/train/libero_qwengroot.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
config_path: examples/robobrain_x0_5/conf/train/libero_qwengroot.yaml
21
seed: 42
32
trackers: [jsonl, wandb]
43
wandb_entity: jinhuiye

flagscale/runner/backend/backend_megatron.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from flagscale.runner.backend.backend_base import BackendBase
77
from flagscale.runner.runner_train import (
88
_get_args_megatron,
9-
_get_args_robotics,
109
_update_config_train,
1110
)
1211
from flagscale.runner.utils import logger, parse_hostfile
@@ -21,10 +20,7 @@ def __init__(self, config: DictConfig):
2120

2221
def _prepare(self):
2322
_update_config_train(self.config)
24-
if self.config.experiment.task.backend == "megatron":
25-
self.user_args = _get_args_megatron(self.config)
26-
elif self.config.experiment.task.backend == "robotics":
27-
self.user_args = _get_args_robotics(self.config)
23+
self.user_args = _get_args_megatron(self.config)
2824
self.rdzv_id = datetime.now().strftime("%Y%m%d_%H%M%S.%f")
2925
self.user_envs = self.config.experiment.get("envs", {})
3026
self.user_script = self.config.experiment.task.entrypoint

flagscale/runner/runner_train.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,6 @@ def _get_args_megatron(config: DictConfig):
4949
return args
5050

5151

52-
def _get_args_robotics(config: DictConfig):
53-
assert config.experiment.task.backend == "robotics", (
54-
"This function only supports robotics backend."
55-
)
56-
57-
# Convert the DictConfig to a regular dictionary
58-
config_dict = OmegaConf.to_container(config, resolve=True)
59-
config_dict = config_dict["train"]
60-
args = flatten_dict_to_args({"config_path": config_dict["config_path"]})
61-
return args
62-
63-
6452
def _get_args_native(config: DictConfig):
6553
"""
6654
Use Hydra-generated config.yaml for native backend.
@@ -387,8 +375,6 @@ def _prepare(self):
387375
_update_config_train(self.config)
388376
if self.config.experiment.task.backend == "megatron":
389377
self.user_args = _get_args_megatron(self.config)
390-
elif self.config.experiment.task.backend == "robotics":
391-
self.user_args = _get_args_robotics(self.config)
392378
elif self.config.experiment.task.backend == "native":
393379
self.user_args = _get_args_native(self.config)
394380
else:
@@ -827,8 +813,6 @@ def _prepare(self):
827813
_update_config_train(self.config)
828814
if self.config.experiment.task.backend == "megatron":
829815
self.user_args = _get_args_megatron(self.config)
830-
elif self.config.experiment.task.backend == "robotics":
831-
self.user_args = _get_args_robotics(self.config)
832816
logger.info("\n************** configuration ***********")
833817
logger.info(f"\n{OmegaConf.to_yaml(self.config)}")
834818

flagscale/train/megatron/train_robobrain_x0.5_qwengroot.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,15 @@
1212
import platform
1313
import random
1414

15-
from typing import Tuple
16-
1715
import epath
1816
import numpy as np
1917
import torch
2018
import torch.distributed as dist
21-
2219
from omegaconf import OmegaConf
2320
from torch.nn.parallel import DistributedDataParallel as DDP
2421
from transformers import get_scheduler
2522

2623
import wandb
27-
2824
from megatron.energon import WorkerConfig, get_loader, get_train_dataset
2925
from tools.datasets.vla.data.dataset_helpers_np_pil import TaskEncoder
3026

@@ -66,7 +62,7 @@ def build_param_lr_groups(model, cfg):
6662

6763
def setup_optimizer_and_scheduler(
6864
model, cfg
69-
) -> Tuple[torch.optim.Optimizer, torch.optim.lr_scheduler._LRScheduler]:
65+
) -> tuple[torch.optim.Optimizer, torch.optim.lr_scheduler._LRScheduler]:
7066
"""set optimizer and scheduler"""
7167
# initialize optimizer
7268
param_groups = build_param_lr_groups(model=model, cfg=cfg)
@@ -191,11 +187,11 @@ def main(cfg) -> None:
191187
if __name__ == "__main__":
192188
parser = argparse.ArgumentParser()
193189
parser.add_argument(
194-
"--config-path",
190+
"--config-file",
195191
type=str,
196-
default="examples/robotics/conf/train/libero_qwengroot.yaml",
192+
default="outputs/libero_qwengroot/hydra/.hydra/config.yaml",
197193
help="Path to YAML config",
198194
)
199195
args, clipargs = parser.parse_known_args()
200-
cfg = OmegaConf.load(args.config_path)
201-
main(cfg)
196+
cfg = OmegaConf.load(args.config_file)
197+
main(cfg.train)

run.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ def get_runner(config: DictConfig, task_type: str):
7474
else:
7575
raise NotImplementedError(f"Task type '{task_type}' is not supported by cloud runner")
7676

77-
if FLAGSCALE_USE_V1 and config.experiment.task.get("backend", None) not in {
78-
"robotics",
79-
}:
77+
if FLAGSCALE_USE_V1:
8078
return Runner(config)
8179

8280
logger.warning(

0 commit comments

Comments
 (0)