{"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/beyond-concept-bottleneck-models-how-to-make","title":"Beyond Concept Bottleneck Models: How to Make Black Boxes Intervenable?","arxiv_id":"2401.13544","date":"2024-01-24","proceeding":null,"authors":["Sonia Laguna","Ričards Marcinkevičs","Moritz Vandenhirtz","Julia E. Vogt"],"abstract":"Recently, interpretable machine learning has re-explored concept bottleneck models (CBM). An advantage of this model class is the user's ability to intervene on predicted concept values, affecting the downstream output. In this work, we introduce a method to perform such concept-based interventions on pretrained neural networks, which are not interpretable by design, only given a small validation set with concept labels. Furthermore, we formalise the notion of intervenability as a measure of the effectiveness of concept-based interventions and leverage this definition to fine-tune black boxes. Empirically, we explore the intervenability of black-box classifiers on synthetic tabular and natural image benchmarks. We focus on backbone architectures of varying complexity, from simple, fully connected neural nets to Stable Diffusion. We demonstrate that the proposed fine-tuning improves intervention effectiveness and often yields better-calibrated predictions. To showcase the practical utility of our techniques, we apply them to deep chest X-ray classifiers and show that fine-tuned black boxes are more intervenable than CBMs. Lastly, we establish that our methods are still effective under vision-language-model-based concept annotations, alleviating the need for a human-annotated validation set.","url_abs":"https://arxiv.org/abs/2401.13544v3","url_pdf":"https://arxiv.org/pdf/2401.13544v3.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":"beyond-concept-bottleneck-models-how-to-make","repo_url":"https://github.com/sonialagunac/beyond-cbm","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"interpretable-machine-learning","task_name":"Interpretable Machine Learning"},{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"focus","method_name":"Focus"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2401.13544","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.13544"}},"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":"deterministic:regex_extraction","url":"https://github.com/sonialagunac/Beyond-CBM","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sonialagunac/beyond-cbm","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_honours":1,"ran_draft_wrong":2,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"fdebfb1784d89686","entry":"create_loss","repo":"sonialagunac/Beyond-CBM","repo_kind":"official","path":"losses.py","file_url":"https://github.com/sonialagunac/Beyond-CBM/blob/HEAD/losses.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":"fdebfb1784d89686"}},{"code_sha256_prefix":"f5b63e7e91bb76e5","entry":"generate_random_subset_intervention_mask","repo":"sonialagunac/beyond-cbm","repo_kind":"official","path":"intervene.py","file_url":"https://github.com/sonialagunac/beyond-cbm/blob/HEAD/intervene.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f5b63e7e91bb76e5"}},{"code_sha256_prefix":"b5b3ff2e037d360a","entry":"generate_uncertain_subset_intervention_mask","repo":"sonialagunac/beyond-cbm","repo_kind":"official","path":"intervene.py","file_url":"https://github.com/sonialagunac/beyond-cbm/blob/HEAD/intervene.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b5b3ff2e037d360a"}},{"code_sha256_prefix":"57ba537bca4d1821","entry":"intervene_on_representations","repo":"sonialagunac/beyond-cbm","repo_kind":"official","path":"intervene.py","file_url":"https://github.com/sonialagunac/beyond-cbm/blob/HEAD/intervene.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57ba537bca4d1821"}},{"code_sha256_prefix":"971f1ab2fec29f59","entry":"get_ImageNetCLIP_dataloaders","repo":"sonialagunac/Beyond-CBM","repo_kind":"official","path":"datasets/CLIP_dataset.py","file_url":"https://github.com/sonialagunac/Beyond-CBM/blob/HEAD/datasets/CLIP_dataset.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":"971f1ab2fec29f59"}},{"code_sha256_prefix":"048ba88a05ec6ddf","entry":"train_test_split_CLIP","repo":"sonialagunac/Beyond-CBM","repo_kind":"official","path":"datasets/CLIP_dataset.py","file_url":"https://github.com/sonialagunac/Beyond-CBM/blob/HEAD/datasets/CLIP_dataset.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":"048ba88a05ec6ddf"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}