| #!/bin/bash |
| set -euo pipefail |
|
|
| SOURCE_CHECKPOINT="${SOURCE_CHECKPOINT:?must be set}" |
| REFERENCE_PARQUET="${REFERENCE_PARQUET:?must be set}" |
| REPO_URL="${REPO_URL:-https://github.com/vedatonuryilmaz/dev_genopix.git}" |
| REPO_BRANCH="${REPO_BRANCH:-ml-intern}" |
| ARTIFACT_REPO="${ARTIFACT_REPO:?must be set}" |
| OBJECTIVE="${OBJECTIVE:-contrastive}" |
| EPOCHS="${EPOCHS:-10}" |
| BATCH_SIZE="${BATCH_SIZE:-128}" |
| NUM_WORKERS="${NUM_WORKERS:-4}" |
| DEVICE="${DEVICE:-cpu}" |
|
|
| git clone --branch "$REPO_BRANCH" --depth 1 "$REPO_URL" deepgenopix |
| cd deepgenopix |
| uv sync --extra hf --extra quant |
|
|
| OUTPUT_NAME="${1:-$(uv run python scripts/run_names.py quant-train --objective "$OBJECTIVE" --source-checkpoint "$SOURCE_CHECKPOINT" --reference-parquet "$REFERENCE_PARQUET")}" |
|
|
| if [ "${RESUME:-0}" = "1" ]; then |
| uv run python scripts/hf_artifacts.py pull --repo "$ARTIFACT_REPO" --preset "$OUTPUT_NAME" --dest data/output |
| fi |
|
|
| MODE=$([ "${RESUME:-0}" = "1" ] && echo resume || echo train) |
| uv run deepgenopix quant-train \ |
| --objective "$OBJECTIVE" \ |
| --source-checkpoint "$SOURCE_CHECKPOINT" \ |
| --reference-parquet "$REFERENCE_PARQUET" \ |
| --output-dir "data/output/$OUTPUT_NAME" \ |
| --epochs "$EPOCHS" \ |
| --batch-size "$BATCH_SIZE" \ |
| --num-workers "$NUM_WORKERS" \ |
| --device "$DEVICE" \ |
| --run-mode "$MODE" \ |
| --json |
|
|
| uv run python scripts/hf_artifacts.py push --repo "$ARTIFACT_REPO" --preset "$OUTPUT_NAME" --source data/output |
|
|