Skip to content

Commit b1e064f

Browse files
committed
Run benchmark script will also start a job to convert 10k docs from olmocr-mix to check performance
1 parent 3d72f34 commit b1e064f

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

scripts/run_benchmark.sh

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ except:
104104
has_aws_creds = False
105105
print(f"AWS credentials secret not found: {aws_creds_secret}")
106106
107-
# Build commands list
107+
# First experiment: Original benchmark job
108108
commands = []
109109
if has_aws_creds:
110110
commands.extend([
@@ -142,21 +142,69 @@ if has_aws_creds:
142142
EnvVar(name="AWS_CREDENTIALS_FILE", secret=aws_creds_secret)
143143
]
144144
145-
# Create experiment spec
145+
# Create first experiment spec
146146
experiment_spec = ExperimentSpec(
147147
description=f"OlmOCR Benchmark Run - Branch: {git_branch}, Commit: {git_hash}",
148148
budget="ai2/oe-data",
149149
tasks=[TaskSpec(**task_spec_args)],
150150
)
151151
152-
# Create the experiment
152+
# Create the first experiment
153153
experiment = b.experiment.create(spec=experiment_spec, workspace="ai2/olmocr")
154-
print(f"Created experiment: {experiment.id}")
154+
print(f"Created benchmark experiment: {experiment.id}")
155155
print(f"View at: https://beaker.org/ex/{experiment.id}")
156+
157+
# Second experiment: Performance test job
158+
perf_pipeline_cmd = "python -m olmocr.pipeline ./localworkspace --markdown --pdfs s3://ai2-oe-data/jakep/olmocr/olmOCR-mix-0225/benchmark_set/"
159+
if model:
160+
perf_pipeline_cmd += f" --model {model}"
161+
162+
perf_commands = []
163+
if has_aws_creds:
164+
perf_commands.extend([
165+
"mkdir -p ~/.aws",
166+
'echo "$AWS_CREDENTIALS_FILE" > ~/.aws/credentials'
167+
])
168+
perf_commands.append(perf_pipeline_cmd)
169+
170+
# Build performance task spec
171+
perf_task_spec_args = {
172+
"name": "olmocr-performance",
173+
"image": ImageSource(beaker=f"{beaker_user}/{image_tag}"),
174+
"command": [
175+
"bash", "-c",
176+
" && ".join(perf_commands)
177+
],
178+
"context": TaskContext(
179+
priority=Priority.normal,
180+
preemptible=True,
181+
),
182+
"resources": TaskResources(gpu_count=1),
183+
"constraints": Constraints(cluster=["ai2/ceres-cirrascale", "ai2/jupiter-cirrascale-2"]),
184+
"result": ResultSpec(path="/noop-results"),
185+
}
186+
187+
# Add env vars if AWS credentials exist
188+
if has_aws_creds:
189+
perf_task_spec_args["env_vars"] = [
190+
EnvVar(name="AWS_CREDENTIALS_FILE", secret=aws_creds_secret)
191+
]
192+
193+
# Create performance experiment spec
194+
perf_experiment_spec = ExperimentSpec(
195+
description=f"OlmOCR Performance Test - Branch: {git_branch}, Commit: {git_hash}",
196+
budget="ai2/oe-data",
197+
tasks=[TaskSpec(**perf_task_spec_args)],
198+
)
199+
200+
# Create the performance experiment
201+
perf_experiment = b.experiment.create(spec=perf_experiment_spec, workspace="ai2/olmocr")
202+
print(f"Created performance experiment: {perf_experiment.id}")
203+
print(f"View at: https://beaker.org/ex/{perf_experiment.id}")
156204
EOF
157205

158-
# Run the Python script to create the experiment
159-
echo "Creating Beaker experiment..."
206+
# Run the Python script to create the experiments
207+
echo "Creating Beaker experiments..."
160208
if [ -n "$MODEL" ]; then
161209
echo "Using model: $MODEL"
162210
$PYTHON /tmp/run_benchmark_experiment.py $IMAGE_TAG $BEAKER_USER $GIT_BRANCH $GIT_HASH "$MODEL"
@@ -167,4 +215,4 @@ fi
167215
# Clean up temporary file
168216
rm /tmp/run_benchmark_experiment.py
169217

170-
echo "Benchmark experiment submitted successfully!"
218+
echo "Benchmark experiments submitted successfully!"

0 commit comments

Comments
 (0)