{"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/2309-05973","title":"Circuit Breaking: Removing Model Behaviors with Targeted Ablation","arxiv_id":"2309.05973","date":"2023-09-12","proceeding":null,"authors":["Maximilian Li","Xander Davies","Max Nadeau"],"abstract":"Language models often exhibit behaviors that improve performance on a pre-training objective but harm performance on downstream tasks. We propose a novel approach to removing undesirable behaviors by ablating a small number of causal pathways between model components, with the intention of disabling the computational circuit responsible for the bad behavior. Given a small dataset of inputs where the model behaves poorly, we learn to ablate a small number of important causal pathways. In the setting of reducing GPT-2 toxic language generation, we find ablating just 12 of the 11.6K causal edges mitigates toxic generation with minimal degradation of performance on other inputs.","url_abs":"https://arxiv.org/abs/2309.05973v2","url_pdf":"https://arxiv.org/pdf/2309.05973v2.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":"2309-05973","repo_url":"https://github.com/xanderdavies/circuit-breaking","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"text-generation","task_name":"Text Generation"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"cosine-annealing","method_name":"Cosine Annealing"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"discriminative-fine-tuning","method_name":"Discriminative Fine-Tuning"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"gpt-2","method_name":"GPT-2"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-cosine-annealing","method_name":"Linear Warmup With Cosine Annealing"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2309.05973","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.05973"}},"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/xanderdavies/circuit-breaking","reach":{"status":"ok"}}],"summary":{"ran":9,"unverified":3},"by_repo_kind":{"official":{"samples":12,"ran":9,"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":12,"samples":[{"code_sha256_prefix":"bb8e7ced3c0abfa9","entry":"filter_text","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/data_preprocessing.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/data_preprocessing.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":"bb8e7ced3c0abfa9"}},{"code_sha256_prefix":"c889aff403e3ccae","entry":"get_data","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/data_preprocessing.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/data_preprocessing.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":"c889aff403e3ccae"}},{"code_sha256_prefix":"ba9b47ba89029051","entry":"get_mnist_3s_w_bad","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"mnist/data.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/mnist/data.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":"ba9b47ba89029051"}},{"code_sha256_prefix":"4785260563d2c44a","entry":"group_mnist","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"mnist/data.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/mnist/data.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":"4785260563d2c44a"}},{"code_sha256_prefix":"e14402ea7d99d023","entry":"l05_regularization","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"mnist/mlp_model.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/mnist/mlp_model.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":"e14402ea7d99d023"}},{"code_sha256_prefix":"7a90d9617759fa76","entry":"l1_regularization","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"mnist/mlp_model.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/mnist/mlp_model.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":"7a90d9617759fa76"}},{"code_sha256_prefix":"9f61bbbd76ea7d8a","entry":"prepare_fixed_demo","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/inference.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/inference.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":"9f61bbbd76ea7d8a"}},{"code_sha256_prefix":"c5ccb3834251f5f3","entry":"retrieve_toxic_filtered_data","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/data.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/data.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":"c5ccb3834251f5f3"}},{"code_sha256_prefix":"a2a7bd73e9052bbd","entry":"tokenize_and_concatenate_list","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/data.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/data.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":"a2a7bd73e9052bbd"}},{"code_sha256_prefix":"5cefb8a41654c608","entry":"epoch","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"mnist/train_eval.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/mnist/train_eval.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":"5cefb8a41654c608"}},{"code_sha256_prefix":"8fbf87f49043e30f","entry":"infer_batch_with_owt","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/inference.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/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":"8fbf87f49043e30f"}},{"code_sha256_prefix":"306013836f145d62","entry":"retrieve_toxic_data_low_loss","repo":"xanderdavies/circuit-breaking","repo_kind":"official","path":"toxicity/data.py","file_url":"https://github.com/xanderdavies/circuit-breaking/blob/HEAD/toxicity/data.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":"306013836f145d62"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}