{"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/ties-merging-resolving-interference-when","title":"TIES-Merging: Resolving Interference When Merging Models","arxiv_id":"2306.01708","date":"2023-06-02","proceeding":"NeurIPS 2023 11","authors":["Prateek Yadav","Derek Tam","Leshem Choshen","Colin Raffel","Mohit Bansal"],"abstract":"Transfer learning - i.e., further fine-tuning a pre-trained model on a downstream task - can confer significant advantages, including improved downstream performance, faster convergence, and better sample efficiency. These advantages have led to a proliferation of task-specific fine-tuned models, which typically can only perform a single task and do not benefit from one another. Recently, model merging techniques have emerged as a solution to combine multiple task-specific models into a single multitask model without performing additional training. However, existing merging methods often ignore the interference between parameters of different models, resulting in large performance drops when merging multiple models. In this paper, we demonstrate that prior merging techniques inadvertently lose valuable information due to two major sources of interference: (a) interference due to redundant parameter values and (b) disagreement on the sign of a given parameter's values across models. To address this, we propose our method, TRIM, ELECT SIGN & MERGE (TIES-Merging), which introduces three novel steps when merging models: (1) resetting parameters that only changed a small amount during fine-tuning, (2) resolving sign conflicts, and (3) merging only the parameters that are in alignment with the final agreed-upon sign. We find that TIES-Merging outperforms several existing methods in diverse settings covering a range of modalities, domains, number of tasks, model sizes, architectures, and fine-tuning settings. We further analyze the impact of different types of interference on model parameters, and highlight the importance of resolving sign interference. Our code is available at https://github.com/prateeky2806/ties-merging","url_abs":"https://arxiv.org/abs/2306.01708v2","url_pdf":"https://arxiv.org/pdf/2306.01708v2.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":"ties-merging-resolving-interference-when","repo_url":"https://github.com/prateeky2806/ties-merging","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"ties-merging-resolving-interference-when","repo_url":"https://github.com/EnnengYang/AdaMerging","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"ties-merging-resolving-interference-when","repo_url":"https://github.com/flowritecom/flow-merge","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"ties-merging-resolving-interference-when","repo_url":"https://github.com/yanyang19/ImPart","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.01708","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.01708"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/prateeky2806/ties-merging","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/EnnengYang/AdaMerging","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/flowritecom/flow-merge","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yanyang19/ImPart","reach":null}],"summary":{"ran_draft_wrong":1,"ran_fixture":3,"unverified":4},"by_repo_kind":{"official":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":6,"ran":2,"repositories":2}},"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":1,"samples":[{"code_sha256_prefix":"d2a53ee4479956ae","entry":"disjoint_merge","repo":"EnnengYang/AdaMerging","repo_kind":"listed","path":"src/ties_merging_utils.py","file_url":"https://github.com/EnnengYang/AdaMerging/blob/HEAD/src/ties_merging_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d2a53ee4479956ae"}},{"code_sha256_prefix":"adff87f187a088be","entry":"resolve_lambda_code","repo":"prateeky2806/ties-merging","repo_kind":"official","path":"src/ties_merging.py","file_url":"https://github.com/prateeky2806/ties-merging/blob/HEAD/src/ties_merging.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"adff87f187a088be"}},{"code_sha256_prefix":"7b834a39961b956a","entry":"ties_merging","repo":"EnnengYang/AdaMerging","repo_kind":"listed","path":"src/ties_merging_utils.py","file_url":"https://github.com/EnnengYang/AdaMerging/blob/HEAD/src/ties_merging_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7b834a39961b956a"}},{"code_sha256_prefix":"225c26ebc567caaa","entry":"topk_values_mask","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"225c26ebc567caaa"}},{"code_sha256_prefix":"27c058dc73f0bc72","entry":"BaseMergeMethodSettings","repo":"flowritecom/flow-merge","repo_kind":"listed","path":"flow_merge/lib/merge_methods/task_arithmetic.py","file_url":"https://github.com/flowritecom/flow-merge/blob/HEAD/flow_merge/lib/merge_methods/task_arithmetic.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"27c058dc73f0bc72"}},{"code_sha256_prefix":"07b31b99cc6756ae","entry":"Model","repo":"flowritecom/flow-merge","repo_kind":"listed","path":"flow_merge/lib/merge_methods/task_arithmetic.py","file_url":"https://github.com/flowritecom/flow-merge/blob/HEAD/flow_merge/lib/merge_methods/task_arithmetic.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"07b31b99cc6756ae"}},{"code_sha256_prefix":"13ed3abc8bafa589","entry":"TaskArithmeticSettings","repo":"flowritecom/flow-merge","repo_kind":"listed","path":"flow_merge/lib/merge_methods/task_arithmetic.py","file_url":"https://github.com/flowritecom/flow-merge/blob/HEAD/flow_merge/lib/merge_methods/task_arithmetic.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"13ed3abc8bafa589"}},{"code_sha256_prefix":"e5f70e4892a42b45","entry":"TiesMergingSettings","repo":"flowritecom/flow-merge","repo_kind":"listed","path":"flow_merge/lib/merge_methods/task_arithmetic.py","file_url":"https://github.com/flowritecom/flow-merge/blob/HEAD/flow_merge/lib/merge_methods/task_arithmetic.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e5f70e4892a42b45"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}