Skip to content

Fix Robometer RFM tokenizer and processor parity - #4

Merged
Hynek Kydlíček (hynky1999) merged 1 commit into
codex/sync-upstream-mainfrom
codex/fix-rfm-rope-parameters-default
Jun 2, 2026
Merged

Hynek Kydlíček (hynky1999) merged 1 commit into
codex/sync-upstream-mainfrom
codex/fix-rfm-rope-parameters-default

Conversation

@hynky1999

Copy link
Copy Markdown

Summary

Fix Robometer/RFM parity by:

  • using the canonical Qwen3-VL tokenizer plus Robometer special tokens before tokenizer caching
  • defaulting the RFM pooler step_tag_id to the official <|prog_token|> id 151673
  • using vLLM's cached processor loader instead of constructing Qwen3VLProcessor per request

This keeps the fix scoped to RFM/Robometer and removes the per-request processor reload that caused slow /pooling bursts.

Validation

  • uvx ruff check vllm/model_executor/models/config.py vllm/model_executor/models/rfm.py vllm/tokenizers/hf.py vllm/tokenizers/registry.py --ignore SIM910
  • git diff --check HEAD
  • Modal parity run against fresh official Robometer:
    • official run: ap-VMBp6Wp2qPMVte91vZKIqW
    • patched vLLM run: ap-zc4qWvAwmBLYz9byAaUdbp
    • progress max abs diff: 0.0018651148415796959
    • success max abs diff: 0.0029832334522436367
  • Modal H100 perf smoke:
    • run: ap-l1doOmDvRacBKeqDVDHDe7
    • warmup: 16.83s
    • post-warmup 4-request burst mean: 90ms
    • post-warmup max: 122ms

Focused pytest was not run locally because this checkout's .venv does not have pytest installed.

Duplicate Check

Checked open PRs in macrodata-labs/vllm for:

  • RFM Robometer special tokens
  • Robometer step_tag_id

No matching open PRs were found.

AI assistance was used to prepare this change.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3694502539

ℹ️ 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 (@codex) review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".

Comment thread vllm/tokenizers/registry.py Outdated
@@ -257,6 +269,11 @@ def cached_tokenizer_from_config(model_config: "ModelConfig", **kwargs):
if model_config.skip_tokenizer_init:
return None

if "RFM" in getattr(model_config.hf_config, "architectures", ()):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Handle null architectures before tokenizer caching

For models whose HF config sets architectures explicitly to None, this check raises TypeError: argument of type 'NoneType' is not iterable before any tokenizer can be loaded; getattr(..., ()) only covers the attribute being absent, not the common explicit-null case (there are existing vLLM test configs with architectures=None). This makes unrelated non-RFM models fail during cached_tokenizer_from_config; coerce with getattr(..., None) or () before the membership test.

Useful? React with 👍 / 👎.

if not uses_hma:
port: int
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(("0.0.0.0", 0))

port: int
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(("0.0.0.0", 0))

port: int
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(("0.0.0.0", 0))
@hynky1999
Hynek Kydlíček (hynky1999) force-pushed the codex/fix-rfm-rope-parameters-default branch from 3694502 to 7e0833b Compare June 2, 2026 13:08
@hynky1999
Hynek Kydlíček (hynky1999) changed the base branch from main to codex/sync-upstream-main June 2, 2026 13:08
Co-authored-by: OpenAI Codex

Signed-off-by: Hynek Kydlicek <kydlicek.hynek@gmail.com>
@hynky1999
Hynek Kydlíček (hynky1999) force-pushed the codex/fix-rfm-rope-parameters-default branch from 7e0833b to 7e9f476 Compare June 2, 2026 13:10
@hynky1999
Hynek Kydlíček (hynky1999) merged commit d3bb529 into codex/sync-upstream-main Jun 2, 2026
2 checks passed
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