Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 23 additions & 15 deletions .github/workflows/paper-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,14 @@ on:
branches:
- main
paths:
- 'paper/**/*.tex'
- 'paper/**/*.bib'
- 'paper/**/*.sty'
- 'paper/**/*.cls'
- 'paper/figures/**'
- 'paper/Makefile'
- 'paper/**'
- '.github/workflows/paper-build.yml'
push:
branches:
- main
paths:
- 'paper/**/*.tex'
- 'paper/**/*.bib'
- 'paper/**/*.sty'
- 'paper/**/*.cls'
- 'paper/figures/**'
- 'paper/Makefile'
- 'paper/**'
- '.github/workflows/paper-build.yml'
workflow_dispatch:

concurrency:
Expand Down Expand Up @@ -51,17 +43,33 @@ jobs:
latexmk \
bibtex2html

- name: Build PDF
- name: Build white paper PDF
working-directory: paper
run: make all

- name: Upload PDF artifact
- name: Build Mixture-of-Models paper PDF
working-directory: paper/mom
run: make all

- name: Verify Mixture-of-Models companion artifact
run: |
python -m pip install -r paper/mom/artifact/requirements.txt
make -C paper/mom artifact-check

- name: Upload white paper PDF artifact
uses: actions/upload-artifact@v4
with:
name: vllm-semantic-router-paper
name: vllm-semantic-router-white-paper
path: paper/white-paper.pdf
retention-days: 30

- name: Upload Mixture-of-Models paper PDF artifact
uses: actions/upload-artifact@v4
with:
name: vllm-semantic-router-mom-paper
path: paper/mom/main.pdf
retention-days: 30

- name: Save PR metadata
if: github.event_name == 'pull_request'
run: |
Expand Down
13 changes: 13 additions & 0 deletions paper/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Research paper sources

This directory contains the editable sources for the vLLM Semantic Router
research papers.

| Paper | Source entrypoint | Build | Published PDF |
| --- | --- | --- | --- |
| vLLM Semantic Router white paper | `main.tex` | `make -C paper` | `website/static/white-paper.pdf` |
| Mixture-of-Models position paper | `mom/main.tex` | `make -C paper/mom` | `website/static/mom-paper.pdf` |

The Mixture-of-Models source bundle also includes editable TikZ figures,
high-resolution scorecard inputs, the verified bibliography, and the proposed
portable bundle schemas and examples under `mom/artifact/`.
12 changes: 12 additions & 0 deletions paper/mom/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
*.aux
*.bbl
*.blg
*.fdb_latexmk
*.fls
*.lof
*.log
*.lot
*.out
*.synctex.gz
*.toc
tmp/
32 changes: 32 additions & 0 deletions paper/mom/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
MAIN := main
LATEX := pdflatex
BIBTEX := bibtex

.PHONY: all rebuild artifact-check deploy clean

all: $(MAIN).pdf

