Skip to content

vela: serve the 0.8B hybrid through the reference worker - #174

Open
MrDongsls wants to merge 4 commits into
InferMatrixLab:mainfrom
MrDongsls:model/vela2-hybrid-reference-serving
Open

MrDongsls wants to merge 4 commits into
InferMatrixLab:mainfrom
MrDongsls:model/vela2-hybrid-reference-serving

Conversation

@MrDongsls

@MrDongsls MrDongsls commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Stacked on #151 — review the last commit only (the diff shows #151's changes too; this PR adds only the 0.8B hybrid member).

Required human contributor answers

  1. What outcome are you trying to achieve?

    Serve the second Vela 2.0 member (the 0.8B hybrid, vllm-sr/Vela-2.0-0.8B @ 326b01d8) through the Python reference worker, sharing the wire layer the 0.3B established in Vela: serve Vela 2.0 0.3B through a Python reference worker #151. (Source: issue [New Model]: Support the Vela 2.0 series #137.)

  2. What is the highest-leverage variable for that outcome?

    A second pinned member on the same wire layer validates that the Vela: serve Vela 2.0 0.3B through a Python reference worker #151 contract generalizes across the family (different heads, different input window, extra span_heads field) without a per-model fork of the transport code.

  3. How will this work move that variable rather than create busywork?

    One new file (hybrid.py) plus member-awareness in postprocess.py and the worker; the wire layer, transport discipline, compare tool, and recipe are reused unchanged from Vela: serve Vela 2.0 0.3B through a Python reference worker #151.

  4. Who is the customer or user, and what do they actually need?

    System1-Omni users routing safety/PII/hallucination decisions through /v1/systemone who need the 0.8B multilingual span/set capabilities at the 16,384-token window; the community contributors tracking model support in [Tracking]: Model support status #83.

Is a PR needed at all? Yes. (Source: issue #137; user-approved.)

For a bug fix: N/A.

Purpose

Add the 0.8B hybrid member to the Vela 2.0 reference worker family. hybrid.py pins the vela2-decoder checkpoint with a 10-file SHA-256 gate. Response finishing becomes member-aware (span_heads emitted with spans). The worker detects the member from config.json model_type. compare_reference.py serves either member.

Test Plan

System1-Omni Version / Commit: model/vela2-hybrid-reference-serving @ 78fe143

Check Command Result
CPU contract tests pytest tests/vela -q 135 passed
0.8B nine-case parity compare_reference.py --model vela-2.0-0.8b 9 PASS
0.3B nine-case regression compare_reference.py --model vela-2.0-0.3b 9 PASS
Docs mkdocs build --strict exit 0

Test Result

All passed. GPU bf16 serving unverified.

Demo / evidence

Author-run, x86 WSL2, CPU FP32, no fla:

  • Nine-case parity vs pinned upstream server: exact match incl. key order (4× 200 byte-equal, 5× agreed rejections).
  • 0.3B nine-case regression: unchanged.
  • Live smoke: span_heads: {pii: router, halu: router}, per-member thresholds {pii: 0.2914, halu: 0.35}, usage: {input_tokens: 1041}.
  • Frontend byte-forwarding: cmp byte-identical.
  • Frozen oracles cover router-dispatch spans only (broad head exercised by warmup, not frozen).

Not measured: latency, throughput, GPU parity.

Self-review

  • Full diff reviewed.
  • Architecture and scope checked.
  • Checks run and reported above.
  • Description and claims match implementation.

Second member of the Vela 2.0 family: a pinned vela2-decoder executor
(hybrid.py) with a 10-file gate (shard index and the side-loaded broad
head hashed; the 2.02 GB shard by exact size), member-aware response
finishing (span_heads with spans, keyed by span question ids), worker
member detection from config.json model_type, and the per-member
/v1/models entry. compare_reference.py serves either member; the hybrid
oracle fixtures export under oracle-hybrid-.

Evidence (author-run, x86 WSL2, CPU FP32, no fla — the runtime's CPU
path never dispatches to it): nine-case parity vs the pinned upstream
server exact-match (four 200s incl. key order, five agreed rejections
incl. the 16,384-window 413); 0.3B nine-case regression; live worker
smoke with span_heads and per-member thresholds; byte-identical Rust
frontend forwarding; 133 CPU contract tests.
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-25T06:01:53.751051Z 683c7c7 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

…reference-serving

# Conflicts:
#	README.md
#	docs/supported-models.md
#	recipe/README.md
@hsliuustc0106

Copy link
Copy Markdown
Contributor

fix conflicts

…ember docs

Keep the Clef and pplx-decider rows from main alongside the Vela 0.8B
hybrid additions; the package-gate descriptions now carry the
directory-symlink refusal from main.
@MrDongsls

Copy link
Copy Markdown
Collaborator Author

@hsliuustc0106 Conflict fixed in f77b9fa.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants