Add MRoPE operator stack and seed Qwen2.5‑VL integration #3377
+2,607
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Description (talking it through)
Dropped a new op/mrope.py with the full multimodal rotary toolchain: cached inverse‑freq tables, tensor‑expr cos/sin kernels that run on the Unity TVM wheel, and the HuggingFace‑style get_mrope_position_ids.
Exported the helpers via mlc_llm.op and added a focused pytest (tests/python/op/test_mrope.py) so we can cross‑check the Relax kernels against NumPy and HF’s 3D position map logic.
Added python/mlc_llm/model/qwen2_5_vl/ as the stage‑1 model skeleton that already calls the new rotary path; runtime/package init got defensive tweaks (init.py, base.py) so Unity runtimes without register_func/MLC DLLs don’t explode during tests.