LibMTL

GitHub
2.5k 232 中等 1 次阅读 今天MIT开发框架
AI 解读 由 AI 自动生成,仅供参考

LibMTL 是一个基于 PyTorch 构建的开源多任务学习(MTL)库,旨在帮助开发者高效地训练同时处理多个相关任务的深度学习模型。在多任务学习中,如何平衡不同任务的梯度冲突、避免负迁移以及自动调整损失权重一直是核心难题,LibMTL 通过集成数十种前沿算法,为这些问题提供了标准化的解决方案。

无论是学术研究人员还是工程开发者,都能利用 LibMTL 快速复现最新论文成果或构建生产级应用。其独特亮点在于拥有极广的算法覆盖面,不仅包含经典的加权求和策略,还集成了如 Nash-MTL、FairGrad、Auto-Lambda 等源自 ICML、NeurIPS、CVPR 等顶级会议的先进方法,甚至支持双层优化和基于梯度的多目标深度学习技术。此外,LibMTL 提供了清晰的 API 文档和涵盖计算机视觉、自然语言处理及分子属性预测等多个领域的示例代码,让用户无需从零编写复杂的调度逻辑,即可灵活切换并对比不同算法效果,显著提升实验效率与模型性能。

使用场景

某自动驾驶感知团队正在开发一个端到端模型,需要同时完成道路分割、车辆检测和深度估计三个任务,以优化车载芯片的推理效率。

没有 LibMTL 时

  • 算法复现成本极高:团队成员需手动阅读 Nash-MTL 或 GradNorm 等论文的数学公式,从零编写复杂的梯度调整逻辑,极易引入隐蔽的 Bug。
  • 任务平衡难以调优:不同任务的损失函数量级差异巨大,人工调整权重系数如同“大海捞针”,常导致模型偏向简单任务而忽略关键的小目标检测。
  • 实验对比混乱低效:缺乏统一框架,每次切换多任务优化算法都需要重构代码结构,难以在相同基准下公平对比不同策略的效果。
  • 维护与扩展困难:随着新算法(如 FairGrad 或 Auto-Lambda)的涌现,旧代码耦合度高,集成新方法往往需要推倒重来。

使用 LibMTL 后

  • 开箱即用的算法库:直接调用 LibMTL 内置的数十种 SOTA 算法(如 UPGrad、FAMO),仅需修改一行配置即可切换策略,将数周的复现工作缩短至几分钟。
  • 智能梯度协调机制:利用库中成熟的梯度博弈与动态加权机制,自动平衡分割、检测与深度估计的训练节奏,显著提升了整体模型的收敛速度和精度上限。
  • 标准化的评估体系:基于统一的 API 接口和预置数据集(如 Cityscapes),团队能快速生成多维度的性能报表,清晰量化各算法的实际收益。
  • 灵活的前沿探索:紧跟社区更新,轻松集成最新的双层优化或公平性约束算法,让团队始终保持在多任务学习技术的最前沿。

LibMTL 将研究人员从繁琐的底层梯度操作中解放出来,使其能专注于架构设计与业务场景创新,大幅降低了多任务学习的落地门槛。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU(基于 PyTorch),具体型号、显存大小及 CUDA 版本未说明

内存

未说明

依赖
notes该工具是基于 PyTorch 构建的多任务学习(MTL)开源库。README 中未详细列出具体的系统依赖版本或硬件最低要求,实际运行环境需根据所选的具体算法(如 GradNorm, PCGrad 等)和数据集(如 QM9, PAWS-X)的规模进行调整。建议参考官方文档获取详细的安装指南。
python3.8+
torch
numpy
scikit-learn
LibMTL hero image

快速开始

LibMTL

Documentation Status License: MIT PyPI version Supported Python versions CodeFactor paper coverage Hits Made With Love

LibMTL 是一个基于 PyTorch 构建的开源多任务学习(MTL)库。有关详细介绍和 API 使用说明,请参阅 最新文档

:star: 在 GitHub 上给我们点个赞吧——这对我们来说是很大的鼓励!

