Uncovering Intermediate Variables in Transformers using Circuit Probing

Michael A. Lepori, Thomas Serre, Ellie Pavlick
11/7/2023
cs.CL

No official code found. Best implementation: mlepori1/Circuit_Probing (8 stars, last commit 2024-02-01).

Abstract

Neural network models have achieved high performance on a wide variety of complex tasks, but the algorithms that they implement are notoriously difficult to interpret. It is often necessary to hypothesize intermediate variables involved in a network's computation in order to understand these algorithms. For example, does a language model depend on particular syntactic properties when generating a sentence? Yet, existing analysis tools make it difficult to test hypotheses of this type. We propose a new analysis technique - circuit probing - that automatically uncovers low-level circuits that compute hypothesized intermediate variables. This enables causal analysis through targeted ablation at the level of model parameters. We apply this method to models trained on simple arithmetic tasks, demonstrating its effectiveness at (1) deciphering the algorithms that models have learned, (2) revealing modular structure within a model, and (3) tracking the development of circuits over training. Across these three experiments we demonstrate that circuit probing combines and extends the capabilities of existing methods, providing one unified approach for a variety of analyses. Finally, we demonstrate circuit probing on a real-world use case: uncovering circuits that are responsible for subject-verb agreement and reflexive anaphora in GPT2-Small and Medium.

View on arXivView PDF

Code Implementations(1)

Codebase for Uncovering Causal Variables in Transformers Using Circuit Probing

82Shell, PythonMay 18, 20232 years ago

Similar Papers

Cite this paper

@article{lepori2023uncovering,
  title  = {Uncovering Intermediate Variables in Transformers using Circuit Probing},
  author = {Michael A. Lepori and Thomas Serre and Ellie Pavlick},
  year   = {2023},
  eprint = {2311.04354},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2311.04354v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2311.04354.svg)](https://codeofpaper.com/paper/2311.04354)

Discussion