File size: 4,248 Bytes
d346d4e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | ---
license: mit
tags:
- leak-curber
- kcat
- leaderboard
---
# Leak CURBER kcat model starter
Use this starter to try the submission process or build your own model.
You train locally and upload a public Hugging Face (HF) model repository.
We build its Docker image and run CPU inference. A free HF account is enough.
The included baseline uses ridge regression with sequence composition and SMILES
character counts. Its weights use only the fixed training split.
Read the [step-by-step guide](https://huggingface.co/starkAhmed43/leak-curber-kcat-starter/blob/main/GUIDE.md) for the full workflow and troubleshooting.
## Try the baseline
Download this repository and the public data:
```bash
python -m pip install huggingface-hub==2.2.0
hf download starkAhmed43/leak-curber-kcat-starter --local-dir model
hf download starkAhmed43/leak-curber-kcat train.parquet val_inputs.parquet --repo-type dataset --local-dir data
cd model
python -m pip install -r requirements.txt
python predict.py --input example_inputs.parquet --output predictions.csv
```
The output contains one prediction for each input ID. Compare its format with
`example_predictions.csv`. Those example values are model predictions, not labels.
To retrain the baseline, run:
```bash
python train.py --train ../data/train.parquet --output weights/baseline.json
```
## Test your Docker image
Install Docker first. From the `model` directory, run:
```bash
mkdir -p output
docker build --platform linux/amd64 -t my-kcat-model .
docker run --rm --platform linux/amd64 --network none \
-v "$PWD/../data:/input:ro" -v "$PWD/output:/output" \
my-kcat-model python /app/predict.py \
--input /input/val_inputs.parquet --output /output/predictions.csv
```
Check that `output/predictions.csv` contains every input ID exactly once.
## Replace the baseline
Use any CPU-compatible model or library. Update `Dockerfile`, `requirements.txt`,
and `predict.py` as needed. Include your trained weights and all other assets.
Your image must meet these requirements:
| Item | Requirement |
|---|---|
| Platform | Linux x86-64 |
| Python | `/usr/local/bin/python` |
| Prediction script | `/app/predict.py` |
| Working directory | `/app` |
| Command | `python /app/predict.py --input INPUT --output OUTPUT` |
| Input | Parquet columns: `id`, `smiles`, `sequence` |
| Output | CSV columns: `id`, `prediction` |
| Target | **log10 kcat**, matching training column `log10_value` |
| Resources | 2 vCPU, 16 GB RAM, 10 minutes |
| Repository size | At most 4 GiB |
Return one finite number per input ID. Row order does not matter. Predictions
must have an absolute value no greater than 1,000,000.
Inference runs without internet, credentials, or host files. The evaluator starts
Python directly. Put required setup in your build or prediction code. Docker
entrypoints and shell startup hooks do not run. Use `/tmp` for temporary files.
Write predictions to the supplied output path.
## Upload and submit
Use a public model repository under your registered HF account:
```bash
hf auth login
hf upload YOUR_USERNAME/YOUR_MODEL . --repo-type model --no-private --exclude ".cache/**" "output/**" "predictions.csv"
```
If the repository already exists, check its visibility on HF. The upload flag
does not make an existing private repository public.
Open the [leaderboard](https://huggingface.co/spaces/starkAhmed43/leak-curber-leaderboard).
Sign in with your registered account. Enter your repository ID, revision, and model
name. The default revision is `main`. Each submission records a fixed commit, so
later edits do not change it.
Validation scores appear after evaluation. Use **My submissions** to check progress
and nominate a model for test evaluation. Best validation models and nominations
stay protected. Other successful archives expire after 7 days. You cannot nominate
an expired archive; submit the model again if needed.
For the course, submit and nominate before **November 6, 2026, at 23:59 IST**.
Each team has 2 submissions per day and 20 total per task. Only one evaluation per team can
be active. If you do not nominate a model, we select your best validation model.
Validation labels and all test data stay private. TAs publish test scores after
the deadline.
|