:bangbang: 一篇关于 基于梯度的多目标深度学习 的全面综述现已在 arXiv 上发布,同时还附带了一个 精彩列表。快来查看吧!

新闻

  • [2025年4月21日] 增加了对 UPGrad 的支持。
  • [2025年2月18日] 增加了对双层优化方法 Auto-Lambda(TMLR 2022)的支持。
  • [2025年2月17日] 增加了对 FAMO(NeurIPS 2023)、SDMGrad(NeurIPS 2023)以及 MoDo(NeurIPS 2023;JMLR 2024)的支持。
  • [2025年2月6日] 增加了对两种双层优化方法的支持:MOML(NeurIPS 2021;AIJ 2024)、FORUM(ECAI 2024)。
  • [2024年9月19日] 增加了对 FairGrad(ICML 2024)的支持。
  • [2024年8月31日] 增加了对 ExcessMTL(ICML 2024)的支持。
  • [2024年7月24日] 增加了对 STCH(ICML 2024)的支持。
  • [2024年2月8日] 增加了对 DB-MTL 的支持。
  • [2023年8月16日]:增加了对 MoCo(ICLR 2023)的支持。非常感谢作者 @heshandevaka 的帮助。
  • [2023年7月11日] 论文被 JMLR 接受。
  • [2023年6月19日] 增加了对 Aligned-MTL(CVPR 2023)的支持。
  • [2023年3月10日]:新增了 QM9PAWS-X 示例。
  • [2022年7月22日]:增加了对 Nash-MTL(ICML 2022)的支持。
  • [2022年7月21日]:增加了对 Learning to Branch(ICML 2020)的支持。非常感谢 @yuezhixiong 的贡献(#14)。
  • [2022年3月29日]:论文现已在 arXiv 上发布。

目录

功能特性

  • 统一性LibMTL 提供了一个统一的代码库来实现多种多任务学习算法,并采用一致的评估流程,涵盖数据处理、指标计算和超参数设置等环节。该库支持多个具有代表性的多任务学习基准数据集,从而能够对不同算法进行定量、公平且一致的比较。
  • 全面性LibMTL 支持众多最先进的多任务学习方法,包括8种架构和16种优化策略。同时,它还提供了对多个覆盖不同领域的基准数据集的公平比较。
  • 可扩展性LibMTL 遵循模块化设计原则,允许用户灵活便捷地添加自定义组件或进行个性化修改。因此,借助 LibMTL 的支持,用户可以轻松快速地开发新的优化策略和架构,或将现有多任务学习算法应用于新的应用场景。

整体框架

framework

各模块的详细介绍请参见 文档

支持的算法

目前,LibMTL 支持以下算法:

优化策略 会议/来源 参数选项
等权法 (EW) - --weighting EW
梯度归一化 (GradNorm) ICML 2018 --weighting GradNorm
不确定性权重法 (UW) CVPR 2018 --weighting UW
MGDA (官方代码) NeurIPS 2018 --weighting MGDA
动态权重平均法 (DWA) (官方代码) CVPR 2019 --weighting DWA
几何损失策略 (GLS) CVPR 2019研讨会 --weighting GLS
冲突梯度投影法 (PCGrad) NeurIPS 2020 --weighting PCGrad
梯度符号丢弃法 (GradDrop) NeurIPS 2020 --weighting GradDrop
公平多任务学习法 (IMTL) ICLR 2021 --weighting IMTL
梯度疫苗法 (GradVac) ICLR 2021 --weighting GradVac
冲突规避梯度下降法 (CAGrad)(官方代码) NeurIPS 2021 --weighting CAGrad
MOML NeurIPS 2021 --weighting MOML
Nash-MTL官方代码 ICML 2022 --weighting Nash_MTL
随机损失加权法 (RLW) TMLR 2022 --weighting RLW
Auto-Lambda (官方代码 TMLR 2022 --weighting AutoLambda
MoCo ICLR 2023 --weighting MoCo
Aligned-MTL官方代码 CVPR 2023 --weighting Aligned_MTL
FAMO (官方代码 NeurIPS 2023 --weighting FAMO
SDMGrad (官方代码 NeurIPS 2023 --weighting SDMGrad
MoDo (官方代码 NeurIPS 2023 --weighting MoDo
FORUM ECAI 2024 --weighting FORUM
STCH (官方代码 ICML 2024 --weighting STCH
ExcessMTL (官方代码 ICML 2024 --weighting ExcessMTL
FairGrad (官方代码 ICML 2024 --weighting FairGrad
DB-MTL arXiv --weighting DB_MTL
UPGrad官方代码 arXiv --weighting UPGrad
架构 会议 参数
硬参数共享(HPS ICML 1993 --arch HPS
十字绣网络(Cross_stitch CVPR 2016 --arch Cross_stitch
多门混合专家模型(MMoE KDD 2018 --arch MMoE
多任务注意力网络(MTAN)(官方代码 CVPR 2019 --arch MTAN
自定义门控机制(CGC)、渐进式分层提取(PLE ACM RecSys 2020 --arch CGC, --arch PLE
学习分支(LTB ICML 2020 --arch LTB
DSelect-k官方代码 NeurIPS 2021 --arch DSelect_k

支持的基准数据集

数据集 问题 任务数量 任务 多输入 支持的主干网络
NYUv2 场景理解 3 语义分割+
深度估计+
表面法线预测
ResNet50/
SegNet
Cityscapes 场景理解 2 语义分割+
深度估计
ResNet50
Office-31 图像识别 3 分类 ResNet18
Office-Home 图像识别 4 分类 ResNet18
QM9 分子性质预测 11(默认) 回归 GNN
PAWS-X 同义句识别 4(默认) 分类 Bert

安装

  1. 创建虚拟环境

    conda create -n libmtl python=3.10
    conda activate libmtl
    
  2. 克隆仓库

    git clone https://github.com/median-research-group/LibMTL.git
    
  3. 安装 LibMTL

    pip install torch==2.3.0+cu121 torchvision==0.18.0+cu121 -f https://download.pytorch.org/whl/torch_stable.html
    pip install torch-scatter==2.1.2+pt23cu121 torch_sparse==0.6.18+pt23cu121 -f https://pytorch-geometric.com/whl/torch-2.3.0+cu121.html
    
    cd LibMTL
    pip install -r requirements.txt
    pip install -e .
    

快速入门

我们以 NYUv2 数据集为例,展示如何使用 LibMTL

下载数据集

我们使用的 NYUv2 数据集由 mtan 预处理。您可以从 这里下载该数据集。

运行模型

NYUv2 数据集的完整训练代码位于 examples/nyu 中。文件 main.py 是在 NYUv2 数据集上进行训练的主文件。

您可以通过运行以下命令查看命令行参数。

python main.py -h

例如,运行以下命令将在 NYUv2 数据集上训练一个使用 EW 和 HPS 的多任务学习模型。

python main.py --weighting EW --arch HPS --dataset_path /path/to/nyuv2 --gpu_id 0 --scheduler step --mode train --save_path PATH

更多详细信息请参阅 文档

引用

如果您发现 LibMTL 对您的研究或开发有所帮助,请引用以下内容:

@article{lin2023libmtl,
  title={{LibMTL}: A {P}ython Library for Multi-Task Learning},
  author={Baijiong Lin and Yu Zhang},
  journal={Journal of Machine Learning Research},
  volume={24},
  number={209},
  pages={1--7},
  year={2023}
}

贡献者

LibMTLBaijiong Lin 开发并维护。

联系我们

如果您有任何问题或建议,请随时通过 提交 issue 或发送邮件至 bj.lin.email@gmail.com 与我们联系。

致谢

我们谨向以下公开仓库的作者表示感谢(按字母顺序排列):CAGraddselect_k_moeMultiObjectiveOptimizationmtanMTLnash-mtlpytorch_geometricxtreme

许可证

LibMTL 采用 MIT 许可证发布。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|今天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|昨天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

141.5k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|今天
开发框架图像Agent

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|今天
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|今天
开发框架图像Agent