From 4b838d3f457de6f26aa4a76bcf918835e1408345 Mon Sep 17 00:00:00 2001 From: Yuante Li <104308117+WinstonLiyt@users.noreply.github.com> Date: Wed, 18 Jun 2025 12:28:29 +0800 Subject: [PATCH] refactor: refactor RD-Agent(Q) configuration files (#972) * refactor rdagent(q) conf files * fix * fix ci --- .gitignore | 1 - rdagent/scenarios/qlib/developer/factor_runner.py | 12 ++++++++---- rdagent/scenarios/qlib/developer/model_runner.py | 12 ++++++++---- .../qlib/experiment/factor_template/README.md | 5 +++++ .../{conf.yaml => conf_baseline.yaml} | 0 ...conf_combined.yaml => conf_combined_factors.yaml} | 0 ...ed.yaml => conf_combined_factors_sota_model.yaml} | 0 .../qlib/experiment/model_template/README.md | 7 ++++++- .../{conf.yaml => conf_baseline_factors_model.yaml} | 0 ...el_combined.yaml => conf_sota_factors_model.yaml} | 0 10 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 rdagent/scenarios/qlib/experiment/factor_template/README.md rename rdagent/scenarios/qlib/experiment/factor_template/{conf.yaml => conf_baseline.yaml} (100%) rename rdagent/scenarios/qlib/experiment/factor_template/{conf_combined.yaml => conf_combined_factors.yaml} (100%) rename rdagent/scenarios/qlib/experiment/factor_template/{conf_model_combined.yaml => conf_combined_factors_sota_model.yaml} (100%) rename rdagent/scenarios/qlib/experiment/model_template/{conf.yaml => conf_baseline_factors_model.yaml} (100%) rename rdagent/scenarios/qlib/experiment/model_template/{conf_model_combined.yaml => conf_sota_factors_model.yaml} (100%) diff --git a/.gitignore b/.gitignore index b6fa0225..e602bf1d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ Pipfile public release-notes.md typescript* -qlib # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/rdagent/scenarios/qlib/developer/factor_runner.py b/rdagent/scenarios/qlib/developer/factor_runner.py index 10028c80..ea69a9e5 100644 --- a/rdagent/scenarios/qlib/developer/factor_runner.py +++ b/rdagent/scenarios/qlib/developer/factor_runner.py @@ -27,7 +27,7 @@ DIRNAME_local = Path.cwd() # # # def execute(): # de = DockerEnv() -# de.run(local_path=self.ws_path, entry="qrun conf.yaml") +# de.run(local_path=self.ws_path, entry="qrun conf_baseline.yaml") # TODO: supporting multiprocessing and keep previous results @@ -158,17 +158,21 @@ class QlibFactorRunner(CachedRunner[QlibFactorExperiment]): # model + combined factors result, stdout = exp.experiment_workspace.execute( - qlib_config_name="conf_model_combined.yaml", run_env=env_to_use + qlib_config_name="conf_combined_factors_sota_model.yaml", run_env=env_to_use ) else: # LGBM + combined factors result, stdout = exp.experiment_workspace.execute( - qlib_config_name=f"conf.yaml" if len(exp.based_experiments) == 0 else "conf_combined.yaml" + qlib_config_name=( + f"conf_baseline.yaml" if len(exp.based_experiments) == 0 else "conf_combined_factors.yaml" + ) ) else: logger.info(f"Experiment execution ...") result, stdout = exp.experiment_workspace.execute( - qlib_config_name=f"conf.yaml" if len(exp.based_experiments) == 0 else "conf_combined.yaml" + qlib_config_name=( + f"conf_baseline.yaml" if len(exp.based_experiments) == 0 else "conf_combined_factors.yaml" + ) ) if result is None: diff --git a/rdagent/scenarios/qlib/developer/model_runner.py b/rdagent/scenarios/qlib/developer/model_runner.py index 4b83f449..3d3dea71 100644 --- a/rdagent/scenarios/qlib/developer/model_runner.py +++ b/rdagent/scenarios/qlib/developer/model_runner.py @@ -79,20 +79,24 @@ class QlibModelRunner(CachedRunner[QlibModelExperiment]): {"dataset_cls": "TSDatasetH", "num_features": num_features, "step_len": 20, "num_timesteps": 20} ) result, stdout = exp.experiment_workspace.execute( - qlib_config_name="conf_model_combined.yaml", run_env=env_to_use + qlib_config_name="conf_sota_factors_model.yaml", run_env=env_to_use ) else: env_to_use.update({"dataset_cls": "TSDatasetH", "step_len": 20, "num_timesteps": 20}) - result, stdout = exp.experiment_workspace.execute(qlib_config_name="conf.yaml", run_env=env_to_use) + result, stdout = exp.experiment_workspace.execute( + qlib_config_name="conf_baseline_factors_model.yaml", run_env=env_to_use + ) elif exp.sub_tasks[0].model_type == "Tabular": if exist_sota_factor_exp: env_to_use.update({"dataset_cls": "DatasetH", "num_features": num_features}) result, stdout = exp.experiment_workspace.execute( - qlib_config_name="conf_model_combined.yaml", run_env=env_to_use + qlib_config_name="conf_sota_factors_model.yaml", run_env=env_to_use ) else: env_to_use.update({"dataset_cls": "DatasetH"}) - result, stdout = exp.experiment_workspace.execute(qlib_config_name="conf.yaml", run_env=env_to_use) + result, stdout = exp.experiment_workspace.execute( + qlib_config_name="conf_baseline_factors_model.yaml", run_env=env_to_use + ) exp.result = result exp.stdout = stdout diff --git a/rdagent/scenarios/qlib/experiment/factor_template/README.md b/rdagent/scenarios/qlib/experiment/factor_template/README.md new file mode 100644 index 00000000..64e4312c --- /dev/null +++ b/rdagent/scenarios/qlib/experiment/factor_template/README.md @@ -0,0 +1,5 @@ +| RD-Agent(Q) QLib Factor Config File | Description | +|------------------------------------------------------------|--------------------------------------------------------------------------------| +| `factor_template/conf_baseline.yaml` | Baseline factors (e.g., Alpha20) with the GBDT model | +| `factor_template/conf_combined_factors.yaml` | Merged SOTA and newly generated factors with the GBDT model | +| `factor_template/conf_combined_factors_sota_model.yaml` | Merged SOTA and newly generated factors with the SoTA-trace-selected model | \ No newline at end of file diff --git a/rdagent/scenarios/qlib/experiment/factor_template/conf.yaml b/rdagent/scenarios/qlib/experiment/factor_template/conf_baseline.yaml similarity index 100% rename from rdagent/scenarios/qlib/experiment/factor_template/conf.yaml rename to rdagent/scenarios/qlib/experiment/factor_template/conf_baseline.yaml diff --git a/rdagent/scenarios/qlib/experiment/factor_template/conf_combined.yaml b/rdagent/scenarios/qlib/experiment/factor_template/conf_combined_factors.yaml similarity index 100% rename from rdagent/scenarios/qlib/experiment/factor_template/conf_combined.yaml rename to rdagent/scenarios/qlib/experiment/factor_template/conf_combined_factors.yaml diff --git a/rdagent/scenarios/qlib/experiment/factor_template/conf_model_combined.yaml b/rdagent/scenarios/qlib/experiment/factor_template/conf_combined_factors_sota_model.yaml similarity index 100% rename from rdagent/scenarios/qlib/experiment/factor_template/conf_model_combined.yaml rename to rdagent/scenarios/qlib/experiment/factor_template/conf_combined_factors_sota_model.yaml diff --git a/rdagent/scenarios/qlib/experiment/model_template/README.md b/rdagent/scenarios/qlib/experiment/model_template/README.md index fb7c22c9..3a6284a6 100644 --- a/rdagent/scenarios/qlib/experiment/model_template/README.md +++ b/rdagent/scenarios/qlib/experiment/model_template/README.md @@ -1,3 +1,8 @@ ## This folder is a template to be copied from for each model implementation & running process. -Components: Dummy model.py, versatile conf.yaml, and a result reader. +Components: Dummy model.py, versatile conf.yaml, and a result reader. + +| RD-Agent(Q) QLib Model Config File | Description | +|-------------------------------------------------------------|-------------------------------------------------------------------| +| `model_template/conf_baseline_factors_model.yaml` | Baseline factors (e.g., Alpha20) with newly generated model | +| `model_template/conf_sota_factors_model.yaml` | SOTA factors with newly generated model | diff --git a/rdagent/scenarios/qlib/experiment/model_template/conf.yaml b/rdagent/scenarios/qlib/experiment/model_template/conf_baseline_factors_model.yaml similarity index 100% rename from rdagent/scenarios/qlib/experiment/model_template/conf.yaml rename to rdagent/scenarios/qlib/experiment/model_template/conf_baseline_factors_model.yaml diff --git a/rdagent/scenarios/qlib/experiment/model_template/conf_model_combined.yaml b/rdagent/scenarios/qlib/experiment/model_template/conf_sota_factors_model.yaml similarity index 100% rename from rdagent/scenarios/qlib/experiment/model_template/conf_model_combined.yaml rename to rdagent/scenarios/qlib/experiment/model_template/conf_sota_factors_model.yaml