You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+44-7Lines changed: 44 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,24 @@
1
1
# Synthesize Execute Instruct Debug Rank
2
2
3
-
A framework for AI-assisted program synthesis.
4
-
Given a problem description and some input-output examples, the framework generates a program that solves the problem.
3
+
This is a replication package for SEIDR framework, which is AI-assisted program synthesis.
4
+
Given a problem description and some input-output examples, the framework generates a program that solves the problem.
5
+
The framework has been published in the GECCO'23 Proceedings and is undergoing revision for the extension in the ACM TELO journal.
5
6
6
-
## Paper
7
7
8
-
You can find an in-depth discussion of this tool, the philosophy it implements and its usage in our paper, [Fully Autonomous Programming with Large Language Models](https://dl.acm.org/doi/abs/10.1145/3583131.3590481). Consider citing it if you use SEIDR in your research.
8
+
## TELO journal paper: _[Fully Autonomous Programming using Iterative Multi-Agent Debugging with Large Language Models](https://dl.acm.org/doi/10.1145/3719351)_
9
+
## Original GECCO'23 conference paper extended to the TELO journal: _[Fully Autonomous Programming with Large Language Models](https://dl.acm.org/doi/abs/10.1145/3583131.3590481)_
10
+
11
+
Consider citing the work if you use SEIDR in your research.
12
+
13
+
## Contents
14
+
15
+
The current `src/` folder is organized as follows:
16
+
17
+
*[seidr](./seidr) - code for running SEIDR on PSB2 (with `benchmark.py`) or HumanEval (with `benchmark_humaneval.py`)
18
+
*[scripts](./scripts) - Slurm scripts used to run SEIDR with a specific model on a specific dataset
19
+
*[config](./config) - csv tables of experimental setup, where each row corresponds to one problem in a dataset, each table is in a subfolder named after the dataset name
20
+
*[psb2-meta](./psb2-meta) - natural language descriptions of PSB2 problems
21
+
9
22
10
23
## Usage
11
24
@@ -16,16 +29,40 @@ help(dev)
16
29
17
30
## Reproducing the experiments from our paper
18
31
19
-
The experiments are contained in `benchmark.py` and `benchmark_humaneval.py` files. When you run this file, the AI-generated programs are commited to a dedicated github repository, while the metrics (i.e. how many tests every program passes) will be logged in your [Weights and Biases](https://wandb.ai)
32
+
The experiments are contained in `benchmark.py` and `benchmark_humaneval.py` files. When you run this file, the AI-generated programs are commited to a dedicated github repository, while the metrics (i.e., how many tests every program passes) will be logged in your [Weights and Biases](https://wandb.ai)
20
33
21
34
### Prerequisites
35
+
36
+
#### Install dependencies
37
+
Either install the project with Poetry or install seidr from pypi:
38
+
```bash
39
+
pip install seidr
40
+
```
41
+
42
+
With [Poetry](https://python-poetry.org/docs/) and `Python 3.11` (or later versions):
43
+
```bash
44
+
cd SEIDR_TELO
45
+
poetry env use python3.11
46
+
poetry install
47
+
```
48
+
49
+
With Python `venv` module:
50
+
```bash
51
+
cd SEIDR_TELO/src
52
+
python3.11 -m venv venv
53
+
source venv/bin/activate
54
+
pip install -r src/requirements_src.txt
55
+
```
56
+
57
+
Note that depending on your Python version management, you may need to change `python3.11` to another alias or Python executable.
58
+
22
59
#### Set up Weights and Biases
23
60
24
61
1. Create an account on [Weights and Biases](https://wandb.ai)
25
62
2. Install the [Weights and Biases](https://docs.wandb.com/library/install) library
26
63
3. Run `wandb login` and follow the instructions
27
64
28
-
#### Set up a GitHub repository
65
+
#### Set up a GitHub repository for solutions
29
66
30
67
1. Go to [github](https://github.com), log in to the account that's going to push AI-generated code. Remember the $username and $email for that account.
31
68
2. Go [here](https://github.com/settings/tokens?type=beta) and generate an access $token
@@ -78,7 +115,7 @@ and run it with `sbatch run.sh --array=1-500`.
78
115
If not, run `TASK_ID=n python benchmark.py` to re-run one of our experiments exactly,
79
116
or set the parameters yourself as below.
80
117
81
-
For example, for basement problem in PSB2, run SEIDR without lexicase selection as follows:
118
+
For example, for `basement` problem in PSB2, run SEIDR without lexicase selection as follows:
0 commit comments