Skip to content

Commit b356844

Browse files
Merge pull request #832 from fsschneider/minor_nits
Minor nits
2 parents def1a43 + 7261e49 commit b356844

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

.github/workflows/regression_tests_variants.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
run: |
7373
docker pull us-central1-docker.pkg.dev/training-algorithms-external/mlcommons-docker-repo/algoperf_pytorch_${{ github.head_ref || github.ref_name }}
7474
docker run -v $HOME/data/:/data/ -v $HOME/experiment_runs/:/experiment_runs -v $HOME/experiment_runs/logs:/logs --gpus all --ipc=host us-central1-docker.pkg.dev/training-algorithms-external/mlcommons-docker-repo/algoperf_pytorch_${{ github.head_ref || github.ref_name }} -d criteo1tb -f pytorch -s reference_algorithms/paper_baselines/adamw/pytorch/submission.py -w criteo1tb_resnet -t reference_algorithms/paper_baselines/adamw/tuning_search_space.json -e tests/regression_tests/adamw -m 10 -c False -o True -r false
75-
criteo_resnet_pytorch:
75+
criteo_embed_init_pytorch:
7676
runs-on: self-hosted
7777
needs: build_and_push_pytorch_docker_image
7878
steps:

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ scoring/plots/
2525
!scoring/test_data/experiment_dir/study_0/mnist_jax/trial_0/eval_measurements.csv
2626
!scoring/test_data/experiment_dir/study_0/mnist_jax/trial_1/eval_measurements.csv
2727

28-
algorithmic_efficiency/_version.py
28+
algorithmic_efficiency/_version.py

DOCUMENTATION.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,6 @@ def update_params(
222222
- Cannot replace the model parameters with pre-trained ones.
223223
- Batch norm should work here because the `model_fn` will return updated batch norm moving averages when it is told to with `update_batch_norm`.
224224

225-
226225
###### Prepare for evaluation function
227226

228227
```python
@@ -278,7 +277,7 @@ def data_selection(
278277

279278
In general, with noisy, non-deterministic training, evaluation frequency can affect training time measurements as more "bites of the apple" potentially allows the training code to exploit instability. We also want to discourage submissions from complicated and unrealistic logic that attempts to guess when training is close to complete and increases the evaluation rate, while not producing a well-sampled training curve at the start of training. Simply allowing submissions complete freedom over evaluation frequency encourages competitors to work to minimize the number of evaluations, which distracts from the primary goal of finding better training algorithms.
280279

281-
Submissions are eligible for an untimed eval every `eval_period` seconds. Before proceeding to evaluation, the submission can prepare the model through a call to `prepare_for_eval`, effectively modifying the model parameters and state as well as the the optimizer state. Any additional evaluations performed by the submission code count against the runtime for scoring.
280+
Submissions are eligible for an untimed eval every `eval_period` seconds. Before proceeding to evaluation, the submission can prepare the model through a call to `prepare_for_eval`, effectively modifying the model parameters and state as well as the the optimizer state. Any additional evaluations performed by the submission code count against the runtime for scoring.
282281
The harness that runs the submission code will attempt to eval every `eval_period` seconds by checking between each submission step (call of `update_params`) whether it has been at least `eval_period` seconds since that last eval, if so, the submission is given the possibility to prepare for evaluation (through a timed call to `prepare_for_eval`). If the accumulated runtime does not exceed the maximum allowed runtime after the preparation step, the clock is paused, and the submission is evaluated. This means that if calls to `update_params` typically take a lot more than `eval_period` seconds, such submissions will not receive as many untimed evals as a submission that had an `update_params` function that took less time. However, for appropriate settings of `eval_period`, we expect this to be quite rare. Submissions are always free to restructure their `update_params` code to split work into two subsequent steps to regain the potential benefits of these untimed model evaluations. For each workload, the `eval_period` will be set such that the total evaluation time is roughly between 10% and 20% of the total training time for the target-setting runs.
283282

284283
#### Valid submissions

GETTING_STARTED.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
- [Docker Tips](#docker-tips)
1919
- [Score your Submission](#score-your-submission)
2020
- [Running workloads](#running-workloads)
21+
- [Package your Submission code](#package-your-submission-code)
22+
- [Package Logs for Self-Reporting Submissions](#package-logs-for-self-reporting-submissions)
2123

2224
## Set Up and Installation
2325

@@ -80,7 +82,6 @@ To set up a virtual enviornment and install this repository
8082
pip3 install -e '.[full]'
8183
```
8284

83-
8485
<details>
8586
<summary>
8687
Per workload installations
@@ -414,22 +415,24 @@ submission_folder/
414415
```
415416

416417
Specifically we require that:
418+
417419
1. There exist subdirectories in the the submission folder named after the ruleset: `external_tuning` or `self_tuning`.
418-
2. The ruleset subdirectories contain directories named according to
419-
some identifier of the algorithm.
420-
3. Each algorithm subdirectory contains a `submission.py` module. Additional helper modules are allowed if prefer to you organize your code into multiple files. If there are additional python packages that have to be installed for the algorithm also include a `requirements.txt` with package names and versions in the algorithm subdirectory.
420+
2. The ruleset subdirectories contain directories named according to
421+
some identifier of the algorithm.
422+
3. Each algorithm subdirectory contains a `submission.py` module. Additional helper modules are allowed if prefer to you organize your code into multiple files. If there are additional python packages that have to be installed for the algorithm also include a `requirements.txt` with package names and versions in the algorithm subdirectory.
421423
4. For `external_tuning` algorithms the algorithm subdirectory
422424
should contain a `tuning_search_space.json`.
423425

424426
To check that your submission folder meets the above requirements you can run the `submissions/repo_checker.py` script.
425427

426428
## Package Logs for Self-Reporting Submissions
429+
427430
To prepare your submission for self reporting run:
428431

429-
```
432+
```bash
430433
python3 package_logs.py --experiment_dir <experiment_dir> --destination_dir <destination_dir>
431434
```
432435

433-
The destination directiory will contain the logs packed in studies and trials required for self-reporting.
436+
The destination directiory will contain the logs packed in studies and trials required for self-reporting.
434437

435438
**Good Luck!**

0 commit comments

Comments
 (0)