Repository navigation
test(embeddings): enable sglang embedding correctness on h100 - #1326
Conversation
- Switch e2e-1gpu-embeddings runner from 1-gpu to 1-gpu-h100,
matching e2e-1gpu-completions.
- Drop skip_for_runtime("sglang") on TestEmbeddingCorrectness so
the sglang vs HF reference comparison actually runs.
Signed-off-by: Chang Su <chang.s.su@oracle.com>
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThis PR updates the embeddings test CI workflow to use H100-based GPU runners and enables sglang embedding correctness tests by removing a previously applied skip decorator, indicating that the embedding output divergence issue has been resolved. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Reviewed: 2 files changed. No issues found.
- Runner upgrade from
1-gputo1-gpu-h100aligns with all other 1-GPU e2e jobs in the workflow. - Removing the
skip_for_runtime("sglang")marker enables the embedding correctness test on H100, where the output divergence from HF reference is presumably resolved.
Clean change, LGTM.
PR #1326 removed `@pytest.mark.skip_for_runtime("sglang", reason="sglang embedding output diverges from HF reference")` on the hypothesis that H100 hardware would close the sglang vs HuggingFace reference gap for `intfloat/e5-mistral-7b-instruct`. Empirically that is not the case: PR #1329 CI (sglang 0.5.10 and 0.5.10.post1 on H100 arc-runner-1-gpu-h100-gwjtg-*): FAILED test_semantic_similarity[grpc] AssertionError: Set 1, text 1: similarity 0.3342 not close to 1.0 FAILED test_relevance_scores[grpc,http] AssertionError: Scores differ beyond tolerance 0.3342 vs 1.0 is structural (pooling / normalization / instruction prefix), not hardware — H100 alone does not close the gap. Keep the H100 runner change from #1326 (embeddings lane still runs on 1-gpu-h100) so that when the underlying sglang divergence is fixed, re-enabling this test is a one-line revert of this commit. Restore only the skip decorator to unblock the sglang-embeddings CI lane in the meantime. Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
sentence-transformers >= 3.x top-level imports torchcodec via
modality_types, which dlopens libtorchcodec_core{4..8}.so linked
against FFmpeg shared libs (libavformat/libavcodec/libavutil/
libswresample/libswscale). The runner image does not ship these.
PR #1326 removed the `skip_for_runtime("sglang", ...)` decorator on
test_correctness.py, so from that merge onward every sglang
embeddings run imports torchcodec at fixture setup and errors with:
RuntimeError: Could not load libtorchcodec. Likely causes:
1. FFmpeg is not properly installed ...
Previously the test was skipped on sglang, which hid the missing
libav* on the runner image.
Gated strictly on the embeddings matrix via the `sentence-transformers`
marker in extra_deps (pr-test-rust.yml:511). Other CI lanes see no
apt traffic.
Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
sentence-transformers >= 3.x top-level imports torchcodec via
modality_types, which dlopens libtorchcodec_core{4..8}.so linked
against FFmpeg shared libs (libavformat/libavcodec/libavutil/
libswresample/libswscale). The runner image does not ship these.
PR #1326 removed the `skip_for_runtime("sglang", ...)` decorator on
test_correctness.py, so from that merge onward every sglang
embeddings run imports torchcodec at fixture setup and errors with:
RuntimeError: Could not load libtorchcodec. Likely causes:
1. FFmpeg is not properly installed ...
Previously the test was skipped on sglang, which hid the missing
libav* on the runner image.
Gated strictly on the embeddings matrix via the `sentence-transformers`
marker in extra_deps (pr-test-rust.yml:511). Other CI lanes see no
apt traffic.
Signed-off-by: Simo Lin <linsimo.mark@gmail.com>
Description
Problem
Two things prevent the sglang embedding correctness check from actually running:
e2e-1gpu-embeddingsis pinned to the1-gpurunner pool, whilee2e-1gpu-completionsalready runs on1-gpu-h100.TestEmbeddingCorrectnesscarries askip_for_runtime("sglang", reason="sglang embedding output diverges from HF reference")mark, so the sglang side of the comparison never executes.Solution
Move the embeddings job onto H100 nodes and drop the sglang skip so the gateway-vs-HF reference comparison runs end-to-end on sglang.
Changes
.github/workflows/pr-test-rust.yml:e2e-1gpu-embeddingsrunner1-gpu→1-gpu-h100.e2e_test/embeddings/test_correctness.py: remove@pytest.mark.skip_for_runtime("sglang", ...)onTestEmbeddingCorrectness.Test Plan
e2e-1gpu-embeddings (sglang)on the1-gpu-h100pool.TestEmbeddingCorrectnessexecutes for bothsglangandvllmengines (no longer reported as skipped for sglang).Checklist
cargo +nightly fmtpasses (N/A — no Rust changes)cargo clippy --all-targets --all-features -- -D warningspasses (N/A — no Rust changes)Summary by CodeRabbit
Tests
Chores