Skip to content

Conversation

HollowMan6
Copy link
Contributor

What does this PR do?

Add concise overview of what this PR aims to achieve or accomplish. Reference related GitHub issues and PRs that help with the review.

On top of #3496

Possibly resolve #3665

This PR continue addressing the hanging issue as mentioned here: #3315 (comment)

It should be pretty safe and optional to do model.training checks even the model is in inference mode, as the value of inputs_embeds won't get modified anyway.

Checklist Before Starting

  • Search for similar PRs. Paste at least one query link here: ...
  • Format the PR title as [{modules}] {type}: {description} (This will be checked by the CI)
    • {modules} include fsdp, megatron, sglang, vllm, rollout, trainer, ci, training_utils, recipe, hardware, deployment, ray, worker, single_controller, misc, perf, model, algo, env, tool, ckpt, doc, data
    • If this PR involves multiple modules, separate them with , like [megatron, fsdp, doc]
    • {type} is in feat, fix, refactor, chore, test
    • If this PR breaks any API (CLI arguments, config, function signature, etc.), add [BREAKING] to the beginning of the title.
    • Example: [BREAKING][fsdp, megatron] feat: dynamic batching

Test

For changes that can not be tested by CI (e.g., algorithm implementation, new model support), validate by experiment(s) and show results like training curve plots, evaluation results, etc.

API and Usage Example

Demonstrate how the API changes if any, and provide usage example(s) if possible.

# Add code snippet or script demonstrating how to use this

Design & Code Changes

Demonstrate the high-level design if this PR is complex, and list the specific changes.

Checklist Before Submitting

Important

Please check all the following items before requesting a review, otherwise the reviewer might deprioritize this PR for review.

On top of volcengine#3496

Possibly resolve volcengine#3665

This PR continue addressing the hanging issue as mentioned here:
volcengine#3315 (comment)

It should be pretty safe and optional to do `model.training` checks
even the model is in inference mode, as the value of `inputs_embeds`
won't get modified anyway.

Signed-off-by: Hollow Man <[email protected]>
Copy link
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 aims to fix a hanging issue with mixed text-image data by ensuring the vision part of the model is always exercised, even for text-only batches. This is achieved by removing the model.training condition, which triggers a dummy vision forward pass during inference as well. While this is a valid strategy to prevent deadlocks in distributed environments, it introduces a performance overhead for non-distributed inference. My review suggests refining this condition to apply the workaround only when in a distributed context, thus preserving performance for single-device inference scenarios.

@HollowMan6
Copy link
Contributor Author

cc: @hiyouga @wlhgtc

@vermouth1992 vermouth1992 merged commit 4e9faaf into volcengine:main Oct 3, 2025
26 of 55 checks passed
@HollowMan6 HollowMan6 deleted the multi_modal_stuck branch October 4, 2025 00:03
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.

Mixed image-text datasets are not supported.
2 participants