# Image `laguna-vllm-v0.19.0-overlay.tar.gz` is `vllm/vllm-openai:v0.19.0` plus the Laguna model file (`vllm.model_executor.models.laguna`), the `poolside_v1` tool parser (`vllm.tool_parsers.poolside_v1_tool_parser`), the `poolside_v1` reasoning parser (`vllm.reasoning.poolside_v1_reasoning_parser`), and `LagunaConfig` (`vllm.transformers_utils.configs.laguna`). No CUDA kernels are rebuilt — the base image's SM90/SM90A binaries are used unchanged. ## Load ```bash gunzip -c laguna-vllm-v0.19.0-overlay.tar.gz | docker load ``` The loaded image is tagged `vllm-laguna:v0.19.0-overlay-port`. ## Integrity check ```bash sha256sum laguna-vllm-v0.19.0-overlay.tar.gz # expected: 4266d7fc0fda731e774beeb932493cc4f2de1a9c6030babd32eae30f7dc60b3a ``` ## What's inside - Base: `vllm/vllm-openai:v0.19.0` (PyTorch, CUDA, Triton, FlashAttention, compressed-tensors, etc.) - Added Python modules: - `vllm/model_executor/models/laguna.py` — `LagunaForCausalLM` - `vllm/tool_parsers/poolside_v1_tool_parser.py` — `PoolsideV1ToolParser` - `vllm/reasoning/poolside_v1_reasoning_parser.py` — `PoolsideV1ReasoningParser` - `vllm/transformers_utils/configs/laguna.py` — `LagunaConfig` - Registry patches: `LagunaForCausalLM` added to the model registry; `"poolside_v1"` added to the tool-parser and reasoning-parser lazy-register dicts; `"laguna"` added to the config registry (so checkpoints don't need a remote `configuration_laguna.py` and can be served without `--trust-remote-code`). - `transformers_utils/config.py::patch_rope_parameters` is patched to leave a nested `rope_parameters` dict (e.g. `{full_attention: {...}, sliding_attention: {...}}`) intact instead of overwriting it with the flat `rope_scaling`. Without this, interleaved-attention configs raise `KeyError 'full_attention'` at the per-layer attention site on transformers <5. - Bundled convenience scripts: - `/usr/local/bin/serve-laguna.sh` — Laguna-M serve wrapper (TP=4) - `/usr/local/bin/run_bench_multiple.py` — multi-config benchmark runner ## Entrypoint Default entrypoint is `vllm serve`, same as the base image. The first positional argument is the model path (mount a checkpoint dir into `/model`).