Skip to content

Bugfix for ds-vl2#15894

Merged
iforgetmyname merged 3 commits intosgl-project:ifmn/eagle-dp-attnfrom
Hexq0210:bugfix-1226
Dec 26, 2025
Merged

Bugfix for ds-vl2#15894
iforgetmyname merged 3 commits intosgl-project:ifmn/eagle-dp-attnfrom
Hexq0210:bugfix-1226

Conversation

@Hexq0210
Copy link
Copy Markdown
Contributor

Motivation

Modifications

Accuracy Tests

Benchmarking and Profiling

Checklist

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @Hexq0210, 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 bug by enhancing both the model configuration and attention mechanisms for DeepSeekV2 models, alongside significant improvements to the SGLang router's load balancing logic. It refines how Rotary Positional Embeddings are applied in DeepSeekV2 on NPU backends and introduces more flexible, configurable round-robin strategies for distributing requests across prefill and decode servers, aiming to improve stability and control over request routing.

Highlights

  • DeepSeekV2 RoPE Handling: Introduced conditional logic for applying Rotary Positional Embeddings (RoPE) in DeepSeekV2 models on NPU backends, allowing for different implementations based on the use_deepseek_yarn_rope flag.
  • Model Configuration Update: Added a new configuration parameter, qk_nope_head_dim, to the model configuration for the MLA (Multi-Layer Attention) architecture, specifically within the _derive_model_shapes method.
  • Load Balancer Round-Robin Strategies: Implemented new round-robin mechanisms for selecting prefill and decode servers, as well as for generating bootstrap_room identifiers, configurable via environment variables (SGLANG_DP_ROUND_ROBIN and SGLANG_INSTANCE_ROUND_ROBIN).
  • Refactored Bootstrap Room Generation: Centralized the logic for generating bootstrap_room identifiers into a new method next_round_robin_num within the MiniLoadBalancer class, removing a standalone helper function.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

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

  1. 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.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request appears to introduce a bugfix related to RoPE embeddings for DeepSeek models and adds a round-robin load balancing mechanism to the mini_lb.py router for testing purposes. The changes in model_config.py, deepseek_v2_attention_mla_npu.py, and deepseek_v2.py seem correct and consistent. The modifications in mini_lb.py are also functionally sound, but I've identified a few areas for improvement to enhance code clarity and conciseness, such as removing a redundant initialization and simplifying increment operations.

Comment on lines +67 to +70
self.dp_attention_round_robin_size_dict = dict.fromkeys(self.prefill_urls, 0)
self.dp_attention_round_robin_size_dict = {
url: i * 20000 for i, url in enumerate(self.prefill_urls)
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

This initialization of self.dp_attention_round_robin_size_dict is redundant as it's immediately overwritten by the dictionary comprehension on the next lines. Removing the first line will make the code cleaner.

        self.dp_attention_round_robin_size_dict = {
            url: i * 20000 for i, url in enumerate(self.prefill_urls)
        }

Comment on lines +81 to +83
self.dp_attention_round_robin_size_dict[prefill_server] = (
self.dp_attention_round_robin_size_dict[prefill_server] + 1
)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For better readability and conciseness, you can use the += operator to increment the value.

            self.dp_attention_round_robin_size_dict[prefill_server] += 1

if is_instance_round_robin:
pidx = self.req_nums % len(self.prefill_urls)
didx = self.req_nums % len(self.decode_urls)
self.req_nums = self.req_nums + 1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For better readability and conciseness, you can use the += operator to increment self.req_nums.

            self.req_nums += 1

@Hexq0210 Hexq0210 changed the title Bugfix 1226 Bugfix for ds-vl2 Dec 26, 2025
@iforgetmyname iforgetmyname merged commit c11b43b into sgl-project:ifmn/eagle-dp-attn Dec 26, 2025
1 check passed
Liwansi added a commit to iforgetmyname/sglang that referenced this pull request Dec 29, 2025
…glang into eagle-sche

* 'ifmn/eagle-dp-attn' of https://github.com/sgl-project/sglang: (22 commits)
  dp scheduler enhance support with chunked prefill (sgl-project#16071)
  modify suffix decoding
  CI dependency update (sgl-project#16063)
  fix rotary_embedding init npu (sgl-project#16011)
  feat: bugfix and accuracy fix for stablelm2_1_6b (sgl-project#15932)
  Update model and feature support for Ascend NPU (sgl-project#16005)
  Bugfix for Llama4 (sgl-project#15929)
  Bugfix for ds-vl2 (sgl-project#15894)
  gme qwen vl runners fix (sgl-project#15899)
  add profiling in scheduler (sgl-project#15876)
  llama use triton rope op (sgl-project#15855)
  suffix decoding adapt npu
  suffix decoding adapt npu
  Add suffix decoding speculative algorithm from feature 13553
  cherry sgl-project#15434: qwen3 vl performance update
  cherry sgl-project#15597: fix Qwen3-VL-30B-A3B-Instruct accuracy loss
  [Schedule] bug fix for schedule enhancer (sgl-project#15834)
  minilb support roundrobin (sgl-project#15824)
  fix torchair compile issue
  cherry sgl-project#15187: lora fix
  ...

# Conflicts:
#	python/sglang/srt/managers/scheduler.py
#	python/sglang/srt/managers/scheduler_enhancer.py
JiaruiChang5268 pushed a commit to JiaruiChang5268/sglang that referenced this pull request Jan 12, 2026
JiaruiChang5268 pushed a commit to JiaruiChang5268/sglang that referenced this pull request Jan 13, 2026
JiaruiChang5268 pushed a commit to JiaruiChang5268/sglang that referenced this pull request Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants