Add MRoPE operator stack and seed Qwen2.5‑VL integration #3377
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.