diff --git a/.gitignore b/.gitignore index 6e1fc7f74..f22e826a3 100644 --- a/.gitignore +++ b/.gitignore @@ -29,7 +29,7 @@ share/python-wheels/ MANIFEST metagpt/tools/schemas/ examples/data/search_kb/*.json -expo/AutogluonModels +sela/AutogluonModels # PyInstaller # Usually these files are written by a python scripts from a template @@ -189,4 +189,4 @@ cov.xml *-structure.json *.dot .python-version -expo/results/* +sela/results/* diff --git a/expo/results/PLACEHOLDER b/expo/results/PLACEHOLDER deleted file mode 100644 index e69de29bb..000000000 diff --git a/expo/results/tree/TREE b/expo/results/tree/TREE deleted file mode 100644 index e69de29bb..000000000 diff --git a/expo/Greedy.py b/sela/Greedy.py similarity index 95% rename from expo/Greedy.py rename to sela/Greedy.py index 8c8d865cd..05bf1dfa5 100644 --- a/expo/Greedy.py +++ b/sela/Greedy.py @@ -1,6 +1,6 @@ import random -from expo.MCTS import MCTS +from sela.MCTS import MCTS class Greedy(MCTS): diff --git a/expo/MCTS.py b/sela/MCTS.py similarity index 97% rename from expo/MCTS.py rename to sela/MCTS.py index 2ce559ae0..8368f3918 100644 --- a/expo/MCTS.py +++ b/sela/MCTS.py @@ -8,12 +8,12 @@ import shutil import numpy as np import pandas as pd -from expo.data.custom_task import get_mle_bench_requirements, get_mle_task_id -from expo.data.dataset import generate_task_requirement, get_split_dataset_path -from expo.evaluation.evaluation import evaluate_score -from expo.insights.instruction_generator import InstructionGenerator -from expo.research_assistant import ResearchAssistant, TimeoutException -from expo.utils import get_exp_pool_path, load_execute_notebook, mcts_logger +from sela.data.custom_task import get_mle_bench_requirements, get_mle_task_id +from sela.data.dataset import generate_task_requirement, get_split_dataset_path +from sela.evaluation.evaluation import evaluate_score +from sela.insights.instruction_generator import InstructionGenerator +from sela.research_assistant import ResearchAssistant, TimeoutException +from sela.utils import get_exp_pool_path, load_execute_notebook, mcts_logger from metagpt.tools.tool_recommend import ToolRecommender from metagpt.utils.common import read_json_file diff --git a/expo/README.md b/sela/README.md similarity index 100% rename from expo/README.md rename to sela/README.md diff --git a/expo/data.yaml b/sela/data.yaml similarity index 100% rename from expo/data.yaml rename to sela/data.yaml diff --git a/expo/data/custom_task.py b/sela/data/custom_task.py similarity index 95% rename from expo/data/custom_task.py rename to sela/data/custom_task.py index c2bf5c710..cbbcd8f0e 100644 --- a/expo/data/custom_task.py +++ b/sela/data/custom_task.py @@ -1,7 +1,7 @@ import os -from expo.data.dataset import SPECIAL_INSTRUCTIONS -from expo.experimenter.mle_bench.instructions import ( +from sela.data.dataset import SPECIAL_INSTRUCTIONS +from sela.experimenter.mle_bench.instructions import ( ADDITIONAL_NOTES, INSTRUCTIONS, INSTRUCTIONS_OBFUSCATED, diff --git a/expo/data/dataset.py b/sela/data/dataset.py similarity index 99% rename from expo/data/dataset.py rename to sela/data/dataset.py index 91490dcd7..7f5ead88b 100644 --- a/expo/data/dataset.py +++ b/sela/data/dataset.py @@ -9,8 +9,8 @@ import pandas as pd import yaml from sklearn.model_selection import train_test_split -from expo.insights.solution_designer import SolutionDesigner -from expo.utils import DATA_CONFIG +from sela.insights.solution_designer import SolutionDesigner +from sela.utils import DATA_CONFIG BASE_USER_REQUIREMENT = """ This is a {datasetname} dataset. Your goal is to predict the target column `{target_col}`. diff --git a/expo/data/hf_data.py b/sela/data/hf_data.py similarity index 97% rename from expo/data/hf_data.py rename to sela/data/hf_data.py index a18517d49..355815628 100644 --- a/expo/data/hf_data.py +++ b/sela/data/hf_data.py @@ -7,14 +7,14 @@ import pandas as pd from datasets import load_dataset from PIL import Image -from expo.data.dataset import ( +from sela.data.dataset import ( ExpDataset, parse_args, process_dataset, save_datasets_dict_to_yaml, ) -from expo.insights.solution_designer import SolutionDesigner -from expo.utils import DATA_CONFIG +from sela.insights.solution_designer import SolutionDesigner +from sela.utils import DATA_CONFIG HFDATSETS = [ {"name": "sms_spam", "dataset_name": "ucirvine/sms_spam", "target_col": "label", "modality": "text"}, diff --git a/expo/datasets.yaml b/sela/datasets.yaml similarity index 100% rename from expo/datasets.yaml rename to sela/datasets.yaml diff --git a/expo/evaluation/evaluation.py b/sela/evaluation/evaluation.py similarity index 100% rename from expo/evaluation/evaluation.py rename to sela/evaluation/evaluation.py diff --git a/expo/evaluation/visualize_mcts.py b/sela/evaluation/visualize_mcts.py similarity index 99% rename from expo/evaluation/visualize_mcts.py rename to sela/evaluation/visualize_mcts.py index 44f5ec5f5..9a88937b4 100644 --- a/expo/evaluation/visualize_mcts.py +++ b/sela/evaluation/visualize_mcts.py @@ -3,7 +3,7 @@ import textwrap import matplotlib.pyplot as plt import networkx as nx -from expo.MCTS import Node +from sela.MCTS import Node NODE_TEMPLATE = """\ [Node {id}] diff --git a/expo/experimenter/__init__.py b/sela/experimenter/__init__.py similarity index 100% rename from expo/experimenter/__init__.py rename to sela/experimenter/__init__.py diff --git a/expo/experimenter/aide.py b/sela/experimenter/aide.py similarity index 100% rename from expo/experimenter/aide.py rename to sela/experimenter/aide.py diff --git a/expo/experimenter/aug.py b/sela/experimenter/aug.py similarity index 91% rename from expo/experimenter/aug.py rename to sela/experimenter/aug.py index bcfa5d4ad..d19412b47 100644 --- a/expo/experimenter/aug.py +++ b/sela/experimenter/aug.py @@ -1,7 +1,7 @@ -from expo.experimenter.experimenter import Experimenter -from expo.insights.instruction_generator import InstructionGenerator -from expo.research_assistant import ResearchAssistant -from expo.utils import get_exp_pool_path +from sela.experimenter.experimenter import Experimenter +from sela.insights.instruction_generator import InstructionGenerator +from sela.research_assistant import ResearchAssistant +from sela.utils import get_exp_pool_path EXPS_PROMPT = """ When doing the tasks, you can refer to the insights below: diff --git a/expo/experimenter/autogluon.py b/sela/experimenter/autogluon.py similarity index 99% rename from expo/experimenter/autogluon.py rename to sela/experimenter/autogluon.py index dabf0c138..7ea1b37f6 100644 --- a/expo/experimenter/autogluon.py +++ b/sela/experimenter/autogluon.py @@ -1,5 +1,5 @@ from datetime import datetime -from expo.experimenter.custom import CustomExperimenter +from sela.experimenter.custom import CustomExperimenter import os import pandas as pd diff --git a/expo/experimenter/autosklearn.py b/sela/experimenter/autosklearn.py similarity index 96% rename from expo/experimenter/autosklearn.py rename to sela/experimenter/autosklearn.py index 02a3cc465..6079a6813 100644 --- a/expo/experimenter/autosklearn.py +++ b/sela/experimenter/autosklearn.py @@ -1,7 +1,7 @@ from datetime import datetime import pandas as pd -from expo.experimenter.custom import CustomExperimenter -from expo.evaluation.evaluation import evaluate_score +from sela.experimenter.custom import CustomExperimenter +from sela.evaluation.evaluation import evaluate_score from functools import partial diff --git a/expo/experimenter/custom.py b/sela/experimenter/custom.py similarity index 93% rename from expo/experimenter/custom.py rename to sela/experimenter/custom.py index f245499ca..f6dde6c59 100644 --- a/expo/experimenter/custom.py +++ b/sela/experimenter/custom.py @@ -2,9 +2,9 @@ import os import pandas as pd -from expo.evaluation.evaluation import evaluate_score -from expo.experimenter.experimenter import Experimenter -from expo.MCTS import create_initial_state +from sela.evaluation.evaluation import evaluate_score +from sela.experimenter.experimenter import Experimenter +from sela.MCTS import create_initial_state class CustomExperimenter(Experimenter): diff --git a/expo/experimenter/experimenter.py b/sela/experimenter/experimenter.py similarity index 96% rename from expo/experimenter/experimenter.py rename to sela/experimenter/experimenter.py index 4a0b8413e..32a88016a 100644 --- a/expo/experimenter/experimenter.py +++ b/sela/experimenter/experimenter.py @@ -5,10 +5,10 @@ import os import numpy as np import pandas as pd -from expo.evaluation.evaluation import evaluate_score -from expo.MCTS import create_initial_state -from expo.research_assistant import ResearchAssistant -from expo.utils import DATA_CONFIG, save_notebook +from sela.evaluation.evaluation import evaluate_score +from sela.MCTS import create_initial_state +from sela.research_assistant import ResearchAssistant +from sela.utils import DATA_CONFIG, save_notebook class Experimenter: diff --git a/expo/experimenter/mcts.py b/sela/experimenter/mcts.py similarity index 93% rename from expo/experimenter/mcts.py rename to sela/experimenter/mcts.py index a42566366..1065bd0d9 100644 --- a/expo/experimenter/mcts.py +++ b/sela/experimenter/mcts.py @@ -1,13 +1,13 @@ import shutil -from expo.evaluation.evaluation import ( +from sela.evaluation.evaluation import ( node_evaluate_score_mlebench, node_evaluate_score_sela, ) -from expo.evaluation.visualize_mcts import get_tree_text -from expo.experimenter.experimenter import Experimenter -from expo.Greedy import Greedy, Random -from expo.MCTS import MCTS +from sela.evaluation.visualize_mcts import get_tree_text +from sela.experimenter.experimenter import Experimenter +from sela.Greedy import Greedy, Random +from sela.MCTS import MCTS class MCTSExperimenter(Experimenter): diff --git a/expo/experimenter/mle_bench/instructions.py b/sela/experimenter/mle_bench/instructions.py similarity index 98% rename from expo/experimenter/mle_bench/instructions.py rename to sela/experimenter/mle_bench/instructions.py index 631f410dc..515fd9d34 100644 --- a/expo/experimenter/mle_bench/instructions.py +++ b/sela/experimenter/mle_bench/instructions.py @@ -8,7 +8,7 @@ You will be given a machine learning task. You must solve the task by training a BENCHMARK INSTRUCTIONS ------ -First, please read the instructions below which are specific to our benchmark setup. Note, these instructions can be found again in `expo.experimenter.mle_bench.instructions.py`. +First, please read the instructions below which are specific to our benchmark setup. Note, these instructions can be found again in `sela.experimenter.mle_bench.instructions.py`. - **Competition-specific instructions**: The instructions for the competition are available in `{dataset_dir}/description.md`. Read this file to understand the problem setup for the competition you are currently solving. - **Dataset**: The dataset files for the competition are available in `{dataset_dir}`. @@ -28,7 +28,7 @@ You will be given a machine learning task. You must solve the task by training a BENCHMARK INSTRUCTIONS ------ -First, please read the instructions below which are specific to our benchmark setup. Note, these instructions can be found again in `expo.experimenter.mle_bench.instructions.py`. +First, please read the instructions below which are specific to our benchmark setup. Note, these instructions can be found again in `sela.experimenter.mle_bench.instructions.py`. - **Task-specific instructions**: The instructions for the task are available in `{dataset_dir}/description.md`. Read this file to understand the problem setup for the task you are currently solving. - **Dataset**: The dataset files for the task are available in `{dataset_dir}/`. diff --git a/expo/insights/fixed_insights.json b/sela/insights/fixed_insights.json similarity index 100% rename from expo/insights/fixed_insights.json rename to sela/insights/fixed_insights.json diff --git a/expo/insights/instruction_generator.py b/sela/insights/instruction_generator.py similarity index 98% rename from expo/insights/instruction_generator.py rename to sela/insights/instruction_generator.py index ab9b2cc67..90555761b 100644 --- a/expo/insights/instruction_generator.py +++ b/sela/insights/instruction_generator.py @@ -3,8 +3,8 @@ import os import random from difflib import SequenceMatcher -from expo.insights.solution_designer import SolutionDesigner -from expo.utils import clean_json_from_rsp, load_data_config, mcts_logger +from sela.insights.solution_designer import SolutionDesigner +from sela.utils import clean_json_from_rsp, load_data_config, mcts_logger from metagpt.llm import LLM from metagpt.schema import Message diff --git a/expo/insights/solution_designer.py b/sela/insights/solution_designer.py similarity index 98% rename from expo/insights/solution_designer.py rename to sela/insights/solution_designer.py index 262caa0f6..6685f1ed5 100644 --- a/expo/insights/solution_designer.py +++ b/sela/insights/solution_designer.py @@ -1,6 +1,6 @@ import json -from expo.utils import clean_json_from_rsp, load_data_config +from sela.utils import clean_json_from_rsp, load_data_config from metagpt.llm import LLM DATA_CONFIG = load_data_config() diff --git a/expo/requirements.txt b/sela/requirements.txt similarity index 100% rename from expo/requirements.txt rename to sela/requirements.txt diff --git a/expo/research_assistant.py b/sela/research_assistant.py similarity index 99% rename from expo/research_assistant.py rename to sela/research_assistant.py index d068dd4e5..45326a28a 100644 --- a/expo/research_assistant.py +++ b/sela/research_assistant.py @@ -6,7 +6,7 @@ import os from pydantic import model_validator -from expo.utils import mcts_logger, save_notebook +from sela.utils import mcts_logger, save_notebook from metagpt.actions.di.write_analysis_code import WriteAnalysisCode from metagpt.const import SERDESER_PATH from metagpt.roles.di.data_interpreter import DataInterpreter diff --git a/expo/run_experiment.py b/sela/run_experiment.py similarity index 90% rename from expo/run_experiment.py rename to sela/run_experiment.py index 68c3b35d4..168dc2160 100644 --- a/expo/run_experiment.py +++ b/sela/run_experiment.py @@ -1,13 +1,13 @@ import argparse import asyncio -from expo.data.custom_task import get_mle_is_lower_better, get_mle_task_id -from expo.experimenter.aug import AugExperimenter -from expo.experimenter.autogluon import GluonExperimenter -from expo.experimenter.autosklearn import AutoSklearnExperimenter -from expo.experimenter.custom import CustomExperimenter -from expo.experimenter.experimenter import Experimenter -from expo.experimenter.mcts import MCTSExperimenter +from sela.data.custom_task import get_mle_is_lower_better, get_mle_task_id +from sela.experimenter.aug import AugExperimenter +from sela.experimenter.autogluon import GluonExperimenter +from sela.experimenter.autosklearn import AutoSklearnExperimenter +from sela.experimenter.custom import CustomExperimenter +from sela.experimenter.experimenter import Experimenter +from sela.experimenter.mcts import MCTSExperimenter def get_args(cmd=True): diff --git a/expo/scripts/run_cls.sh b/sela/scripts/run_cls.sh similarity index 100% rename from expo/scripts/run_cls.sh rename to sela/scripts/run_cls.sh diff --git a/expo/scripts/run_cls_mod.sh b/sela/scripts/run_cls_mod.sh similarity index 100% rename from expo/scripts/run_cls_mod.sh rename to sela/scripts/run_cls_mod.sh diff --git a/expo/scripts/run_reg.sh b/sela/scripts/run_reg.sh similarity index 100% rename from expo/scripts/run_reg.sh rename to sela/scripts/run_reg.sh diff --git a/expo/scripts/visualize_experiment.py b/sela/scripts/visualize_experiment.py similarity index 74% rename from expo/scripts/visualize_experiment.py rename to sela/scripts/visualize_experiment.py index 6cd84a0de..4b93b9f61 100644 --- a/expo/scripts/visualize_experiment.py +++ b/sela/scripts/visualize_experiment.py @@ -1,9 +1,9 @@ import networkx as nx -from expo.evaluation.visualize_mcts import build_tree_recursive, visualize_tree -from expo.MCTS import MCTS, create_initial_state, initialize_di_root_node -from expo.run_experiment import get_args -from expo.utils import DATA_CONFIG +from sela.evaluation.visualize_mcts import build_tree_recursive, visualize_tree +from sela.MCTS import MCTS, create_initial_state, initialize_di_root_node +from sela.run_experiment import get_args +from sela.utils import DATA_CONFIG if __name__ == "__main__": args = get_args() diff --git a/expo/utils.py b/sela/utils.py similarity index 100% rename from expo/utils.py rename to sela/utils.py