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.

The repository-native Overall Framework diagram, pinned to the audited upstream commit; no synthetic artwork is used.

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.

Evidence and attribution