LibMTL — open upstream contribution
An open CLI-help contribution to LibMTL, with the exact-fork boundary, upstream ownership, project function, architecture, and evidence stated explicitly.
Contribution status and scope
My public LibMTL fork preserves the default branch of the Median Research Group upstream repository exactly. My contribution is isolated on another branch as commit 7261aaa and submitted through upstream pull request #97.
The patch replaces whitespace-only argparse help placeholders in LibMTL/config.py with concise descriptions and adds regression tests that reject blank help text while confirming that -h renders successfully. At the 2026-09-08 audit, PR #97 was open, non-draft, unreviewed, and unmerged. It is therefore presented as a submitted contribution under review, not an accepted upstream result.
Upstream ownership and guidance boundary
The commit-pinned upstream README identifies Baijiong Lin as LibMTL’s developer and maintainer and credits the upstream authors and contributors. The change responds to issue #90, reported by imanfs; there was no maintainer review or comment on PR #97 at the audit. This record does not claim upstream authorship, acceptance, maintainer guidance, or academic supervision.
What LibMTL does
LibMTL is a PyTorch library for multi-task learning. It provides a consistent way to combine shared and task-specific representations, loss or gradient weighting strategies, dataset pipelines, metrics, and experiment settings so methods can be trained and compared under a common interface. Its examples cover vision, language, office-domain, and molecular benchmarks.
Principle and architecture
Multi-task learning jointly optimizes related objectives through a shared model while controlling competition between tasks. LibMTL separates two choices: an architecture determines which representations are shared or task-specific, and a weighting strategy combines task losses or gradients. A Trainer then coordinates data loading, forward and backward passes, optimization, scheduling, validation, metrics, and checkpoints. Task-specific encoders, decoders, losses, and metrics plug into that orchestration layer, while configuration and CLI arguments select combinations reproducibly.