A community-maintained collection of machine learning coding challenges.
Each problem lives in its own folder (questions/<id>_<slug>/
) so contributors can edit Markdown, Python, and JSON files naturally.
A build script assembles everything into a single JSON file used by deep-ml.com.
.
├─ questions/
│ ├─ _template/ ← Copy this to start a new problem
│ ├─ 101_grpo_objective/
│ │ ├─ meta.json
│ │ ├─ description.md
│ │ ├─ learn.md
│ │ ├─ starter_code.py
│ │ ├─ solution.py
│ │ ├─ example.json
│ │ ├─ tests.json
│ │ ├─ tinygrad/
│ │ │ ├─ starter_code.py
│ │ │ ├─ solution.py
│ │ │ └─ tests.json
│ │ └─ pytorch/
│ │ ├─ starter_code.py
│ │ ├─ solution.py
│ │ └─ tests.json
│ └─ ...
│
├─ schemas/
│ └─ question.schema.json ← JSON-Schema used for validation
│
├─ utils/
│ ├─ build_bundle.py ← folder → build/*.json bundler
│ ├─ validate_questions.py ← schema validator
│ └─ make_question_template.py← template folder generator
│
└─ .github/workflows/
└─ format_questions.yml ← GitHub Action: validate on PR/push
- Copy the template
cp -r questions/_template questions/123_my_problem
- Fill in the fields
meta.json
: question ID, title, category, difficulty, etc.description.md
: problem statementlearn.md
: explanation and backgroundstarter_code.py
,solution.py
: reference implementationexample.json
: input/output + reasoningtests.json
: list of{ "test": "...", "expected_output": "..." }
- Optional language support under
tinygrad/
andpytorch/
- Run local validation
python utils/build_bundle.py && python utils/validate_questions.py
- Open a Pull Request
CI will build and validate your changes automatically.
The schema ensures:
- Required fields are present
- Optional
tinygrad_*
,pytorch_*
are allowed - No invalid or extra fields
Each question must pass validation before it can be merged.
Located in .github/workflows/format_questions.yml
, this runs:
build_bundle.py
– compiles all question foldersvalidate_questions.py
– checks for schema and structure errors
CI fails if anything is invalid.
All problems are for educational use only.
See LICENSE
file for full terms.
Open an issue or visit our Discord: https://discord.gg/JwMePfMZAV
for current PRs I will still work on making the other parts of the problem like i did before but it would be faster if you added the needed info