{"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/inversionview-a-general-purpose-method-for","title":"InversionView: A General-Purpose Method for Reading Information from Neural Activations","arxiv_id":"2405.17653","date":"2024-05-27","proceeding":null,"authors":["Xinting Huang","Madhur Panwar","Navin Goyal","Michael Hahn"],"abstract":"The inner workings of neural networks can be better understood if we can fully decipher the information encoded in neural activations. In this paper, we argue that this information is embodied by the subset of inputs that give rise to similar activations. We propose InversionView, which allows us to practically inspect this subset by sampling from a trained decoder model conditioned on activations. This helps uncover the information content of activation vectors, and facilitates understanding of the algorithms implemented by transformer models. We present four case studies where we investigate models ranging from small transformers to GPT-2. In these studies, we show that InversionView can reveal clear information contained in activations, including basic information about tokens appearing in the context, as well as more complex information, such as the count of certain tokens, their relative positions, and abstract knowledge about the subject. We also provide causally verified circuits to confirm the decoded information.","url_abs":"https://arxiv.org/abs/2405.17653v4","url_pdf":"https://arxiv.org/pdf/2405.17653v4.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":"inversionview-a-general-purpose-method-for","repo_url":"https://github.com/huangxt39/inversionview","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"}],"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=2405.17653","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.17653"}},"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/huangxt39/inversionview","reach":null}],"summary":{"ran":1,"unverified":5},"by_repo_kind":{"official":{"samples":6,"ran":1,"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":"0d335a000080538d","entry":"AttnActGPT2Attention","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/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":"0d335a000080538d"}},{"code_sha256_prefix":"2481229d61f87908","entry":"AttnActGPT2Block","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/model.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":"2481229d61f87908"}},{"code_sha256_prefix":"b1410dcbc6d24193","entry":"AttnActGPT2Model","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/model.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":"b1410dcbc6d24193"}},{"code_sha256_prefix":"b838472f2e460913","entry":"CrossAttnActGPT2Attention","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/model.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":"b838472f2e460913"}},{"code_sha256_prefix":"c102b55d4e1b02a6","entry":"CrossAttnActGPT2Block","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/model.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":"c102b55d4e1b02a6"}},{"code_sha256_prefix":"515dcb6316a44367","entry":"CustomGPT2LMHeadModel","repo":"huangxt39/inversionview","repo_kind":"official","path":"decoder/model.py","file_url":"https://github.com/huangxt39/inversionview/blob/HEAD/decoder/model.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":"515dcb6316a44367"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}