{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/dmtg-one-shot-differentiable-multi-task","title":"DMTG: One-Shot Differentiable Multi-Task Grouping","arxiv_id":"2407.05082","date":"2024-07-06","proceeding":null,"authors":["Yuan Gao","Shuguo Jiang","Moran Li","Jin-Gang Yu","Gui-Song Xia"],"abstract":"We aim to address Multi-Task Learning (MTL) with a large number of tasks by Multi-Task Grouping (MTG). Given N tasks, we propose to simultaneously identify the best task groups from 2^N candidates and train the model weights simultaneously in one-shot, with the high-order task-affinity fully exploited. This is distinct from the pioneering methods which sequentially identify the groups and train the model weights, where the group identification often relies on heuristics. As a result, our method not only improves the training efficiency, but also mitigates the objective bias introduced by the sequential procedures that potentially lead to a suboptimal solution. Specifically, we formulate MTG as a fully differentiable pruning problem on an adaptive network architecture determined by an underlying Categorical distribution. To categorize N tasks into K groups (represented by K encoder branches), we initially set up KN task heads, where each branch connects to all N task heads to exploit the high-order task-affinity. Then, we gradually prune the KN heads down to N by learning a relaxed differentiable Categorical distribution, ensuring that each task is exclusively and uniquely categorized into only one branch. Extensive experiments on CelebA and Taskonomy datasets with detailed ablations show the promising performance and efficiency of our method. The codes are available at https://github.com/ethanygao/DMTG.","url_abs":"https://arxiv.org/abs/2407.05082v1","url_pdf":"https://arxiv.org/pdf/2407.05082v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"dmtg-one-shot-differentiable-multi-task","repo_url":"https://github.com/ethanygao/dmtg","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"multi-task-learning","task_name":"Multi-Task Learning"}],"methods":[{"method_slug":"pruning","method_name":"Pruning"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2407.05082","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.05082"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/ethanygao/DMTG","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ethanygao/dmtg","reach":{"status":"ok"}}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":9,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":9,"samples":[{"code_sha256_prefix":"2e42e0959bdc24e7","entry":"LearnToGroup","repo":"ethanygao/dmtg","repo_kind":"official","path":"models/learnToGroup.py","file_url":"https://github.com/ethanygao/dmtg/blob/HEAD/models/learnToGroup.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2e42e0959bdc24e7"}},{"code_sha256_prefix":"0abd470ee2dbde8d","entry":"confusion_matrix","repo":"ethanygao/DMTG","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/utils/model_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0abd470ee2dbde8d"}},{"code_sha256_prefix":"cd730753ce887a0b","entry":"normal_loss","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/loss.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cd730753ce887a0b"}},{"code_sha256_prefix":"93828fef55cb0392","entry":"normal_loss_simple","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/loss.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"93828fef55cb0392"}},{"code_sha256_prefix":"44c3aa4c610ea3f7","entry":"register","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/models.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/models.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"44c3aa4c610ea3f7"}},{"code_sha256_prefix":"b899239fa359c4d4","entry":"segment_semantic_loss","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/loss.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/loss.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b899239fa359c4d4"}},{"code_sha256_prefix":"14982a5b13861f94","entry":"time_text","repo":"ethanygao/DMTG","repo_kind":"official","path":"utils/model_utils.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/utils/model_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"14982a5b13861f94"}},{"code_sha256_prefix":"fe93d608f889f824","entry":"gradient_normalizers","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/ozan_min_norm_solvers.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/ozan_min_norm_solvers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fe93d608f889f824"}},{"code_sha256_prefix":"9e49a3839a22867f","entry":"make","repo":"ethanygao/DMTG","repo_kind":"official","path":"models/models.py","file_url":"https://github.com/ethanygao/DMTG/blob/HEAD/models/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9e49a3839a22867f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}