{"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/slope-double-pruned-sparse-plus-lazy-low-rank","title":"SLoPe: Double-Pruned Sparse Plus Lazy Low-Rank Adapter Pretraining of LLMs","arxiv_id":"2405.16325","date":"2024-05-25","proceeding":null,"authors":["Mohammad Mozaffari","Amir Yazdanbakhsh","Zhao Zhang","Maryam Mehri Dehnavi"],"abstract":"We propose SLoPe, a Double-Pruned Sparse Plus Lazy Low-rank Adapter Pretraining method for LLMs that improves the accuracy of sparse LLMs while accelerating their pretraining and inference and reducing their memory footprint. Sparse pretraining of LLMs reduces the accuracy of the model, to overcome this, prior work uses dense models during fine-tuning. SLoPe improves the accuracy of sparsely pretrained models by adding low-rank adapters in the final 1% iterations of pretraining without adding significant overheads to the model pretraining and inference. In addition, SLoPe uses a double-pruned backward pass formulation that prunes the transposed weight matrix using N:M sparsity structures to enable an accelerated sparse backward pass. SLoPe accelerates the training and inference of models with billions of parameters up to $1.25\\times$ and $1.54\\times$ respectively (OPT-33B and OPT-66B) while reducing their memory usage by up to $0.63\\times$ and $0.61\\times$ for training and inference respectively.","url_abs":"https://arxiv.org/abs/2405.16325v3","url_pdf":"https://arxiv.org/pdf/2405.16325v3.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":"slope-double-pruned-sparse-plus-lazy-low-rank","repo_url":"https://github.com/Mohammad-Mozaffari/slope","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"adapter","method_name":"Adapter"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.16325","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.16325"}},"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/Mohammad-Mozaffari/slope","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"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":5,"samples":[{"code_sha256_prefix":"dcce7bf66b0c8b73","entry":"error","repo":"Mohammad-Mozaffari/slope","repo_kind":"official","path":"slope/utils.py","file_url":"https://github.com/Mohammad-Mozaffari/slope/blob/HEAD/slope/utils.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":"dcce7bf66b0c8b73"}},{"code_sha256_prefix":"d2895bdf14e8f94f","entry":"preprocess_logits_for_metrics","repo":"Mohammad-Mozaffari/slope","repo_kind":"official","path":"inference.py","file_url":"https://github.com/Mohammad-Mozaffari/slope/blob/HEAD/inference.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d2895bdf14e8f94f"}},{"code_sha256_prefix":"12a034a4890ebd61","entry":"compute_memory","repo":"Mohammad-Mozaffari/slope","repo_kind":"official","path":"performance_experiments/memory.py","file_url":"https://github.com/Mohammad-Mozaffari/slope/blob/HEAD/performance_experiments/memory.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":"12a034a4890ebd61"}},{"code_sha256_prefix":"c144743f962ecd0b","entry":"group_texts","repo":"Mohammad-Mozaffari/slope","repo_kind":"official","path":"inference.py","file_url":"https://github.com/Mohammad-Mozaffari/slope/blob/HEAD/inference.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":"c144743f962ecd0b"}},{"code_sha256_prefix":"bfb260f6392b0a78","entry":"to_sparse_semi_structured_compiled","repo":"Mohammad-Mozaffari/slope","repo_kind":"official","path":"slope/slope.py","file_url":"https://github.com/Mohammad-Mozaffari/slope/blob/HEAD/slope/slope.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":"bfb260f6392b0a78"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}