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

feat: Enabling automation of experiments running v2.0 #469

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8726ab8
Revising to enable automation of experiments running v1.0
xisen-w Nov 4, 2024
b44bef5
Any new updates
xisen-w Nov 15, 2024
c100876
Revising to enable automation of experiments running v1.0
xisen-w Nov 4, 2024
18370d4
Any new updates
xisen-w Nov 15, 2024
21a99d2
Add template
you-n-g Nov 15, 2024
86ae0b2
Stoping tracking additional env
xisen-w Nov 20, 2024
f94dbff
Merge branch 'automated-evaluation' of https://github.com/microsoft/R…
xisen-w Nov 20, 2024
66ffd6d
Uploading relevant envs
xisen-w Nov 20, 2024
0ef80a5
Adding tests
xisen-w Nov 20, 2024
907d980
Updating
xisen-w Nov 20, 2024
51388d1
Updated collect.py to extract result from trace
xisen-w Nov 23, 2024
af6220e
Update .gitignore to remove the unecessary ones
xisen-w Nov 23, 2024
54c3c6d
"Remove unnecessary files"
xisen-w Nov 23, 2024
78708e4
Merge branch 'automated-evaluation' of https://github.com/microsoft/R…
xisen-w Nov 25, 2024
3f131f3
Merge branch 'main' into automated-evaluation
xisen-w Nov 25, 2024
38bb9e6
Updated to enable automatic collection of experiment result information
xisen-w Nov 25, 2024
10b0053
Updating the env files & Upading test_system file
xisen-w Nov 25, 2024
238f492
Updated relevant env for better testing
xisen-w Nov 25, 2024
68ca63a
Updated README.md
xisen-w Nov 25, 2024
8b18fad
reverting gitignore back
xisen-w Nov 25, 2024
2395dc5
Updates
xisen-w Dec 3, 2024
b7cc98e
README update
xisen-w Dec 3, 2024
0b5a09d
Updates on env README
xisen-w Dec 3, 2024
24cd0c2
Updating collect.py
xisen-w Dec 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Updated relevant env for better testing
  • Loading branch information
xisen-w committed Nov 25, 2024
commit 238f49269438018d7409c5182d384b175e49750c
4 changes: 1 addition & 3 deletions scripts/exp/ablation/env/basic.env
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
KG_IF_USING_VECTOR_RAG=False
KG_IF_USING_GRAPH_RAG=False
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=False
KG_MODEL_FEATURE_SELECTION_CODER=True
KG_HYPOTHESIS_GEN=True
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=False
4 changes: 1 addition & 3 deletions scripts/exp/ablation/env/max.env
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, it needs to add the path to the knowledge base.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KG_IF_USING_VECTOR_RAG here should be set to false.

Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
KG_IF_USING_VECTOR_RAG=True
KG_IF_USING_GRAPH_RAG=True
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=True
KG_MODEL_FEATURE_SELECTION_CODER=True
KG_HYPOTHESIS_GEN=True
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=True
2 changes: 0 additions & 2 deletions scripts/exp/ablation/env/mini-case.env
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
KG_IF_USING_VECTOR_RAG=True
KG_IF_USING_GRAPH_RAG=False
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=True
KG_MODEL_FEATURE_SELECTION_CODER=True
KG_HYPOTHESIS_GEN=False
2 changes: 0 additions & 2 deletions scripts/exp/ablation/env/pro.env
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, it also needs to add the path to the knowledge base.

Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
KG_IF_USING_VECTOR_RAG=True
KG_IF_USING_GRAPH_RAG=False
KG_IF_ACTION_CHOOSING_BASED_ON_UCB=True
KG_MODEL_FEATURE_SELECTION_CODER=True
KG_HYPOTHESIS_GEN=True
141 changes: 138 additions & 3 deletions scripts/exp/tools/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,138 @@
The tools in the directory contains following generalfeatures
- collecting envs and run each
- collect results and generate summary
Tools Directory

This directory provides scripts to run experiments with different environment configurations, collect results, and demonstrate usage through an example script.

Directory Structure

scripts/exp/tools/
├── run_envs.sh # Script for running experiments
├── collect.py # Results collection and summary
├── test_system.sh # Example usage script
├── README.md # This documentation

Tools Overview

1. run_envs.sh: Executes experiments with different environment configurations in parallel.
2. collect.py: Collects and summarizes experiment results into a single file.
3. test_system.sh: Demonstrates how to use the above tools together for experiment execution and result collection.

Getting Started

Prerequisites

1. Ensure the scripts have execution permissions:

chmod +x scripts/exp/tools/run_envs.sh
chmod +x scripts/exp/tools/test_system.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can commit the file permission to github directly instead of writting them in README.md



2. Install required dependencies for Python scripts:

pip install -r requirements.txt


3. Place your .env files in the desired directory for environment configurations.

Usage

1. Running Experiments with Different Environments

The run_envs.sh script allows running a command with multiple environment configurations in parallel.

Command Syntax

./run_envs.sh -d <dir_to_.envfiles> -j <number_of_parallel_processes> -- <command>

Example Usage

Basic example:

./run_envs.sh -d env_files -j 1 -- echo "Hello"

Practical example:

dotenv run -- ./run_envs.sh -d /h/home/v-xisenwang/RD-Agent/scripts/exp/ablation/env -j 1 -- python /home/v-xisenwang/RD-Agent/rdagent/app/kaggle/loop.py

Explanation:
• -d: Specifies the directory containing .env files.
• -j: Number of parallel processes to run (e.g., 1 for sequential execution).
• --: Separates script options from the command to execute.
• <command>: The command to execute with the environment variables loaded.

2. Collecting Results

The collect.py script processes logs and generates a summary JSON file.

Command Syntax

python collect.py --log_path <path_to_logs> --output_name <summary_filename>

Example Usage

Collect results from logs:

python collect.py --log_path logs --output_name summary.json

Explanation:
• --log_path: Required. Specifies the directory containing experiment logs.
• --output_name: Optional. The name of the output summary file (default: summary.json).

3. Example Workflow

Use the test_system.sh script to demonstrate a complete workflow.

Steps:

1. Ensure the scripts are executable:

chmod +x scripts/exp/tools/run_envs.sh
chmod +x scripts/exp/tools/test_system.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above



2. Run the test system:

./scripts/exp/tools/test_system.sh



This will:
1. Load environment configurations from .env files.
2. Execute experiments using the configurations.
3. Collect and summarize results.

Troubleshooting

Permission Denied

If you encounter a PermissionError when running scripts:
1. Ensure the script has execution permissions:

chmod +x ./scripts/exp/tools/run_envs.sh
chmod +x ./scripts/exp/tools/test_system.sh


2. Verify file ownership:

ls -l ./scripts/exp/tools/


3. Change ownership or update permissions if necessary:

sudo chown $USER:$USER ./scripts/exp/tools/*
chmod 755 ./scripts/exp/tools/*

Capitalized Environment Variables

To standardize variable names, .env files should use uppercase variable names with underscores (e.g., MY_VARIABLE). For example:

IF_USING_VECTOR_RAG=true
IF_USING_GRAPH_RAG=false
MODEL_FEATURE_SELECTION_CODER=advanced

Notes

• Use the -j parameter to scale parallel processes as needed.
• Ensure .env files are correctly formatted to avoid errors.
• Customize test_system.sh as per your project’s requirements.

For further assistance, refer to the comments within the scripts or reach out to the development team.
Loading
Oops, something went wrong.