Skip to content

Conversation

@yurekami
Copy link

@yurekami yurekami commented Jan 2, 2026

Summary

Fixes #175

When using Ulysses sequence parallelism, max_num_seqs must be divisible by ulysses_sequence_parallel_size. Previously, using a non-divisible value (e.g., --max-num-seqs=37 with --ulysses-sequence-parallel-size=4) would cause crashes or produce incorrect results.

Changes

  • Add _validate_ulysses_config() method in VllmConfigPatch that validates divisibility
  • Hook validation into VllmConfig.__post_init__
  • Provide clear error message with suggestions for valid values
  • Add comprehensive unit tests

Error Message Example

When a user tries to start with --max-num-seqs=37 --ulysses-sequence-parallel-size=4:

ValueError: When using Ulysses sequence parallelism (ulysses_sequence_parallel_size=4), 
--max-num-seqs (37) must be divisible by ulysses_sequence_parallel_size (4). 
Please set --max-num-seqs to a multiple of 4, e.g., --max-num-seqs=36 or --max-num-seqs=40.

Test plan

  • Added unit tests covering:
    • Non-divisible values raise ValueError
    • Divisible values pass validation
    • sp_size=1 skips validation
    • Various edge cases
  • Syntax validation passes

🤖 Generated with Claude Code

Fixes snowflakedb#175

When using Ulysses sequence parallelism, max_num_seqs must be divisible by
ulysses_sequence_parallel_size. Previously, using a non-divisible value
(e.g., --max-num-seqs=37 with --ulysses-sequence-parallel-size=4) would
cause crashes or produce incorrect results.

This change adds validation in VllmConfigPatch.__post_init__ that:
- Checks if max_num_seqs is divisible by ulysses_sequence_parallel_size
- Raises a clear ValueError with suggestions for valid values
- Only validates when ulysses_sequence_parallel_size > 1

Also adds comprehensive unit tests for the validation logic.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ulysses sequence parallelism crashes when --max-num-seqs is not divisible by sp_size

1 participant