[qwen] Switch CI to transformers==5.12.1 - #381
Conversation
📂 Impacted Files3 file(s) changed in this pull request: 🔵 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #381 +/- ##
=======================================
Coverage 78.88% 78.88%
=======================================
Files 27 27
Lines 8113 8113
=======================================
Hits 6400 6400
Misses 1713 1713
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@copilot FAILED tests/fast/test_random_qwen2_5_omni.py::TestRandomQwen25OmniVision::test_qwen25omni_conditional_generation_fp16_cpu_genai - RuntimeError: Invalid rank for input: position_ids Got: 2 Expected: 3 Please fix either the inputs/outputs or the model. |
Fixed in the latest commit. Root cause: the Qwen2.5-Omni multimodal pipeline is driven by the ORT-GenAI The Omni text decoder now accepts 2D |
|
@copilot resolve the merge conflicts in this pull request |
…use-transformers-5-12-1 # Conflicts: # modelbuilder/builders/qwen.py # modelbuilder/ext_test_case.py # tests/fast/test_random_qwen2_5_omni.py
Merge conflicts resolved in |
|
@copilot investigate why one job is not reporting its status |
Root cause found: Fixed by renaming the trained-tiny job to |
Bumps the pinned
transformersversion used across CI workflows from5.9to5.12.1.Changes
.github/workflows/fast_tests.yml— matrixtransformers-version→["4.57", "5.6", "5.12.1"].github/workflows/trained_tiny_llm_tests.yml— matrixtransformers-version→["5.6", "5.12.1"].github/workflows/fast_tests_ort_nightly.yml— install step pin →transformers==5.12.1Older compatibility versions in the matrices are retained.
Qwen2.5-Omni position_ids fix
While validating the CI bump, the two Qwen2.5-Omni genai tests failed with
RuntimeError: Invalid rank for input: position_ids Got: 2 Expected: 3. This is a pre-existing model/pipeline mismatch (it also fails on transformers 5.9), not a regression from the version bump: the Omni multimodal pipeline is driven by the ORT-GenAIphi3vloader, which feeds 2Dposition_ids[B, S], while the Omni text decoder (inherited fromQwen25VLTextModel) was always built expecting 3D mRoPEposition_ids[3, B, S].modelbuilder/builders/qwen.py— Added anexpand_position_idsflag toQwen25VLTextModel(defaultFalse, so genuine Qwen2.5-VL / Qwen3-VL keep 3Dposition_ids). When enabled, the graph accepts 2Dposition_idsand expands them to the 3D mRoPE layout internally (via themake_mrope_position_ids()helper).Qwen25OmniThinkerModelsets this flag toTrue, matching the existingQwen35TextModelphi3v approach.modelbuilder/ext_test_case.py— Added anonnx_position_ids_2doption to the shared VL discrepancy helper so the ONNX session receives 2Dposition_idswhile PyTorch still receives 3D for parity.tests/fast/test_random_qwen2_5_omni.py— Updated the Omni tests to feed 2Dposition_ids.pytest tests/fastnow passes (305 passed), including both previously failing..._genaitests; genuine Qwen2.5-VL / Qwen3-VL tests are unchanged.This branch was merged with
main, which had independently landed the same Qwen2.5-Omni fix (#382) via themake_mrope_position_ids()helper; the conflicts were resolved by adopting that upstream implementation.CI check-run status fix
fast_tests.ymlandtrained_tiny_llm_tests.ymlpreviously declared their matrix jobs with the identical name templateci (…, transformers-X). Because both matrices includetransformers-5.6andtransformers-5.12.1, two pairs of check runs were emitted with colliding names, so GitHub deduplicated them and one job appeared to not report its status..github/workflows/trained_tiny_llm_tests.yml— Renamed the job toci-trained (…)so its check-run names are unique across workflows, ensuring every job reports a distinct status.