{"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/interpbench-semi-synthetic-transformers-for","title":"InterpBench: Semi-Synthetic Transformers for Evaluating Mechanistic Interpretability Techniques","arxiv_id":"2407.14494","date":"2024-07-19","proceeding":null,"authors":["Rohan Gupta","Iván Arcuschin","Thomas Kwa","Adrià Garriga-Alonso"],"abstract":"Mechanistic interpretability methods aim to identify the algorithm a neural network implements, but it is difficult to validate such methods when the true algorithm is unknown. This work presents InterpBench, a collection of semi-synthetic yet realistic transformers with known circuits for evaluating these techniques. We train simple neural networks using a stricter version of Interchange Intervention Training (IIT) which we call Strict IIT (SIIT). Like the original, SIIT trains neural networks by aligning their internal computation with a desired high-level causal model, but it also prevents non-circuit nodes from affecting the model's output. We evaluate SIIT on sparse transformers produced by the Tracr tool and find that SIIT models maintain Tracr's original circuit while being more realistic. SIIT can also train transformers with larger circuits, like Indirect Object Identification (IOI). Finally, we use our benchmark to evaluate existing circuit discovery techniques.","url_abs":"https://arxiv.org/abs/2407.14494v2","url_pdf":"https://arxiv.org/pdf/2407.14494v2.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":"interpbench-semi-synthetic-transformers-for","repo_url":"https://github.com/flyingpumba/interpbench","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"interpbench-semi-synthetic-transformers-for","repo_url":"https://github.com/FlyingPumba/circuits-benchmark","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"interpbench-semi-synthetic-transformers-for","repo_url":"https://github.com/aaronmueller/mib","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2407.14494","atlas_url":"https://app.syntology.ai/?focus=2407.14494","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.14494"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/FlyingPumba/circuits-benchmark","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/aaronmueller/mib","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/flyingpumba/interpbench","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"repositories":2}},"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":"91fe4d401d83fd11","entry":"get_ascii_letters_vocab","repo":"FlyingPumba/circuits-benchmark","repo_kind":"official","path":"circuits_benchmark/benchmark/vocabs.py","file_url":"https://github.com/FlyingPumba/circuits-benchmark/blob/HEAD/circuits_benchmark/benchmark/vocabs.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":"91fe4d401d83fd11"}},{"code_sha256_prefix":"0486165ecf124b55","entry":"get_int_digits_vocab","repo":"FlyingPumba/circuits-benchmark","repo_kind":"official","path":"circuits_benchmark/benchmark/vocabs.py","file_url":"https://github.com/FlyingPumba/circuits-benchmark/blob/HEAD/circuits_benchmark/benchmark/vocabs.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":"0486165ecf124b55"}},{"code_sha256_prefix":"4c938e9b13c7878f","entry":"get_str_digits_vocab","repo":"FlyingPumba/circuits-benchmark","repo_kind":"official","path":"circuits_benchmark/benchmark/vocabs.py","file_url":"https://github.com/FlyingPumba/circuits-benchmark/blob/HEAD/circuits_benchmark/benchmark/vocabs.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":"4c938e9b13c7878f"}},{"code_sha256_prefix":"74367d24cee72fa0","entry":"write_cases_metadata","repo":"flyingpumba/interpbench","repo_kind":"official","path":"metadata/build_metadata.py","file_url":"https://github.com/flyingpumba/interpbench/blob/HEAD/metadata/build_metadata.py","link_basis":"first_harvest_node","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":"74367d24cee72fa0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}