{"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/adapters-a-unified-library-for-parameter","title":"Adapters: A Unified Library for Parameter-Efficient and Modular Transfer Learning","arxiv_id":"2311.11077","date":"2023-11-18","proceeding":null,"authors":["Clifton Poth","Hannah Sterz","Indraneil Paul","Sukannya Purkayastha","Leon Engländer","Timo Imhof","Ivan Vulić","Sebastian Ruder","Iryna Gurevych","Jonas Pfeiffer"],"abstract":"We introduce Adapters, an open-source library that unifies parameter-efficient and modular transfer learning in large language models. By integrating 10 diverse adapter methods into a unified interface, Adapters offers ease of use and flexible configuration. Our library allows researchers and practitioners to leverage adapter modularity through composition blocks, enabling the design of complex adapter setups. We demonstrate the library's efficacy by evaluating its performance against full fine-tuning on various NLP tasks. Adapters provides a powerful tool for addressing the challenges of conventional fine-tuning paradigms and promoting more efficient and modular transfer learning. The library is available via https://adapterhub.ml/adapters.","url_abs":"https://arxiv.org/abs/2311.11077v1","url_pdf":"https://arxiv.org/pdf/2311.11077v1.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":"adapters-a-unified-library-for-parameter","repo_url":"https://github.com/adapter-hub/adapters","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"adapter","method_name":"Adapter"},{"method_slug":null,"method_name":"Library"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.11077","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.11077"}},"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/adapter-hub/adapters","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":3,"unverified":5},"by_repo_kind":{"official":{"samples":8,"ran":3,"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":0,"samples":[{"code_sha256_prefix":"ecfe68a3e8b4e502","entry":"get_adapter_config_hash","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/utils.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ecfe68a3e8b4e502"}},{"code_sha256_prefix":"4a0b4484fd1adec4","entry":"multigetattr","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/utils.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4a0b4484fd1adec4"}},{"code_sha256_prefix":"7c12b2dc54485dee","entry":"multihasattr","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/utils.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7c12b2dc54485dee"}},{"code_sha256_prefix":"d4873822373665b6","entry":"adjust_tensors_for_parallel","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/composition.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/composition.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":"d4873822373665b6"}},{"code_sha256_prefix":"8cbc91d9a5f1d924","entry":"get_head_config_and_rename_list","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/head_utils.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/head_utils.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":"8cbc91d9a5f1d924"}},{"code_sha256_prefix":"35e3ad6b7aed8bed","entry":"parse_composition","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/composition.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/composition.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":"35e3ad6b7aed8bed"}},{"code_sha256_prefix":"3f3d88b639bd4b13","entry":"parse_heads_from_composition","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/composition.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/composition.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":"3f3d88b639bd4b13"}},{"code_sha256_prefix":"8c11032f0bd8049f","entry":"setup_adapter_training","repo":"adapter-hub/adapters","repo_kind":"official","path":"src/adapters/training.py","file_url":"https://github.com/adapter-hub/adapters/blob/HEAD/src/adapters/training.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":"8c11032f0bd8049f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}