Thanks for your interest in contributing. This document covers how to get started, what areas are open for extension, and what to verify before opening a pull request.
- Fork the repo and create a branch from
main. - Make your changes inside the relevant workload directory (
llm-inference/orjupyter-notebook/). - Build and test your image locally before opening a PR.
- Open a pull request against
mainwith a clear description of what and why.
For new workload types or significant changes, open an issue first to discuss the approach.
| Area | Examples |
|---|---|
| New workload types | Training jobs, embedding benchmarks, diffusion model inference, ASR |
| AMD ROCm support | ROCm-compatible Dockerfiles alongside the existing NVIDIA images |
| Benchmark metrics | Extend benchmark.py with additional vLLM metrics or cost models |
| Dataset formats | Support for dataset formats beyond ShareGPT (e.g. OASST, Dolly) |
| Jupyter notebooks | New GPU profiling or MLPerf benchmark notebooks |
| Hardware pricing | Extend hardware_pricing.json with additional GPU types and cloud regions |
- One workload per directory. Each workload is self-contained with its own
Dockerfile,requirements.txt, and entrypoint. - No bundled datasets. Workloads must not download or embed datasets automatically. Use
--dataset-pathand require the operator to supply the file. - Permissive licences only. New dependencies must be Apache-2.0, MIT, or BSD. No GPL, AGPL, or packages with contested provenance without prior discussion. Update the NOTICE file if you add a package with notice obligations.
- Keep images lean. Do not add packages to
requirements.txtthat are already in the base image (vllm/vllm-openaifor llm-inference).
# 1. Build the image locally
cd llm-inference # or jupyter-notebook
docker build -t llminference:dev .
# 2. Run a smoke test (requires a GPU node with Docker)
docker run --gpus all --rm \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-v /tmp/results:/results \
-v /path/to/dataset.json:/path/to/dataset.json \
--entrypoint python3 llminference:dev \
/llm-inference/benchmark.py \
--model TinyLlama/TinyLlama-1.1B-Chat-v1.0 \
--dataset-path /path/to/dataset.json \
--concurrencies 1 \
--output_data_path /results/smoke
# 3. Confirm BENCH_RESULT lines are printed and results written to /tmp/resultsCI runs a lint and image build check on every PR. PRs that fail to build will not be merged.
Open a GitHub issue with: steps to reproduce, expected vs actual behaviour, relevant log output, GPU type, and image tag used.
Do not open a public issue for security vulnerabilities. Email muraharirao@corespan.ai directly.