expert parallelism config in base rollout#1099
Conversation
Summary of ChangesHello @khatwanimohit, 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 enhances the vLLM integration by introducing comprehensive support for expert parallelism, which is vital for efficiently deploying Mixture-of-Experts models. Additionally, it adds a new feature for controlling text generation by allowing users to define custom stop strings. These changes provide greater flexibility and control over vLLM deployments within the system. Highlights
🧠 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. Changelog
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Code Review
This pull request introduces support for expert parallelism and custom stop strings in the vLLM-based rollout, which is a great enhancement for handling Mixture-of-Experts models and controlling generation. The changes are well-structured, adding new configuration options to RolloutConfig and VllmConfig and correctly plumbing them through to the vLLM sampler.
My main feedback is to add validation for the new parallelism configurations in vllm_sampler.py to prevent potential runtime errors from misconfiguration and to ensure that the parallelism settings are consistent with the available hardware. I've added a specific comment with a code suggestion to address this.
d8c26be to
4b6f3b4
Compare
4b6f3b4 to
2bf2b79
Compare
2bf2b79 to
4e936db
Compare
4e936db to
58de033
Compare
28a475a to
09bee87
Compare
09bee87 to
6945926
Compare
6945926 to
f330e5c
Compare
f330e5c to
b114d23
Compare
wang2yn84
left a comment
There was a problem hiding this comment.
Can you add or modify a test to make sure the path is plumbed through?
tunix/generate/vllm_sampler.py
Outdated
| """Setup vllm config from Tunix Vllm config.""" | ||
| args = config._processed_engine_kwargs.copy() | ||
|
|
||
| def _configure_sharding( |
There was a problem hiding this comment.
Thank you for adding this! Can you move it to utils file and make the function signature generic so that other samplers can share this in the future?
There was a problem hiding this comment.
moved it to utils.resolve_parallelism_sizes
b114d23 to
a512490
Compare
wang2yn84
left a comment
There was a problem hiding this comment.
Thank you very much! Just one minor question.
| device_indexes = config.mesh.device_ids.flatten().tolist() | ||
| args["additional_config"]["sharding"] = { | ||
| "sharding_strategy": { | ||
| "expert_parallelism": ep, |
There was a problem hiding this comment.
Oh why tp and dp are in the top level but ep is nested in additional_config? Is there any refactor needed on the vllm side?
expert-parallel sharding for Mixture-of-Experts (MoE) models.
expert parallelism is enabled.
additional_config.
enabled when stop strings are set
Checklist