$(MAIN).pdf: $(MAIN).tex references.bib appendix_artifact_spec.tex math_commands.tex \
$(wildcard sections/*.tex) $(wildcard figures/*.tex) $(wildcard figures/*.png) \
$(wildcard *.sty) $(wildcard *.bst)
$(LATEX) -interaction=nonstopmode -halt-on-error $(MAIN).tex
$(BIBTEX) $(MAIN)
$(LATEX) -interaction=nonstopmode -halt-on-error $(MAIN).tex
$(LATEX) -interaction=nonstopmode -halt-on-error $(MAIN).tex
$(LATEX) -interaction=nonstopmode -halt-on-error $(MAIN).tex

rebuild: clean
$(MAKE) all

artifact-check:
python3 artifact/verify.py
python3 artifact/test_negative.py

deploy: $(MAIN).pdf
cp $(MAIN).pdf ../../website/static/mom-paper.pdf
@echo "=== Deployed: ../../website/static/mom-paper.pdf ==="

clean:
rm -f $(MAIN).pdf
rm -f $(MAIN).aux $(MAIN).bbl $(MAIN).blg $(MAIN).log $(MAIN).out
rm -f $(MAIN).toc $(MAIN).lof $(MAIN).lot $(MAIN).fls $(MAIN).fdb_latexmk
53 changes: 53 additions & 0 deletions paper/mom/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Mixture-of-Models Position Paper

This is the standalone source bundle for:

> **Mixture-of-Models: Conditional Computation Across Model Boundaries**

Author: vLLM Semantic Router Project.

The manuscript uses the official ICLR 2026 style in final mode for an arXiv
release; it is not represented as an ICLR submission. The paper defines
Mixture-of-Models as a portable conditional-computation model architecture over
heterogeneous model services and uses vLLM Semantic Router as an initial open
execution substrate for the design.

## Contents

- `main.tex`: manuscript entrypoint.
- `main.pdf`: locally generated delivery artifact (not committed).
- `sections/`: complete paper and reproducibility appendix.
- `figures/`: editable TikZ sources for the schematics and high-resolution
source scorecards used to construct the empirical figure.
- `references.bib`: programmatically verified bibliography.
- `artifact/`: proposed MoM bundle schema and source/IR/binding/lock examples.
- `iclr2026_conference.sty`, `iclr2026_conference.bst`: unmodified official
style assets required to compile independently.

## Build

With TeX Live and the standard Helvetica/Courier font packages installed:

```bash
make rebuild
```

The command removes stale outputs, then runs `pdflatex`, `bibtex`, and three
final `pdflatex` passes. It produces `main.pdf` without requiring network
access.

To rebuild the paper and update the website copy:

```bash
make rebuild deploy
```

The published PDF is tracked at `website/static/mom-paper.pdf` and served at
`/mom-paper`; the source tree remains the canonical, editable form.

To verify the closed MoM bundle example and its content identities:

```bash
python -m pip install -r artifact/requirements.txt
make artifact-check
```
108 changes: 108 additions & 0 deletions paper/mom/appendix_artifact_spec.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
\section{Proposed MoM Bundle Format}
\label{app:artifact-profile}
\begingroup
\footnotesize

This appendix instantiates the artifact contract in
Section~\ref{sec:artifact}. The format is a versioned proposal; a
machine-readable companion supplies schemas for the manifest, typed IR,
realization profile, binding, lock, evaluation protocol, evaluation
attestation, and run record, together with one verified example.

\subsection{Bundle contents and evidence boundary}

The manifest is an immutable index over the human model coordinate, behavior
variant, semantic digest, typed entrypoints, canonical specification, semantic
assets, contracts, evaluation protocols, and optional realization templates.
Canonical IR remains the sole semantic authority. Authoring source and model
cards are optional distribution objects rather than executable authorities.
Evaluation results, signatures, SBOMs, and build provenance are separate
digest-bound attestations: publishing new evidence does not change the model
being evaluated.

Every object descriptor contains a normalized relative path, media type,
SHA-256 digest, and byte size. Absolute, backslash, empty, dot, repeated,
traversal, and symlink paths are rejected before parsing. A production archive
importer must additionally bound expanded size, file count, nesting, and
compression ratio and reject hard links, devices, and other non-regular files.

The example exposes one accuracy-first model and two realization profiles:
ROCm plus cloud and CUDA plus cloud. Behavior variants belong to logical
identity; realization profiles contain endpoint-free compatibility
requirements and do not. A binding chooses one realization profile and supplies
concrete candidates.

\subsection{Four identities without circular hashes}

Let $C$ be canonical JSON and $H$ be SHA-256. Let $I$ be the fully defaulted and
typed IR, whose semantic assets are themselves content-addressed. Let $M$ be
the manifest, whose object descriptors commit to the distributed byte closure.
Let $N(B_s)$ be the normalized typed representation obtained from binding
source $B_s$, and let $L$ be the completed normalized lock. The four identities
are
\begin{equation}
\begin{aligned}
d_{\mathrm{semantic}} &= H(C(I)),&
d_{\mathrm{bundle}} &= H(C(M)),\\
d_{\mathrm{binding}} &= H(C(N(B_s))),&
d_{\mathrm{lock}} &= H(C(L)).
\end{aligned}
\label{eq:bundle-identities}
\end{equation}
No object stores its own digest. The manifest stores
$d_{\mathrm{semantic}}$; the binding stores semantic and bundle subjects; the
lock stores that subject and $d_{\mathrm{binding}}$; traces and attestations
then store all four. Formatting a YAML binding therefore cannot create a new
environment identity.

\subsection{Target compatibility and locking}

A logical constituent declares an identity and required or preferred
capabilities, including protocol, modality, interface features, input and
output limits, and data policy. A realization profile may additionally require
a wire transport, API adapter, serving runtime, leaf-artifact format,
accelerator API, vendor, architecture, or deployment driver. Environment policy may strengthen but
never relax semantic constraints. Resolution is thus the intersection of
logical admissibility, realization-profile requirements, and environment
policy.

The lock records the complete candidate inventory available to an execution,
not the one candidate selected by a particular request. For open artifacts it
may pin a content digest or repository revision together with tokenizer,
runtime image, protocol adapter, and accelerator evidence. For a closed service
it marks identity as observed-opaque, records an observation time and probe
digest, and makes no bitwise-reproducibility claim. Floating dependencies are
excluded from a production lock.

\subsection{Distribution closures and evaluation}

A thin export retains immutable external references; a materialized export
vendors leaf artifacts whose licenses permit redistribution; and a targeted
export additionally carries runtime objects for selected realization
profiles. Materialization fails for a closed provider rather than treating an
API alias as an offline model. A canonical directory and deterministic archive
define local exchange; OCI descriptors, manifests, and referrers provide a
natural registry transport and evidence attachment.

An evaluation protocol is part of the bundle because it defines an assessment
procedure. A result is an external attestation over semantic, bundle, binding,
lock, protocol, dataset, and harness digests, plus sampling and concurrency
settings. Serving and evaluation therefore consume the same resolved model
identity, while later measurements remain independently publishable.

\subsection{Conformance}

The companion verifier checks all supplied schemas; stable canonical
identities; traversal-safe paths, byte sizes, and digests; manifest/IR semantic
closure; behavior variants and realization profiles; graph reachability,
explicit contract branches, universal termination, and finite bounds; fail-closed hard
constraints; constituent identity and capability satisfaction; complete lock
inventory; pinned and observed-opaque evidence; secret non-inclusion; and run
and evaluation attribution to all four identities.

A complete cross-engine suite must additionally test deterministic compilation,
source-to-IR semantic preservation, operator capability negotiation, archive
hardening, license and extension trust, trace conformance, and portability
across at least two disclosed bindings while fixing semantic and bundle
digests.
\endgroup
Loading
Loading