fix(personaplex): declare the official reference einops dependency - #1238
chaofengw-nv wants to merge 1 commit into
Conversation
Match the einops version required by the pinned official Moshi source. Exercise real reference imports through the existing subprocess entrypoint before checkpoint validation, without model downloads or GPU execution. Signed-off-by: chaofengw <chaofengw@nvidia.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 12 included reviews per hour; 10 remain after this review. 📝 SummarySummary
Architecture impact
WalkthroughThe change pins ChangesPersonaplex validation
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change pins the missing Personaplex reference dependency and adds a smoke test confirming imports reach checkpoint validation. No current merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 8 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (8 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 1 files. (1 skipped: 1 unsupported.) Comment |
Background
PersonaPlex's pinned official reference imports
einops, but the family requirements only declaresoundfile. A family environment can therefore fail withModuleNotFoundErrorbefore reaching checkpoint loading. The required version is declared by the pinned upstream Moshi project.Exit Criteria
Installing the family requirements provides the reference's tensor-rearrangement dependency, and the real reference subprocess completes imports before validating the checkpoint. No oracle implementation, accuracy threshold, or E2E acceptance criterion changes.
Implementation
Declare
einops==0.7.0in PersonaPlex's requirements, matching the pinned upstream source. Add an import smoke test using the existing reference subprocess and an empty checkpoint directory: it must reach the specific missing-checkpoint error, not fail on an import. The new smoke test requiresTRTMC_REFERENCE_SOURCE_DIR; it explicitly skips when no source checkout is supplied. Existing E2E tests are unchanged. No API, ABI, or bundle-format changes.Change categories
Validation
Commands and Results
With the official source checkout supplied through
TRTMC_REFERENCE_SOURCE_DIRand the disposable verification venv onPATH:python -m pytest families/personaplex/tests/test_official_reference.py -q --tb=short: 4 passed. Before adding/installingeinops, the same smoke test failed withModuleNotFoundError: No module named 'einops'(1 failed, 3 passed).-m 'not e2e and not gpu and not trt' -q -rs: 10 passed, 3 skipped; the skips require explicit E2E selection.ruff check families/personaplex/tests/test_official_reference.py: passed.git diff --check github/main...HEAD: passed.Hardware, Environment, and Revisions
Tested tree:
3bf025c49d6179c13cbf4ab48826289c4b7d86ff, based ondddd2663336753c1102e47c281a925d96d899ac2. Official source:NVIDIA/personaplex@3428dfd95309a7f3c84fd93259ded0f810d1ff91. Linux x86_64, Python 3.12.3, NumPy 2.4.6, torch 2.12.0+cu130, einops 0.7.0, soundfile 0.14.0, sentencepiece 0.2.2. The disposable venv reuses existing base packages; it is not a clean reproduction of the target runtime image. The import smoke test uses no model weights or GPU execution.Not Run / Remaining Gaps
Full GPU PersonaPlex generation/parity and target-platform dependency installation still require CI. Successful imports do not establish model correctness or compatibility with every upstream dependency. No premerge pass is claimed.
Contributor Self-Review
Checked the pinned upstream dependency/import closure and confirmed the test calls the real wrapper without loading weights, mocking imports, or altering the oracle.
Notes For Future Readers
The official source is not installed as a package by this workflow, so its needed dependencies must be available through the family/base environment. Keep the source pin and dependency compatible. This PR is independent of tensor-parallel sharding fixes and does not modify global CI resource policy.
Risk level
The only production change adds one pure-Python, family-local dependency at the upstream-required version; reference behavior and E2E criteria remain unchanged.