Fix: mrope_position_delta missing in PD disaggregation decode mode for qwen-vl series#8219
Fix: mrope_position_delta missing in PD disaggregation decode mode for qwen-vl series#8219LeoGoTi wants to merge 4 commits intosgl-project:mainfrom
Conversation
There was a problem hiding this comment.
Summary of Changes
Hello @LeoGoTi, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request addresses a critical bug affecting Qwen-VL series models when operating in Paged-Disaggregation (PD) decode mode. The core issue was the unavailability of mrope_position_delta, a value essential for correctly computing subsequent token positions during the decode phase. The changes introduce the necessary plumbing to ensure this delta value is properly transferred from the prefill stage to the decode stage via the MetaDataBuffers and made accessible throughout the request and batch processing pipeline.
Highlights
- Data Structure Enhancement: Introduced
decode_mrope_position_deltafield toReq,ModelWorkerBatch, andForwardBatchdataclasses to carry the necessary position delta information for Qwen-VL models in decode mode. - Metadata Buffer Integration: Modified the
MetaDataBuffersclass to conditionally allocate, store, and retrieve themrope_position_deltatensor, enabling its transfer from prefill to decode stages when mROPE is enabled. - Positional Calculation Update: Updated the
_compute_mrope_positionsfunction to utilize the newly availabledecode_mrope_position_deltafor accurate positional calculations during the decode phase, specifically for Paged-Disaggregation (PD) setups, and added a fallback for warmup scenarios.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Code Review
This pull request fixes an issue where mrope_position_delta is missing in PD disaggregation decode mode for qwen-vl series models. The changes involve adding fields to dataclasses and using the delta values directly when available. A critical bug was identified in the m-rope position calculation, along with maintainability issues.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
eb1bd8b to
a060924
Compare
|
Closed this PR as another active PR is doing this more elegantly. |
This PR has been closed.
Check for this PR as it's handling this issue.
Motivation
This PR aims to fix a bug where
mrope_position_deltais missing on PD-disaggregation setup, for decode mode only.In brief:
mrope_positionsandmrope_position_delta.mrope_position_deltais necessary for generating subsequent positions during the decode stage, and is not accessible when PD disaggregation is deployed.Modifications
decode_mrope_position_deltato theReqandModelWorkerBatchdataclasses._compute_mrope_positionscalculation, if the delta values are available from thedecode_mrope_position_deltafield, we use it directly.mrope_position_deltainMetaDataBuffers, serving as a kv-meta part being transferred from prefill to decode. This is only valid when we registerMetaDataBuffersusingis_mrope_enabled=True.Checklist