{"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/soul-unlocking-the-power-of-second-order","title":"SOUL: Unlocking the Power of Second-Order Optimization for LLM Unlearning","arxiv_id":"2404.18239","date":"2024-04-28","proceeding":null,"authors":["Jinghan Jia","Yihua Zhang","Yimeng Zhang","Jiancheng Liu","Bharat Runwal","James Diffenderfer","Bhavya Kailkhura","Sijia Liu"],"abstract":"Large Language Models (LLMs) have highlighted the necessity of effective unlearning mechanisms to comply with data regulations and ethical AI practices. LLM unlearning aims at removing undesired data influences and associated model capabilities without compromising utility beyond the scope of unlearning. While interest in studying LLM unlearning is growing, the impact of the optimizer choice for LLM unlearning remains unexplored. In this work, we shed light on the significance of optimizer selection in LLM unlearning for the first time, establishing a clear connection between second-order optimization and influence unlearning (a classical approach using influence functions to update the model for data influence removal). This insight propels us to develop a second-order optimization-based LLM unlearning framework, termed Second-Order UnLearning (SOUL), which extends the static, one-shot model update using influence unlearning to a dynamic, iterative unlearning process. Our extensive experiments show that SOUL consistently outperforms conventional first-order methods across various unlearning tasks, models, and metrics, indicating that second-order optimization offers an effective and broadly applicable solution for LLM unlearning. Codes are available at https://github.com/OPTML-Group/SOUL.","url_abs":"https://arxiv.org/abs/2404.18239v4","url_pdf":"https://arxiv.org/pdf/2404.18239v4.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":"soul-unlocking-the-power-of-second-order","repo_url":"https://github.com/optml-group/soul","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"stochastic-optimization","task_name":"Stochastic Optimization"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2404.18239","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.18239"}},"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/optml-group/soul","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/OPTML-Group/SOUL","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"official":{"samples":6,"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":"80caf6ff337fe734","entry":"SophiaG","repo":"OPTML-Group/SOUL","repo_kind":"official","path":"src/optim/sophia.py","file_url":"https://github.com/OPTML-Group/SOUL/blob/HEAD/src/optim/sophia.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"80caf6ff337fe734"}},{"code_sha256_prefix":"649fc48067a48529","entry":"find_all_linear_names","repo":"optml-group/soul","repo_kind":"official","path":"src/exec/Fine_tune_hp.py","file_url":"https://github.com/optml-group/soul/blob/HEAD/src/exec/Fine_tune_hp.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"649fc48067a48529"}},{"code_sha256_prefix":"dee8be97b2cf4692","entry":"get_wikitext2","repo":"optml-group/soul","repo_kind":"official","path":"src/dataset/dataset.py","file_url":"https://github.com/optml-group/soul/blob/HEAD/src/dataset/dataset.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dee8be97b2cf4692"}},{"code_sha256_prefix":"7630a157a3b32ab9","entry":"get_c4","repo":"optml-group/soul","repo_kind":"official","path":"src/dataset/dataset.py","file_url":"https://github.com/optml-group/soul/blob/HEAD/src/dataset/dataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7630a157a3b32ab9"}},{"code_sha256_prefix":"16994008353af958","entry":"get_loaders","repo":"optml-group/soul","repo_kind":"official","path":"src/dataset/dataset.py","file_url":"https://github.com/optml-group/soul/blob/HEAD/src/dataset/dataset.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"16994008353af958"}},{"code_sha256_prefix":"21b851de3f5356c4","entry":"unlearncollector","repo":"optml-group/soul","repo_kind":"official","path":"src/dataset/Base.py","file_url":"https://github.com/optml-group/soul/blob/HEAD/src/dataset/Base.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"21b851de3f5356c4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}