Skip to content

[Feature] use --eplb_config to set eplb param - #20562

Merged
simon-mo merged 5 commits into
vllm-project:mainfrom
lengrongfu:feat/add-eplb-config
Aug 20, 2025
Merged

simon-mo merged 5 commits into
vllm-project:mainfrom
lengrongfu:feat/add-eplb-config

Conversation

@lengrongfu

@lengrongfu lengrongfu commented Jul 7, 2025 •

Copy link
Copy Markdown
Member

Essential Elements of an Effective PR Description Checklist

$ vllm -m vllm.entrypoints.cli.main serve .....  --eplb-config \{\"enable_eplb\":True\}
  • The test results, such as pasting the results comparison before and after, or e2e results
  • (Optional) The necessary documentation update, such as updating supported_models.md and examples for a new model.

Purpose

Test Plan

Test Result

(Optional) Documentation Update

@github-actions

github-actions Bot commented Jul 7, 2025

Copy link
Copy Markdown

👋 Hi! Thank you for contributing to the vLLM project.

💬 Join our developer Slack at https://slack.vllm.ai to discuss your PR in #pr-reviews, coordinate on features in #feat- channels, or join special interest groups in #sig- channels.

Just a reminder: PRs would not trigger full CI run by default. Instead, it would only run fastcheck CI which starts running only a small and essential subset of CI tests to quickly catch errors. You can run other CI tests on top of those by going to your fastcheck build on Buildkite UI (linked in the PR checks section) and unblock them. If you do not have permission to unblock, ping simon-mo or khluu to add you in our Buildkite org.

Once the PR is approved and ready to go, your PR reviewer(s) can run CI to test the changes comprehensively before merging.

To run CI, PR reviewers can either: Add ready label to the PR or enable auto-merge.

🚀

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

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.

Summary of Changes

Hello @lengrongfu, 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 significantly refactors how Expert Parallelism Load Balancing (EPLB) parameters are managed and passed within the vLLM system. The core change involves introducing a dedicated EPConfig dataclass to encapsulate all EPLB-related settings, moving away from disparate individual parameters. This not only improves the internal organization of the configuration but also streamlines the command-line interface by consolidating multiple arguments into a single, JSON-configurable --ep-config option. The necessary code adaptations have been made across the project to utilize this new, more structured approach.

Highlights

  • Configuration Refactoring: All Expert Parallelism Load Balancing (EPLB) related parameters have been consolidated into a new EPConfig dataclass. This centralizes the configuration for features like enable_eplb, lb_window_size, lb_step_interval, and lb_log_balancedness.
  • Simplified CLI Interface: The multiple individual command-line arguments for EPLB parameters (e.g., --enable-eplb, --eplb-window-size) have been replaced with a single --ep-config argument. This new argument accepts a JSON string, allowing for more flexible and structured configuration directly from the CLI.
  • Codebase Adaptation: Various parts of the vLLM codebase, including ParallelConfig, EngineArgs, eplb_state.py, deepseek_v2.py, and gpu_model_runner.py, have been updated to reflect the new nested ep_config structure, ensuring seamless integration and continued functionality.
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

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

@mergify mergify Bot added deepseek Related to DeepSeek models v1 labels Jul 7, 2025

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

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.

Code Review

This pull request is a great step towards better code organization by refactoring the EPLB parameters into a dedicated EPConfig dataclass. The implementation is clean and consistent across the codebase. I've identified one critical issue with the programmatic initialization of ep_config that would cause a runtime failure. The fix is straightforward and included in my comment. Once that's addressed, this PR will be in excellent shape.

Comment thread vllm/engine/arg_utils.py Resolved
@simon-mo

simon-mo commented Jul 7, 2025

Copy link
Copy Markdown
Collaborator

@abmfy please review when you get the chance, thanks!

@lengrongfu
lengrongfu force-pushed the feat/add-eplb-config branch 2 times, most recently from e059426 to c775cd2 Compare July 8, 2025 07:47
@lengrongfu lengrongfu changed the title [Misc] use --ep_config to set eplb param [Feature] use --ep_config to set eplb param Jul 18, 2025
@mergify

mergify Bot commented Jul 18, 2025

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @lengrongfu.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Jul 18, 2025

@hmellor hmellor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I've not left a full review but I have a few questions/suggestions.

The main question is why not add more fields to ParallelConfig?

Comment thread vllm/config.py Resolved
Comment thread vllm/config.py Resolved
@lengrongfu

Copy link
Copy Markdown
Member Author

I've not left a full review but I have a few questions/suggestions.

The main question is why not add more fields to ParallelConfig?

This is a good suggestion, and it would be better to implement it in ParallelConfig.

@lengrongfu
lengrongfu force-pushed the feat/add-eplb-config branch from c775cd2 to b525e3f Compare July 21, 2025 09:18
@mergify mergify Bot removed the needs-rebase label Jul 21, 2025
@lengrongfu

Copy link
Copy Markdown
Member Author

@hmellor please take a look, will done modify based on suggest.

@mergify

mergify Bot commented Aug 12, 2025

Copy link
Copy Markdown
Contributor

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @lengrongfu.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase label Aug 12, 2025
@abmfy

abmfy commented Aug 12, 2025

Copy link
Copy Markdown
Member

Hello, thank you for your contribution! Is there anything currently preventing this PR from being merged?

@hmellor

hmellor commented Aug 12, 2025

Copy link
Copy Markdown
Member

Merge conflict is the immediate issue.

It's likely that merging from main will fix many of the failing tests too.

@hmellor

hmellor commented Aug 14, 2025

Copy link
Copy Markdown
Member

@lengrongfu the CI should be fixed now so if you merge from main we can enable auto-merge

@lengrongfu
lengrongfu force-pushed the feat/add-eplb-config branch from 5abf7b3 to ca4b216 Compare August 15, 2025 02:39
@mergify mergify Bot removed the needs-rebase label Aug 15, 2025
@lengrongfu
lengrongfu force-pushed the feat/add-eplb-config branch 2 times, most recently from 8765fd3 to 1a35c0e Compare August 15, 2025 03:28
@hmellor

hmellor commented Aug 15, 2025

Copy link
Copy Markdown
Member

Failures are related. Tests are reading the old values which now default to None

@hmellor
hmellor enabled auto-merge (squash) August 15, 2025 09:57

@yewentao256 yewentao256 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good to me, thanks for the work!

@hmellor

hmellor commented Aug 15, 2025

Copy link
Copy Markdown
Member

Unfortunately the V1 test failure is relevant. I'm no longer available to fix it.

lengrongfu and others added 4 commits August 15, 2025 22:45
Signed-off-by: rongfu.leng <rongfu.leng@daocloud.io>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Signed-off-by: rongfu.leng <lenronfu@gmail.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
auto-merge was automatically disabled August 15, 2025 15:13

Head branch was pushed to by a user without write access

@lengrongfu

Copy link
Copy Markdown
Member Author

Unfortunately the V1 test failure is relevant. I'm no longer available to fix it.

Thanks you working, I will fix other issues.

Signed-off-by: rongfu.leng <lenronfu@gmail.com>
@lengrongfu

Copy link
Copy Markdown
Member Author

@hmellor @yewentao256 all ci running success, please merge pr.

@david6666666

Copy link
Copy Markdown
Contributor

Waiting for your PR to be merged, I will rebase on #22179

Comment thread vllm/engine/arg_utils.py Resolved
Comment thread vllm/config/parallel.py Resolved
@abmfy

abmfy commented Sep 4, 2025

Copy link
Copy Markdown
Member

Hi @lengrongfu, thank you again for your contribution! Just wanted to check in on the update for this doc:

Thank you for your contribution! As a final step, could you please update the corresponding documentation at expert_parallel_deployment.md? This will help users migrate smoothly to the new CLI interface.

@lengrongfu

Copy link
Copy Markdown
Member Author

Hi @lengrongfu, thank you again for your contribution! Just wanted to check in on the update for this doc:

Thank you for your contribution! As a final step, could you please update the corresponding documentation at expert_parallel_deployment.md? This will help users migrate smoothly to the new CLI interface.

I will commit a pr in today. thanks tips ~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/build deepseek Related to DeepSeek models documentation Improvements or additions to documentation frontend llama Related to Llama models multi-modality Related to multi-modality (#4194) performance Performance-related issues qwen Related to Qwen models ready ONLY add when PR is ready to merge/full CI is needed speculative-decoding structured-output v1

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

8 participants