[Bug Report] including_permanent=True makes hook cleanup ignore level
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
Direzione di ricerca
Inizia dal ciclo di rimozione in transformer_lens/hook_points.py e confronta come applica level quando including_permanent è true o false. Controlla il contratto di reset documentato in transformer_lens/model_bridge/bridge_core.py e riproduci i casi di forward, backward e HookedRootModule.reset_hooks descritti nell’issue. Il lavoro è completato quando la pulizia filtrata per livello rimuove gli hook permanenti solo al livello selezionato, mentre la pulizia non filtrata degli hook permanenti continua a rimuovere tutti gli hook.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
On current dev, HookPoint.remove_hooks(including_permanent=True, level=2) removes hooks at every context level, not just level 2. I also reproduced this through HookedRootModule.reset_hooks(including_permanent=True, level=2).
This means clearing one context's permanent hooks can silently remove an unrelated intervention that should remain active for the next forward or backward pass.
The shared removal loop checks level only in the including_permanent=False branch. The documented reset contract says that a supplied level limits removal to hooks registered at that level. I would expect including_permanent=True to include permanent hooks within that selection, rather than discard the selection.
Code example
import torch
from transformer_lens.hook_points import HookPoint
point = HookPoint()
point.add_hook(lambda value, hook: value + 10, is_permanent=True, level=1)
point.add_hook(lambda value, hook: value + 1, is_permanent=True, level=2)
print("before:", point(torch.tensor(0.0)).item())
point.remove_hooks(including_permanent=True, level=2)
print("remaining levels:", [handle.context_level for handle in point.fwd_hooks])
print("after:", point(torch.tensor(0.0)).item())
Actual output:
before: 11.0
remaining levels: []
after: 0.0
Expected: remaining levels: [1] and after: 10.0.
System Info
- macOS arm64, Python 3.13.16, PyTorch 2.14.1.
- Unmodified source checkout at
177d2cc10ba479f767df9834d93ea624e7eba521(dev), run throughuvwith compatible CPU dependencies. This was not a restored frozen development environment. - No model weights or GPU execution are needed for the example.
Additional context
Three focused regression cases fail at the unwanted removal: forward HookPoint cleanup, backward HookPoint cleanup, and HookedRootModule.reset_hooks. Fifteen controls pass, including the existing hook-introspection tests and checks that default cleanup preserves permanent hooks, ordinary level-filtered cleanup preserves other contexts, and an unfiltered permanent reset still removes everything.
These Python-only checks used the repository's coverage-style pytest options, retaining jaxtyping/beartype instrumentation. The stock notebook/doctest plugins and complete development environment were unavailable, and the unchanged source's full typecheck was not clean in the available environment. I have not verified a native TransformerBridge model or prepared a ready code patch.
This concerns explicit level-filtered cleanup, rather than the retained-helper-hook lifecycle addressed by #1908.
Checklist
- I have checked that there is no similar issue in the repository.
- Lingua principale
- Python
- Stelle
- 3.9k
- Fork
- 708
- Merge medio
- 2g 4h
- PR unite (30g)
- 74
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TransformerLensOrg/TransformerLens
-
[Bug Report] enable_compatibility_mode() leaves created biases in float32 on bf16/fp16 bridgesForse già presa @tivris l’ha presa 3 giorni fa. Apertabug complexity-moderate good first issue help wanted TransformerBridge
TransformerLensOrg/TransformerLens#1911 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug Report] Granite MoE Hybrid grouped experts produce incorrect or unstable outputs on MPSForse già presa @janmenjayap l’ha presa 7 giorni fa. Apertabug complexity-simple TransformerBridge
TransformerLensOrg/TransformerLens#1886 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Community Feedback Requested Research Reproduction seen_by_maintainers TransformerBridge
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
TransformerLensOrg/TransformerLens#1884 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Proposal] Contextual Decomposition: Nonlinear Source Attribution and Dataset-Wide Ranking on GPT-2ApertaCommunity Feedback Requested Research Reproduction seen_by_maintainers
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
TransformerLensOrg/TransformerLens#1883 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Community Feedback Requested enhancement seen_by_maintainers TransformerBridge
Difficoltà 5/5 Più di una settimana Idoneità per principianti 8/100
TransformerLensOrg/TransformerLens#1880 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TransformerLensOrg/TransformerLens
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 66/100
AlexsLemonade/scpca-docs#518 ·
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
rocketride-org/rocketride-server#2705 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Metabuilder-Labs/tokenjam#786 ·
I maintainer di solito rispondono entro 1 giorno
-
prototype(verifier_token): map disallowed warning to contraindicated before composite precedence checkForse già presa @drk-ram l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
agentrust-io/trace-spec#582 ·
I maintainer di solito rispondono entro 1 giorno
-
area:cli priority:low refactor size:small
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
RonaldHensbergen/composable-data-stack#906 ·
I maintainer di solito rispondono entro 1 giorno