- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 11k
 
[V0 deprecation] Remove _is_v1_supported_oracle #25673
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
Signed-off-by: Matthew Bonanni <mbonanni@redhat.com>
There was a problem hiding this 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 removes the _is_v1_supported_oracle function and its usage, which handled automatic fallbacks to the V0 engine. With this change, the V1 engine becomes the default unless explicitly disabled with VLLM_USE_V1=0. This aligns with the goal of deprecating V0. The changes are clean, and the corresponding test removal from the CI pipeline is appropriate. I find the implementation to be correct and have no further comments.
| # V1 supports N-gram, Medusa, and Eagle speculative decoding. | ||
| if self.speculative_config is not None: | ||
| # speculative_config could still be a dict at this point | ||
| if isinstance(self.speculative_config, dict): | ||
| method = self.speculative_config.get("method", None) | ||
| else: | ||
| method = self.speculative_config.method | ||
| 
               | 
          ||
| if method == "draft_model": | ||
| raise NotImplementedError( | ||
| "Draft model speculative decoding is not supported yet. " | ||
| "Please consider using other speculative decoding methods " | ||
| "such as ngram, medusa, eagle, or deepseek_mtp.") | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm, I think _is_v1_supported_oracle is still useful to exclude some unsupported arguments here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we could make an _is_config_supported_oracle, which doesn't dictate VLLM_USE_V1, it just throws errors if unsupported.
Alternatively, it might be better if this check happens in the speculative initialization rather than at an engine level?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we could make an _is_config_supported_oracle, which doesn't dictate VLLM_USE_V1, it just throws errors if unsupported.
Agree.
Alternatively, it might be better if this check happens in the speculative initialization rather than at an engine level?
In fact, these arguments are ever supported in v0 but haven't been implemented (some of them are deprecated) in v1. So I prefer to keep them here for clarity.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, it's good raise NotImplementedError error instead of removing the check totally.
Purpose
Remove
_is_v1_supported_oracleand corresponding testTest Plan
CI should suffice
Test Result
Essential Elements of an Effective PR Description Checklist
supported_models.mdandexamplesfor a new model.