kaggle-vllm
kaggle-vllm is a lightweight compatibility and runtime-delivery toolkit that
makes a validated upstream vLLM CUDA runtime usable on Kaggle's NVIDIA Tesla T4
environment without replacing Kaggle's preinstalled PyTorch/CUDA stack.
It validates the host and dependency baseline, resolves an immutable native
wheel, verifies its SHA256, stages it with pip --target --no-deps, creates a
separate dependency overlay and exposes small wrappers for inference,
persistent sharded state and upstream vLLM's OpenAI-compatible server.
It is not a vLLM fork, inference implementation, official Kaggle product or official vLLM distribution. CUDA kernels, scheduling, tensor parallelism, checkpoint persistence and serving are upstream vLLM capabilities.
Current public PyPI SDK: 0.1.2. Repository release candidate: 0.2.0. Fresh
0.2.0.dev0dual-T4 acceptance and controlled benchmark evidence passed on 2026-08-30. Acceptance of the final package published askaggle-vllm==0.2.0remains a post-publication gate.
Validated profile
| Dimension | Recorded value |
|---|---|
| Platform | Kaggle Notebook, Linux/glibc 2.35 |
| Python / ABI | CPython 3.12.13 / cp312 |
| PyTorch / CUDA ABI | 2.10.0+cu128 / 12.8 |
| CUDA toolkit | 12.8.93 |
| Driver | 580.159.04; driver-reported CUDA maximum 13.0 |
| GPUs | 2 × Tesla T4, 15,360 MiB, compute capability 7.5 / SM75 |
| NCCL / CMake / GCC | 2.27.5 / 3.31.10 / 11.4.0 |
| Upstream source | vLLM v0.18.1, a26e8dc7ff2111a005144d775ecf9cebf56c45b2 |
The wheel distribution version is
0.18.2.dev0+ga26e8dc7f.d20260822.cu128; that generated version does not mean
the source was upstream v0.18.2. See compatibility and
provenance.
Quick start
Install the released lightweight SDK on Kaggle:
python -m pip install "kaggle-vllm[hub]==0.1.2"
kaggle-vllm bootstrap --strict --dry-run
kaggle-vllm bootstrap --strict
eval "$(kaggle-vllm env)"
kaggle-vllm doctor --strict
Importing kaggle_vllm has no download, installation or activation side
effect. Bootstrap is explicit. It never installs vLLM, Torch or CUDA as normal
SDK dependencies.
Run inference through the thin wrapper:
from kaggle_vllm import KaggleLLM
from vllm import SamplingParams
llm = KaggleLLM(
model="facebook/opt-125m",
tensor_parallel_size=2,
max_model_len=512,
gpu_memory_utilization=0.40,
)
outputs = llm.generate(
["NCCL enables"], SamplingParams(temperature=0.0, max_tokens=32)
)
The defaults dtype="float16", enforce_eager=True and
disable_custom_all_reduce=True are compatibility-first settings observed to
work on this profile, not universal performance recommendations.
Serve an upstream OpenAI-compatible endpoint on notebook-local loopback:
kaggle-vllm serve /kaggle/input/qwen2.5-3b-t4x2-sharded \
--served-model-name qwen2.5-3b-kaggle-t4x2 \
--load-format sharded_state \
--tensor-parallel-size 2 \
--max-model-len 2048 \
--gpu-memory-utilization 0.70
Large artifacts
Large files never belong in this Git history:
- native CUDA wheel: Hugging Face binaries, immutable revision
f6b4f10de54924ed6fe9e28cceab84eca7276ab6, SHA2565a9bd710b8a19fdd23abb3442baad892da977466f996334decd533a225f5fd0c; - Qwen TP=2
sharded_state: Hugging Face model repository, archive SHA25612dcb264cb74e6fa2947b5f1fbebfa14562afa2292387f49e447b3290bc0b83b.
The Qwen artifact is a vLLM-native, rank-specific TP=2 checkpoint—not a generic Transformers checkpoint. It remains under the Qwen Research License, separate from this SDK's Apache-2.0 license. TP=1, TP>2, topology-independent loading, multi-node use and training are unvalidated or out of scope.
What the evidence proves
Historical evidence proves native imports, raw two-rank NCCL, single-T4 and
dual-T4 OPT-125M inference, Qwen2.5-3B FP16 TP=2 save/reload and local OpenAI
models/completions/chat endpoints on the exact profile. On SM75, vLLM selected
TRITON_ATTN; FlashAttention 2 and SymmMem optimizations were unavailable, but
ordinary NCCL TP=2 still succeeded.
The controlled 2026-08-30 OPT-125M benchmark found TP=1 faster than TP=2 for this tiny model because communication overhead dominated. TP=2 remains validated for capacity, NCCL execution and topology compatibility, but it is not a universal performance improvement. Other Kaggle GPU types, other Python ABIs for the native wheel, multi-node operation, training and production readiness are not claimed.
Documentation
Start with the documentation index:
- installation and bootstrap
- architecture and design rationale
- compatibility contract
- doctor and dependency baseline
- native runtime and build provenance
- multi-GPU/NCCL and persistent sharded state
- OpenAI-compatible serving
- benchmarking and testing
- troubleshooting, security, and release process
Development
CPU development does not require vLLM or a GPU:
python -m pip install -e ".[test]"
pytest -q
ruff check src tests examples scripts
python -m build
python -m twine check dist/*
See CONTRIBUTING.md. GPU acceptance is separate from CPU CI.
License and attribution
The kaggle-vllm SDK is Apache-2.0. Upstream vLLM is an independent Apache-2.0
project. Qwen model materials are governed by their included Qwen Research
License. Project names and trademarks do not imply endorsement.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kaggle_vllm-0.2.0.tar.gz.
File metadata
- Download URL: kaggle_vllm-0.2.0.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48ed97da07e54119939053e38f4e87900cf79316711d7b4558aed8122a66e3aa
|
|
| MD5 |
896917f1c5da71c38a5c026c40bd1f91
|
|
| BLAKE2b-256 |
18a1b76b3b107b09f220e9272d580a1708a93f8c7c3dc33625a103e92980fe7d
|
Provenance
The following attestation bundles were made for kaggle_vllm-0.2.0.tar.gz:
Publisher:
publish-pypi.yml on kaggle-vllm/kaggle-vllm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaggle_vllm-0.2.0.tar.gz -
Subject digest:
48ed97da07e54119939053e38f4e87900cf79316711d7b4558aed8122a66e3aa - Sigstore transparency entry: 2662364732
- Sigstore integration time:
-
Permalink:
kaggle-vllm/kaggle-vllm@020fca67ff197980886c3e725c5c60a6e1478c7c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kaggle-vllm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@020fca67ff197980886c3e725c5c60a6e1478c7c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file kaggle_vllm-0.2.0-py3-none-any.whl.
File metadata
- Download URL: kaggle_vllm-0.2.0-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3dce393c9e0bd43b9ba29a29ae14f9467857e5eea61390d41f512a52911fbbe
|
|
| MD5 |
a9f660b56920f101d59b30d523591630
|
|
| BLAKE2b-256 |
59858dba427fd5e8ae6b75927b4231c3a9dd4449c04f9e9206e1577d85214356
|
Provenance
The following attestation bundles were made for kaggle_vllm-0.2.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on kaggle-vllm/kaggle-vllm
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kaggle_vllm-0.2.0-py3-none-any.whl -
Subject digest:
f3dce393c9e0bd43b9ba29a29ae14f9467857e5eea61390d41f512a52911fbbe - Sigstore transparency entry: 2662364757
- Sigstore integration time:
-
Permalink:
kaggle-vllm/kaggle-vllm@020fca67ff197980886c3e725c5c60a6e1478c7c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kaggle-vllm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@020fca67ff197980886c3e725c5c60a6e1478c7c -
Trigger Event:
workflow_dispatch
-
Statement type: