{"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/a-causal-framework-to-quantify-the-robustness","title":"A Causal Framework to Quantify the Robustness of Mathematical Reasoning with Language Models","arxiv_id":"2210.12023","date":"2022-10-21","proceeding":null,"authors":["Alessandro Stolfo","Zhijing Jin","Kumar Shridhar","Bernhard Schölkopf","Mrinmaya Sachan"],"abstract":"We have recently witnessed a number of impressive results on hard mathematical reasoning problems with language models. At the same time, the robustness of these models has also been called into question; recent works have shown that models can rely on shallow patterns in the problem description when generating a solution. Building on the idea of behavioral testing, we propose a novel framework, which pins down the causal effect of various factors in the input, e.g., the surface form of the problem text, the operands, and math operators on the output solution. By grounding the behavioral analysis in a causal graph describing an intuitive reasoning process, we study the behavior of language models in terms of robustness and sensitivity to direct interventions in the input space. We apply our framework on a test bed of math word problems. Our analysis shows that robustness does not appear to continuously improve as a function of size, but the GPT-3 Davinci models (175B) achieve a dramatic improvement in both robustness and sensitivity compared to all other GPT variants.","url_abs":"https://arxiv.org/abs/2210.12023v3","url_pdf":"https://arxiv.org/pdf/2210.12023v3.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":"a-causal-framework-to-quantify-the-robustness","repo_url":"https://github.com/alestolfo/causal-math","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"math","task_name":"Math"},{"task_slug":"mathematical-reasoning","task_name":"Mathematical Reasoning"},{"task_slug":"sensitivity","task_name":"Sensitivity"}],"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","method_name":"GPT"},{"method_slug":"gpt-3","method_name":"GPT-3"},{"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":"test","method_name":"Test"},{"method_slug":"weight-decay","method_name":"Weight Decay"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.12023","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.12023"}},"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/alestolfo/causal-math","reach":null}],"summary":{"ran":2,"ran_draft_wrong":2,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":7,"samples":[{"code_sha256_prefix":"556839e2971620b6","entry":"Intervention","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.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":"556839e2971620b6"}},{"code_sha256_prefix":"a0ea69194afbd57e","entry":"NumberGenerator","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.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":"a0ea69194afbd57e"}},{"code_sha256_prefix":"cac50afd0b4d3ac8","entry":"convert_to_words","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cac50afd0b4d3ac8"}},{"code_sha256_prefix":"22fcf5067c7fc164","entry":"factors","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"22fcf5067c7fc164"}},{"code_sha256_prefix":"b2495a1c39a203d9","entry":"get_vars_and_results","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b2495a1c39a203d9"}},{"code_sha256_prefix":"8281e49d8280e519","entry":"change_numbers_interventions","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.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":"8281e49d8280e519"}},{"code_sha256_prefix":"54c667c37c2e3c8e","entry":"get_vars_and_result","repo":"alestolfo/causal-math","repo_kind":"official","path":"interventions/number_interventions.py","file_url":"https://github.com/alestolfo/causal-math/blob/HEAD/interventions/number_interventions.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":"54c667c37c2e3c8e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}