open-interpretability 0.0.20__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- open_interpretability-0.0.20.dist-info/METADATA +157 -0
- open_interpretability-0.0.20.dist-info/RECORD +256 -0
- open_interpretability-0.0.20.dist-info/WHEEL +4 -0
- open_interpretability-0.0.20.dist-info/entry_points.txt +2 -0
- open_interpretability-0.0.20.dist-info/licenses/LICENSE +21 -0
- openinterp/__init__.py +6 -0
- openinterp/agents/__init__.py +25 -0
- openinterp/agents/base.py +229 -0
- openinterp/agents/judge.py +149 -0
- openinterp/agents/proposer.py +471 -0
- openinterp/agents/proposer_profiles.py +79 -0
- openinterp/agents/review_measurements.py +173 -0
- openinterp/agents/reviewer.py +498 -0
- openinterp/agreement.py +63 -0
- openinterp/audit_options.py +79 -0
- openinterp/baseline.py +254 -0
- openinterp/benchmark.py +450 -0
- openinterp/blends.py +239 -0
- openinterp/builder/__init__.py +6 -0
- openinterp/builder/agents.py +260 -0
- openinterp/builder/aligned.py +41 -0
- openinterp/builder/charts.py +411 -0
- openinterp/builder/circuit_pages.py +37 -0
- openinterp/builder/circuits.py +264 -0
- openinterp/builder/compiler.py +495 -0
- openinterp/builder/corpora.py +98 -0
- openinterp/builder/coverage.py +46 -0
- openinterp/builder/dashboard.py +255 -0
- openinterp/builder/disk_memo.py +65 -0
- openinterp/builder/experiment.py +105 -0
- openinterp/builder/heat.py +121 -0
- openinterp/builder/hrefs.py +71 -0
- openinterp/builder/learned_baseline.py +204 -0
- openinterp/builder/model_facts.py +138 -0
- openinterp/builder/neuronpedia_export.py +107 -0
- openinterp/builder/parallel.py +100 -0
- openinterp/builder/parquet_export.py +458 -0
- openinterp/builder/pieces.py +127 -0
- openinterp/builder/pii.py +211 -0
- openinterp/builder/registry_stats.py +144 -0
- openinterp/builder/research.py +109 -0
- openinterp/builder/sections.py +28 -0
- openinterp/builder/significance.py +103 -0
- openinterp/builder/sister_graph.py +180 -0
- openinterp/builder/standing.py +185 -0
- openinterp/builder/statuses.py +34 -0
- openinterp/builder/stopped.py +91 -0
- openinterp/builder/stops.py +30 -0
- openinterp/builder/superpositions.py +102 -0
- openinterp/builder/templates/_agent_role_cells.html +9 -0
- openinterp/builder/templates/_causal_chart.html +67 -0
- openinterp/builder/templates/_circuit.html +8 -0
- openinterp/builder/templates/_dashboard.html +133 -0
- openinterp/builder/templates/_experiment.html +500 -0
- openinterp/builder/templates/_macros.html +82 -0
- openinterp/builder/templates/_patchscope.html +33 -0
- openinterp/builder/templates/_prior_art.html +24 -0
- openinterp/builder/templates/_specificity.html +21 -0
- openinterp/builder/templates/_steering.html +34 -0
- openinterp/builder/templates/_superposition.html +62 -0
- openinterp/builder/templates/_vocab_chart.html +88 -0
- openinterp/builder/templates/_wiring.html +44 -0
- openinterp/builder/templates/about.html +95 -0
- openinterp/builder/templates/agent.html +69 -0
- openinterp/builder/templates/agents.html +80 -0
- openinterp/builder/templates/base.html +103 -0
- openinterp/builder/templates/circuit.html +64 -0
- openinterp/builder/templates/circuits.html +46 -0
- openinterp/builder/templates/experiment.html +21 -0
- openinterp/builder/templates/hub.html +16 -0
- openinterp/builder/templates/index.html +387 -0
- openinterp/builder/templates/layer.html +69 -0
- openinterp/builder/templates/learned-baseline.html +44 -0
- openinterp/builder/templates/model.html +151 -0
- openinterp/builder/templates/models.html +47 -0
- openinterp/builder/templates/neuron.html +234 -0
- openinterp/builder/templates/paper.html +39 -0
- openinterp/builder/templates/redirect.html +1 -0
- openinterp/builder/templates/research.html +31 -0
- openinterp/builder/templates/user.html +54 -0
- openinterp/builder/templates/users.html +39 -0
- openinterp/builder/templates/wiki/experiment.md +271 -0
- openinterp/builder/templates/wiki/index.md +32 -0
- openinterp/builder/templates/wiki/neuron.md +30 -0
- openinterp/builder/templates/wiki/stop.md +36 -0
- openinterp/builder/tree.py +470 -0
- openinterp/builder/users.py +142 -0
- openinterp/builder/wiki.py +427 -0
- openinterp/checks.py +429 -0
- openinterp/cli.py +494 -0
- openinterp/cli_baseline.py +332 -0
- openinterp/cli_benchmark.py +300 -0
- openinterp/cli_build.py +128 -0
- openinterp/cli_check.py +51 -0
- openinterp/cli_concepts.py +76 -0
- openinterp/cli_corpus.py +252 -0
- openinterp/cli_costs.py +257 -0
- openinterp/cli_coverage.py +76 -0
- openinterp/cli_crossref.py +86 -0
- openinterp/cli_errata.py +142 -0
- openinterp/cli_evidence.py +495 -0
- openinterp/cli_evidence_store.py +93 -0
- openinterp/cli_explain.py +101 -0
- openinterp/cli_loop.py +125 -0
- openinterp/cli_memory.py +28 -0
- openinterp/cli_neuronpedia.py +175 -0
- openinterp/cli_pause.py +45 -0
- openinterp/cli_pole_effects.py +133 -0
- openinterp/cli_probing.py +119 -0
- openinterp/cli_registry.py +348 -0
- openinterp/cli_reproduce.py +446 -0
- openinterp/cli_review.py +302 -0
- openinterp/cli_scan.py +223 -0
- openinterp/cli_score.py +446 -0
- openinterp/cli_sisters.py +86 -0
- openinterp/cli_submission.py +217 -0
- openinterp/cli_superpositions.py +118 -0
- openinterp/cli_wiring.py +54 -0
- openinterp/codeid.py +73 -0
- openinterp/concepts.py +400 -0
- openinterp/core/__init__.py +59 -0
- openinterp/core/agent_names.py +76 -0
- openinterp/core/attribution.py +101 -0
- openinterp/core/cache_dirs.py +15 -0
- openinterp/core/causal.py +82 -0
- openinterp/core/confounds.py +103 -0
- openinterp/core/contributors.py +26 -0
- openinterp/core/corpora.py +126 -0
- openinterp/core/costs.py +430 -0
- openinterp/core/draws.py +109 -0
- openinterp/core/errata.py +244 -0
- openinterp/core/evidence.py +160 -0
- openinterp/core/examples.py +93 -0
- openinterp/core/exceptions.py +29 -0
- openinterp/core/explanation.py +130 -0
- openinterp/core/fence.py +42 -0
- openinterp/core/heavy_lock.py +114 -0
- openinterp/core/identifiers.py +198 -0
- openinterp/core/isolation.py +149 -0
- openinterp/core/ledger.py +130 -0
- openinterp/core/licenses.py +28 -0
- openinterp/core/manifold.py +117 -0
- openinterp/core/partners.py +32 -0
- openinterp/core/patchscope.py +59 -0
- openinterp/core/paths.py +40 -0
- openinterp/core/pause.py +96 -0
- openinterp/core/pricing.py +178 -0
- openinterp/core/prior_art.py +44 -0
- openinterp/core/probing.py +146 -0
- openinterp/core/profiles.py +221 -0
- openinterp/core/project.py +28 -0
- openinterp/core/run_environment.py +38 -0
- openinterp/core/schemas.py +484 -0
- openinterp/core/specificity.py +49 -0
- openinterp/core/stats.py +172 -0
- openinterp/core/steering.py +49 -0
- openinterp/core/strict.py +19 -0
- openinterp/core/takedowns.py +136 -0
- openinterp/core/transcripts.py +130 -0
- openinterp/core/wiring.py +80 -0
- openinterp/corpus.py +476 -0
- openinterp/corpus_cache.py +145 -0
- openinterp/corpus_layouts.py +108 -0
- openinterp/corpus_presets.py +168 -0
- openinterp/corpus_rebuild.py +93 -0
- openinterp/coverage.py +155 -0
- openinterp/crossref.py +442 -0
- openinterp/data/__init__.py +9 -0
- openinterp/data/offensive_words.txt +58 -0
- openinterp/data/public_suffix_list.dat +15771 -0
- openinterp/data/sample_corpus.txt +40 -0
- openinterp/draw_steps.py +359 -0
- openinterp/errata_checks.py +129 -0
- openinterp/evidence.py +462 -0
- openinterp/evidence_branch.py +119 -0
- openinterp/evidence_lenses.py +75 -0
- openinterp/experiment_loop.py +357 -0
- openinterp/explain.py +252 -0
- openinterp/half_precision.py +79 -0
- openinterp/harness/__init__.py +37 -0
- openinterp/harness/ane/__init__.py +9 -0
- openinterp/harness/ane/backend.py +324 -0
- openinterp/harness/ane/cache.py +276 -0
- openinterp/harness/ane/chunks.py +163 -0
- openinterp/harness/ane/convert.py +116 -0
- openinterp/harness/ane/forward.py +258 -0
- openinterp/harness/ane/qualified.py +40 -0
- openinterp/harness/annotations.py +329 -0
- openinterp/harness/attribution.py +96 -0
- openinterp/harness/causal.py +264 -0
- openinterp/harness/confounds.py +184 -0
- openinterp/harness/covariance.py +301 -0
- openinterp/harness/crossref.py +195 -0
- openinterp/harness/cuda_devices.py +88 -0
- openinterp/harness/dead.py +124 -0
- openinterp/harness/devices.py +401 -0
- openinterp/harness/dictionaries.py +496 -0
- openinterp/harness/dreaming.py +116 -0
- openinterp/harness/environment.py +64 -0
- openinterp/harness/explanation_scores.py +371 -0
- openinterp/harness/features.py +276 -0
- openinterp/harness/first_position.py +137 -0
- openinterp/harness/heads.py +226 -0
- openinterp/harness/hooks.py +499 -0
- openinterp/harness/input_attribution.py +367 -0
- openinterp/harness/jlens.py +183 -0
- openinterp/harness/layer_cache.py +301 -0
- openinterp/harness/layer_major.py +274 -0
- openinterp/harness/lookahead.py +93 -0
- openinterp/harness/manifold.py +200 -0
- openinterp/harness/memory.py +471 -0
- openinterp/harness/moe.py +134 -0
- openinterp/harness/patcher.py +322 -0
- openinterp/harness/patchscope.py +177 -0
- openinterp/harness/probing.py +383 -0
- openinterp/harness/scan.py +462 -0
- openinterp/harness/scan_backend.py +201 -0
- openinterp/harness/sister_passes.py +463 -0
- openinterp/harness/sisters.py +363 -0
- openinterp/harness/sites.py +101 -0
- openinterp/harness/specificity.py +107 -0
- openinterp/harness/steering.py +159 -0
- openinterp/harness/superpositions.py +116 -0
- openinterp/harness/units.py +203 -0
- openinterp/harness/wiring.py +432 -0
- openinterp/harness/wiring_activations.py +285 -0
- openinterp/langid.py +73 -0
- openinterp/names.py +129 -0
- openinterp/neuronpedia_baseline.py +88 -0
- openinterp/neuronpedia_review.py +148 -0
- openinterp/planner.py +466 -0
- openinterp/planner_effects.py +89 -0
- openinterp/planner_heads.py +92 -0
- openinterp/planner_models.py +174 -0
- openinterp/planner_sisters.py +122 -0
- openinterp/planner_states.py +57 -0
- openinterp/planner_superpositions.py +114 -0
- openinterp/pole_effects.py +102 -0
- openinterp/prior_art.py +143 -0
- openinterp/reproduce.py +450 -0
- openinterp/revision.py +45 -0
- openinterp/runner_cache.py +35 -0
- openinterp/score_controls.py +169 -0
- openinterp/sensitive.py +243 -0
- openinterp/show.py +236 -0
- openinterp/signing.py +209 -0
- openinterp/sisters.py +476 -0
- openinterp/superposition_finders.py +225 -0
- openinterp/sync/__init__.py +5 -0
- openinterp/sync/r2.py +280 -0
- openinterp/syntax.py +399 -0
- openinterp/takedown_checks.py +76 -0
- openinterp/toxicity.py +158 -0
- openinterp/verdict_regression.py +79 -0
- openinterp/wiring_backfill.py +170 -0
- openinterp/wordnet.py +362 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: open-interpretability
|
|
3
|
+
Version: 0.0.20
|
|
4
|
+
Summary: Open Interpretability: an agent-audited mechanistic interpretability registry for native neurons in open-weight models.
|
|
5
|
+
Project-URL: Homepage, https://open-interpretability.com/
|
|
6
|
+
Project-URL: Repository, https://github.com/8W9aG/openinterpretability
|
|
7
|
+
Author-email: Will Sackfield <will.sackfield@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Requires-Dist: accelerate>=0.30.0
|
|
14
|
+
Requires-Dist: boto3>=1.34.0
|
|
15
|
+
Requires-Dist: click>=8.1.0
|
|
16
|
+
Requires-Dist: coremltools>=9.0; sys_platform == 'darwin' and platform_machine == 'arm64'
|
|
17
|
+
Requires-Dist: duckdb>=1.0.0
|
|
18
|
+
Requires-Dist: fasttext-predict>=0.9.2
|
|
19
|
+
Requires-Dist: instructor>=1.3.0
|
|
20
|
+
Requires-Dist: jinja2>=3.1.3
|
|
21
|
+
Requires-Dist: litellm>=1.40.0
|
|
22
|
+
Requires-Dist: magika<2,>=1.0.3
|
|
23
|
+
Requires-Dist: markdown-it-py>=4.0
|
|
24
|
+
Requires-Dist: nltk>=3.8
|
|
25
|
+
Requires-Dist: presidio-analyzer>=2.2
|
|
26
|
+
Requires-Dist: pyarrow>=26.0.1
|
|
27
|
+
Requires-Dist: pydantic>=2.7.0
|
|
28
|
+
Requires-Dist: spacy-curated-transformers<1,>=0.3
|
|
29
|
+
Requires-Dist: tldextract>=5.1
|
|
30
|
+
Requires-Dist: torch>=2.2.0
|
|
31
|
+
Requires-Dist: transformers>=5.22.2
|
|
32
|
+
Requires-Dist: tree-sitter-bash>=0.25.1
|
|
33
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23.5
|
|
34
|
+
Requires-Dist: tree-sitter-c>=0.24.2
|
|
35
|
+
Requires-Dist: tree-sitter-cpp>=0.23.4
|
|
36
|
+
Requires-Dist: tree-sitter-go>=0.25.0
|
|
37
|
+
Requires-Dist: tree-sitter-haskell>=0.24.1
|
|
38
|
+
Requires-Dist: tree-sitter-java>=0.23.5
|
|
39
|
+
Requires-Dist: tree-sitter-javascript>=0.25.0
|
|
40
|
+
Requires-Dist: tree-sitter-lua>=0.5.0
|
|
41
|
+
Requires-Dist: tree-sitter-php>=0.25.1
|
|
42
|
+
Requires-Dist: tree-sitter-python>=0.25.0
|
|
43
|
+
Requires-Dist: tree-sitter-ruby>=0.23.1
|
|
44
|
+
Requires-Dist: tree-sitter-rust>=0.24.2
|
|
45
|
+
Requires-Dist: tree-sitter-scala>=0.26.11
|
|
46
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
47
|
+
Requires-Dist: tree-sitter>=0.26.1
|
|
48
|
+
Provides-Extra: site
|
|
49
|
+
Requires-Dist: pagefind[bin]>=1.3.0; extra == 'site'
|
|
50
|
+
Description-Content-Type: text/markdown
|
|
51
|
+
|
|
52
|
+
# Open Interpretability
|
|
53
|
+
|
|
54
|
+
[](https://doi.org/10.5281/zenodo.24150022)
|
|
55
|
+
[](https://pypi.org/project/open-interpretability/)
|
|
56
|
+
|
|
57
|
+
`openinterp` is an open, agent-audited mechanistic interpretability registry and testing protocol for open-weight foundation models (Llama, Qwen, Mistral, …).
|
|
58
|
+
|
|
59
|
+
The registry is published at **[open-interpretability.com](https://open-interpretability.com/)**: every experiment, unit, model and paper, with search and the Parquet export.
|
|
60
|
+
|
|
61
|
+
Rather than cataloging the latents of learned SAE dictionaries, this project audits **native model weights directly**. Each entry in the registry is one *pole* (positive or negative half) of one MLP neuron. It starts from a working hypothesis, not an established finding. Goodfire's essay [*Neural Networks Are Already Clean*](https://already-clean.goodfire.com/) (Cammarata, 2026) argues that most apparent polysemanticity in native neurons comes from solvable tooling problems rather than superposition. Its technical companion paper has not been published, so the registry tests that claim one pole at a time rather than assuming it. A pole that resists a clean explanation is a result too.
|
|
62
|
+
|
|
63
|
+
## Quickstart
|
|
64
|
+
|
|
65
|
+
An experiment takes one neuron, proposes what it does, has a *different* model try to break that claim, and posts the result, whatever it is. A hypothesis that fails is a result too. The shortest path is to let Claude Code drive the whole loop. It needs no API keys: Claude Code's own subagents write the proposal and the review.
|
|
66
|
+
|
|
67
|
+
### What you need
|
|
68
|
+
|
|
69
|
+
| Tool | What it is for | Needed |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| [Git](https://git-scm.com/) and a GitHub account | Fork the repo, and push your experiment as a pull request | Always |
|
|
72
|
+
| [Python](https://www.python.org/) 3.11+ | Runs `open-interpretability` and the model | Always |
|
|
73
|
+
| [uv](https://docs.astral.sh/uv/) | Installs the dependencies into `.venv` and runs the commands (`uv run …`) | Always |
|
|
74
|
+
| [GitHub CLI](https://cli.github.com/) (`gh`) | Opens the draft PR that claims a neuron. The planner also reads open PRs with it, to skip neurons that others have claimed | To contribute. Without it, the planner can't see claims, and you open the PR on github.com |
|
|
75
|
+
| [Claude Code](https://claude.com/claude-code) | Drives the experiment, and its subagents answer as proposer, reviewer and judge | To run the loop. Also to run it yourself with no API keys |
|
|
76
|
+
| An LLM API key (any [LiteLLM](https://docs.litellm.ai/) provider) | Proposer and reviewer through an API instead of Claude Code | Only to run it yourself through an API |
|
|
77
|
+
|
|
78
|
+
Node.js is not needed: no step of the build uses it, and Claude Code's native installer doesn't need it either (only its npm install does). [Vale](https://vale.sh) is needed only for `make lint` and `make vale` when you change code.
|
|
79
|
+
|
|
80
|
+
A laptop CPU is enough. The default models are small (Qwen2.5-0.5B is about 1 GB, downloaded on first use). An 8 GB machine runs GPT-2 and Qwen2.5-0.5B, and Qwen2.5-1.5B needs 16 GB ([Memory](docs/experiments.md#memory)). The first scan also downloads about 1.5 GB of labelling models.
|
|
81
|
+
|
|
82
|
+
### Run it
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
gh repo fork 8W9aG/openinterpretability --clone # or fork on GitHub and git clone your fork
|
|
86
|
+
cd openinterpretability
|
|
87
|
+
claude "/loop /land-experiment"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
That is all. The loop runs one experiment after another until you stop it. Each one draws a neuron with `open-interpretability next` and claims it with a draft PR. It then scans the neuron, has one subagent propose a hypothesis and another review it, and posts the result. `uv run` installs the dependencies on first use. Each scan builds its own corpus. A scan takes about 10–15 minutes on CPU.
|
|
91
|
+
|
|
92
|
+
`land-experiment` merges a green PR only when it changes `wiki/` alone and you have write access. From a fork, it leaves each PR for a maintainer and goes on to the next experiment. To be credited, set `export OPENINTERP_CONTRIBUTOR=<your GitHub username>` (never an email) before you start Claude Code. For one experiment and no merge, start `claude` and ask: "Run the next experiment and open a PR with the result."
|
|
93
|
+
|
|
94
|
+
### Or run it yourself
|
|
95
|
+
|
|
96
|
+
With API keys set for the proposer and the reviewer (e.g. `export ANTHROPIC_API_KEY=...` for the default proposer, `anthropic/claude-opus-5-5`, and `OPENAI_API_KEY` for the `openai/gpt-5` reviewer below):
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
make install # creates .venv with everything
|
|
100
|
+
uv run open-interpretability next --steps # draws an experiment and prints every step as exact commands
|
|
101
|
+
uv run open-interpretability audit --model Qwen/Qwen2.5-0.5B --random --corpus corpus.jsonl
|
|
102
|
+
uv run open-interpretability verify --audit-file submissions/<…>.json --agent-model openai/gpt-5
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`audit` scans the neuron and asks the proposer for a hypothesis. `verify` has the reviewer write probes, measures them on the model, and writes the experiment under `wiki/experiments/`. Build `corpus.jsonl` first with the command in [The scan corpus](docs/experiments.md#the-scan-corpus).
|
|
106
|
+
|
|
107
|
+
Claim the neuron with a draft PR before the scan, so others don't draw it too (`next --steps` prints the commands). When it finishes, run `make check`, commit `wiki/` and mark the PR ready. A PR that changes only `wiki/` merges automatically when CI passes.
|
|
108
|
+
|
|
109
|
+
### More detail
|
|
110
|
+
|
|
111
|
+
- [docs/experiments.md](docs/experiments.md): other LLMs, answer files without API keys, the scan corpus and caches, and loops and parallel sessions. Also attention heads and dictionary latents, contributing and credit, the skills, definitions and the models.
|
|
112
|
+
- [docs/benchmark.md](docs/benchmark.md): the public benchmark for explanation tools, and how to score an explainer on it.
|
|
113
|
+
- [docs/development.md](docs/development.md): make targets, what CI checks on a pull request, record signing, the code layout, and the static site and deploy.
|
|
114
|
+
- [docs/research-questions.md](docs/research-questions.md): the questions the project exists to answer, and how close the registry is to each.
|
|
115
|
+
- [docs/PROTOCOL.md](docs/PROTOCOL.md): how verdicts are decided.
|
|
116
|
+
- [docs/moe.md](docs/moe.md): how neurons in mixture-of-experts models will be audited. It is a decision, not built yet.
|
|
117
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md): the ways to contribute, and the rules for pull requests and style.
|
|
118
|
+
- [SECURITY.md](SECURITY.md): how to report a leaked signing key, a way to get a false VERIFIED past CI, or another security problem. Report it privately, not in an issue.
|
|
119
|
+
|
|
120
|
+
### Install the package
|
|
121
|
+
|
|
122
|
+
To run the pipeline without a clone, install it from PyPI. The command is `open-interpretability` (`openinterp` still works for now):
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
pip install open-interpretability # add [site] to build the site's search index
|
|
126
|
+
uvx open-interpretability --help
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
torch is installed from PyPI by default. For a CUDA build, add PyTorch's index, for example `--extra-index-url https://download.pytorch.org/whl/cu128`. For a smaller CPU-only build, use `--extra-index-url https://download.pytorch.org/whl/cpu`.
|
|
130
|
+
|
|
131
|
+
## Protocol
|
|
132
|
+
|
|
133
|
+
Every claim is empirical and falsifiable:
|
|
134
|
+
|
|
135
|
+
1. **Propose.** A submitting agent scans a corpus for the neuron pole's top-activating snippets. It then writes a hypothesis, says whether the pole is *retrospective* (reacts to tokens it has already read) or *lookahead* (prepares an upcoming token). It also supplies minimal-pair counterfactuals with predicted activation deltas.
|
|
136
|
+
2. **Review.** A reviewer agent (ideally, but not necessarily, a different model from the proposer) writes 10–30 adversarial probes (30 by default). Two thirds are hard negatives (near-misses the hypothesis says should *not* fire), plus some positive holdouts. Every probe and counterfactual is then run through the real model. The verdict comes from those measurements and not from the reviewer's opinion, so anyone with the weights can reproduce it:
|
|
137
|
+
- balanced accuracy on hard negatives vs. positive holdouts, each gated separately, with near-duplicate probes counted once
|
|
138
|
+
- confound control: the hypothesis must match or beat token-identity, position and never-active baselines
|
|
139
|
+
- counterfactual Δ reproduction within a tolerance relative to the prediction
|
|
140
|
+
- lookahead consistency (the claimed mechanism compared with KL(clean ‖ pole-ablated) on next-token distributions)
|
|
141
|
+
- covariance: the most correlated same-layer neurons, and joint ablation with them to expose redundancy (recorded, not gated)
|
|
142
|
+
- causal sufficiency (clean → corrupted patching) and necessity (corrupted → clean resample ablation), recorded but not yet gated. Downstream MLP outputs are frozen to mitigate self-repair (the hydra effect). Each score is ranked against same-layer neurons that change as much between the pair
|
|
143
|
+
3. **Publish.** Every experiment is compiled into a fully static site plus a Parquet registry, whatever its verdict. Null results are data too. Within each neuron, experiments are ordered by how *conclusive* their evidence is, in either direction (see `openinterp/builder/significance.py`). The output is hosted on Cloudflare R2 (zero egress) at [open-interpretability.com](https://open-interpretability.com/) and searched client-side with Pagefind and DuckDB-Wasm.
|
|
144
|
+
|
|
145
|
+
The full experimental protocol (roles, lifecycle, decision rule and reproducibility requirements) is in [docs/PROTOCOL.md](docs/PROTOCOL.md).
|
|
146
|
+
|
|
147
|
+
## Licence
|
|
148
|
+
|
|
149
|
+
The code is under the MIT licence (`LICENSE`). The data (the records and pages under `wiki/` and the site built from them) is under CC-BY-4.0 (`wiki/LICENSE.md`). Corpus excerpts inside records keep their corpus's own terms, and model outputs are also subject to the model's terms.
|
|
150
|
+
|
|
151
|
+
## Citing
|
|
152
|
+
|
|
153
|
+
To cite the registry or the package, use [CITATION.cff](CITATION.cff). GitHub shows it as "Cite this repository". The concept DOI, [10.5281/zenodo.24150022](https://doi.org/10.5281/zenodo.24150022), names every version and resolves to the latest. Each release is archived on Zenodo with its own DOI, so a citation can name an exact version.
|
|
154
|
+
|
|
155
|
+
## Status
|
|
156
|
+
|
|
157
|
+
Early scaffold. `make sample-run` builds the site from six real experiments in `wiki/experiments/` (listed in the `Makefile`), imported with `open-interpretability wiki --import-dir`.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
openinterp/__init__.py,sha256=9YMC9SnvnecfpnjD7QBEqrklvzKwQRmTydyulkePPvA,266
|
|
2
|
+
openinterp/agreement.py,sha256=MNNJJXiNi725sjZpI4sGLLnakOMqpFyM53M8HlydFW0,2658
|
|
3
|
+
openinterp/audit_options.py,sha256=QGqhyqx7WnzTunEKPYUnF6ceRGrdrRafviQnwtVnL0s,3151
|
|
4
|
+
openinterp/baseline.py,sha256=Xj_khz1LAwG3ISw7fWYRgmDBfjBdDsuAoiFu_XAfuho,9592
|
|
5
|
+
openinterp/benchmark.py,sha256=e68Bn3Ck5LfpcUvWiQX3-_NiPUERkX8LjYQ0qO40ThA,18410
|
|
6
|
+
openinterp/blends.py,sha256=aRmKHAsoNhyQKkiDGEON6GYNpVKr8VfBRcqMC7jQHR4,9242
|
|
7
|
+
openinterp/checks.py,sha256=FedHcVGx4wqiJ85KLVTi2oHXBdoMjvPekGhp6kse97M,18047
|
|
8
|
+
openinterp/cli.py,sha256=ZUJn6Uc8qjX5w9t_DL_K2mkO2ji3OBXCX_AOzhHSHFw,17990
|
|
9
|
+
openinterp/cli_baseline.py,sha256=xOfMvsFOo47tduL09LkLDchi_yPi0CYLKMmdYgl73Mc,13294
|
|
10
|
+
openinterp/cli_benchmark.py,sha256=MLoaIdqkgUQ8dhqHXa_FlP1KPFke0ua_xPnpk6ipXEM,12809
|
|
11
|
+
openinterp/cli_build.py,sha256=G1JHrDyypFkVmX6M8nJmuGKN9NvKPD-XGIP0uenb_cs,4659
|
|
12
|
+
openinterp/cli_check.py,sha256=K0BMn1ZNo9SSWjALo6-Hm9r-M9oclw6Dd9QaY5SpvpM,1973
|
|
13
|
+
openinterp/cli_concepts.py,sha256=u6WyuBrN8SE9brMphYpdg_ZjhpigaRr-yPkCb7a7V0s,3014
|
|
14
|
+
openinterp/cli_corpus.py,sha256=AIrS8TypAAlTHjF3RFy9bH6vW1jyc-exbAS5n94zbN8,9756
|
|
15
|
+
openinterp/cli_costs.py,sha256=RkogLmTP6IKAKgKIFEkGWWwPZPwqUgFvXUqrudcTllk,10774
|
|
16
|
+
openinterp/cli_coverage.py,sha256=u70W5CEn1VaYSUqJ5LMNZ06Dd6PN0p53icyu6l7Ga2g,3202
|
|
17
|
+
openinterp/cli_crossref.py,sha256=D1pvBgOYSamGa54uedHhmBem1d57WrBfuJUhBD5gFG0,3290
|
|
18
|
+
openinterp/cli_errata.py,sha256=BoAWDzZERr5JYYyIDRRRs8dSk83Wd1teFiLRZj7mYkY,6839
|
|
19
|
+
openinterp/cli_evidence.py,sha256=dAHgv8aQvbL9GpKf8aA5n07bGdESWlUj0jXvzeJfofE,19223
|
|
20
|
+
openinterp/cli_evidence_store.py,sha256=NxExiSrD_835-OshCmuICliCJ3XIeiMaOz3s9JQr6e0,3263
|
|
21
|
+
openinterp/cli_explain.py,sha256=21n0hTBtm8Tyj6d9EG4_xGpZ0XhmJ8Lz9mHf-HTcqug,4178
|
|
22
|
+
openinterp/cli_loop.py,sha256=Q6V6soCFAgfyklc1R5uZ98_Wcf0d7xwEFiAEbMvtcj4,4184
|
|
23
|
+
openinterp/cli_memory.py,sha256=-H98veXD2dmA6YMjYVVdP-kLXpm9EEys-j_8VrT4cHw,779
|
|
24
|
+
openinterp/cli_neuronpedia.py,sha256=09iPWp6q07JDk9bski5hiqAxBtBI0hOjPQMxflTIGxs,7178
|
|
25
|
+
openinterp/cli_pause.py,sha256=nVyzQ11xUQ7xr3RKR3X9EDYvLHaYIqArNpaY8eWyc9M,1446
|
|
26
|
+
openinterp/cli_pole_effects.py,sha256=X2YPo4e7D9NbNAnDNKruAxYx47ntc8-wwrHLv3e6pwE,4784
|
|
27
|
+
openinterp/cli_probing.py,sha256=6c_I9yekEyE6NSImwrCXDm1VnQv8JtBwWQFpsFkOad0,4571
|
|
28
|
+
openinterp/cli_registry.py,sha256=CxDehK7KtORRIK7rjyifqDl0tx1ejk5oftk9TdZQ5wI,12469
|
|
29
|
+
openinterp/cli_reproduce.py,sha256=bW9WnczX0Cn1wI4ihxZnaeepYzw2_jwc9uLjvRRN7Yc,17725
|
|
30
|
+
openinterp/cli_review.py,sha256=59_8M1-yg3Kye3gCuwfZnknXIf1TyxYvOSOwSTUZ6o0,12735
|
|
31
|
+
openinterp/cli_scan.py,sha256=VbC9ZXeqzzKNHmCjg447kFk_CrkjqG6QF610bIMVol0,8554
|
|
32
|
+
openinterp/cli_score.py,sha256=rtrXE26-UokjLqrEp7Xfv2q5HKG81LnaK0q1ndOogg4,17851
|
|
33
|
+
openinterp/cli_sisters.py,sha256=ItrcTMfU131E_Fe850UFT0Ep00ThI6pupQ6anNC1tQk,3249
|
|
34
|
+
openinterp/cli_submission.py,sha256=ypHt5LuRriCEFeqXUpdOl32bkw2eldX059-ktYMMLc4,8627
|
|
35
|
+
openinterp/cli_superpositions.py,sha256=L4jjXXNcMi62E9nb0wJ8QWy3urNb3vn_VlbgAsl-iwQ,5029
|
|
36
|
+
openinterp/cli_wiring.py,sha256=MpH6FbsjjgdKWN8Cy4ove7oAztzD7_V17MvS52JV_ms,1843
|
|
37
|
+
openinterp/codeid.py,sha256=aMRu4kNqEZ4Heb-QH9g_84IGPC5S2hNF40TzyS5jbXo,3311
|
|
38
|
+
openinterp/concepts.py,sha256=Lf5xtTzxOxEmDChnFaHdRbryxqfEsKXI6M1fugRVloM,15659
|
|
39
|
+
openinterp/corpus.py,sha256=qvvYQmaNtNWPtJ4X3HxKWE0P35D0pMi5c21ITNonyGI,19113
|
|
40
|
+
openinterp/corpus_cache.py,sha256=IxnJ22zc9WoNBu-bDxn_qh49BMcpzg7c55Fc8HITNhQ,5675
|
|
41
|
+
openinterp/corpus_layouts.py,sha256=HijQZWDacFgeMLVsC5FokllEbT3umzLTq_IuadZMxQQ,4739
|
|
42
|
+
openinterp/corpus_presets.py,sha256=Ig4iVYKG2G1-ujnv2UgO__AIyP6a_bl8FOCi5-_qfCM,9884
|
|
43
|
+
openinterp/corpus_rebuild.py,sha256=vx1sp0lBxMP0Bb5nviZLI3ornScM5IpnVyL3Aa17PAQ,3519
|
|
44
|
+
openinterp/coverage.py,sha256=guWtiSXWW6GTJKbL2RW5lU12W-2mWsItNOTXUPUEC24,6872
|
|
45
|
+
openinterp/crossref.py,sha256=4BTOd2BQ6GZl80yNR_4fRop1HHtSLmpQeJds3k8bW4A,17218
|
|
46
|
+
openinterp/draw_steps.py,sha256=14I8nckOKH3b4UFaDupRF9N4ypmV-GrvyloRfGt2Jp8,14723
|
|
47
|
+
openinterp/errata_checks.py,sha256=8q2J5ycdNVgXi6gJ8YLx6hekXjf8bmCRx_-SAWHndsI,5378
|
|
48
|
+
openinterp/evidence.py,sha256=citkAwavYHSa4GpeyvZS5MLMBeVf4VuWAy9QwpOMttA,19037
|
|
49
|
+
openinterp/evidence_branch.py,sha256=kxK32f-xN7lEdK9LPYtgk8VFGByvDN2HSDLUcxNF7sU,4863
|
|
50
|
+
openinterp/evidence_lenses.py,sha256=h0DpeABo27zwmJQL9wZZJOMTNnYbLDmVnud_2UCnGYo,3177
|
|
51
|
+
openinterp/experiment_loop.py,sha256=J4K8mI5t-GmGgvM4ziCAIXXXkAur4LwYI9nLOWJBNS4,13823
|
|
52
|
+
openinterp/explain.py,sha256=M2qGO2Wf8RfL4E2qoyE6G2keIMQ7EvEeb0WhXMOYFwk,10603
|
|
53
|
+
openinterp/half_precision.py,sha256=8unld4DSt80zxuDA3UWcRN450SIU1wtmPgZhFGcTuhY,2970
|
|
54
|
+
openinterp/langid.py,sha256=9aoErLAchTxydkfI8oWIQqoV3T2gmV-xUKk1B7uC-qQ,3039
|
|
55
|
+
openinterp/names.py,sha256=7pE1GXGs_JtoOufauQfGa8i7kCx8JCVcHU3sBIrF0PU,5076
|
|
56
|
+
openinterp/neuronpedia_baseline.py,sha256=jkhvCaBHEia8i_vCazO0628Xr63JmhiFz0yBgV0yrxI,4279
|
|
57
|
+
openinterp/neuronpedia_review.py,sha256=2r8mom1olcQIIr3YXkm29fOaR5tqATzDUabqRIF4Qgc,6282
|
|
58
|
+
openinterp/planner.py,sha256=Xpgy80Th1CTFk3_7jXwWHuQlQy-NXAOIZGhFOEC-9GU,19241
|
|
59
|
+
openinterp/planner_effects.py,sha256=_8wPFIXyJgaqYdZXDIbnswMqGqKAjzQzChsrQmuBPsw,3477
|
|
60
|
+
openinterp/planner_heads.py,sha256=-Turw86to6UYRaFbXG9erhjvANXMCAKzY07wOjR6UMo,3651
|
|
61
|
+
openinterp/planner_models.py,sha256=mW8_70M_gVS9mk3d7OyddXnjhguxd_rcTiKL2jPaiAw,7960
|
|
62
|
+
openinterp/planner_sisters.py,sha256=ev98_iMU6xzChdpHHY423HCHnflcsPhegcvmrWx8qqI,5093
|
|
63
|
+
openinterp/planner_states.py,sha256=isTq9CCx-jxLjO0TX77kY_ueE-IzcyC2j45GAcDQcA0,2399
|
|
64
|
+
openinterp/planner_superpositions.py,sha256=47eSwOjIo_DWxY4q5VdwLzWQZwODgI72m1QoTtGCbIE,4934
|
|
65
|
+
openinterp/pole_effects.py,sha256=t93vzbi5vE1DdFeDefUtRU3IAXZVbLBSD7fOMxrZ-b4,3949
|
|
66
|
+
openinterp/prior_art.py,sha256=12B_kfvTYVxnh3jJf2-eYb71nd9W9HeXfKUwKpZ7B_s,5726
|
|
67
|
+
openinterp/reproduce.py,sha256=TjZvS6uPtyYkmC4X9TCbsurMF8j5EMyB9yyVE5Hv3ZU,20129
|
|
68
|
+
openinterp/revision.py,sha256=ADuamT3Z6yOX_yuq7uJBEaam4gpvJ2QdU0O4Cu91DvU,2030
|
|
69
|
+
openinterp/runner_cache.py,sha256=ttiYcvLEz62LP_YVAXUuq2X1I8V5D1L7rUH1kfyrCkw,1092
|
|
70
|
+
openinterp/score_controls.py,sha256=Q7HkbvD4TVL1XrXgFhErfZyOaHF8kWwH0-TTUOyfuPM,7054
|
|
71
|
+
openinterp/sensitive.py,sha256=MebfeqV1PzBT_ZEEXU6tNMzli3D4ttAysdfykoKsRhs,10993
|
|
72
|
+
openinterp/show.py,sha256=7tHpn1sdL56Sci0EbPlrz9HmYgTrYiXUAReP_6txTJ0,9903
|
|
73
|
+
openinterp/signing.py,sha256=eEXYMOs29O1lCPBevnpQ5RtDdZTbQlE3YAyGz1-HTvs,9320
|
|
74
|
+
openinterp/sisters.py,sha256=CM9ZFVBDC7lxIFbnK-hImiIc87UaNUNu-dJHYOU3nFY,19688
|
|
75
|
+
openinterp/superposition_finders.py,sha256=J9qxLY3PZZST9J2_ZYYwm1oD1-eZ9z8iK-OCaFDfJRc,10067
|
|
76
|
+
openinterp/syntax.py,sha256=XZpG8KwzNzlRuhWp3c_w6FFz_J8pBarmZZ9g5PlwQg8,17162
|
|
77
|
+
openinterp/takedown_checks.py,sha256=2DgjjdamX1EjGhxYWcVFZo0Ja9SxfVazoc6e5O3rSZ4,3047
|
|
78
|
+
openinterp/toxicity.py,sha256=eG14jtwuNoGNS0RTz_oeU1iz1UOUNLbJR24tGWUFUs0,6834
|
|
79
|
+
openinterp/verdict_regression.py,sha256=bo7o42UPlxPfwd5DV9xwuvSOaYUQY46H1F2jBQaOnWc,3239
|
|
80
|
+
openinterp/wiring_backfill.py,sha256=qFLHofVx5pa-UAz66AsVcENU1yCyHRKIfBWwTRNG1EM,6258
|
|
81
|
+
openinterp/wordnet.py,sha256=sutlH8R_br9Y5PKB85h0QLDUYfjjbyGd3D7KVkMRJ-4,14414
|
|
82
|
+
openinterp/agents/__init__.py,sha256=azi8nXW5qOBH1qQ15SU8ilVUjL9FUTCt7WWOus51v20,591
|
|
83
|
+
openinterp/agents/base.py,sha256=Vna-WPMqJz6wdmDcY8qrQeYswy3bZTwA0iX6en-aDWs,10097
|
|
84
|
+
openinterp/agents/judge.py,sha256=lb4b3L875z8yPjiPwHkJZ0ksR48MaslVyN09uaFZkjQ,6298
|
|
85
|
+
openinterp/agents/proposer.py,sha256=48VMttQlqhcEyvfS_DmMkQZmiZir59_7yWN9cEBBGbY,20555
|
|
86
|
+
openinterp/agents/proposer_profiles.py,sha256=M3B0n7yP4I8eHwPwh3sl2EqQ5ynyGux5heqZDmr9tbM,4357
|
|
87
|
+
openinterp/agents/review_measurements.py,sha256=XfU-3DtkOnVV1gRSypx4Dufx42fZ6EwXuZsMn-ltGQc,7611
|
|
88
|
+
openinterp/agents/reviewer.py,sha256=SeG4rJifclQSvSuoUOEYSy7JhqldaQ4knBwwUXIaerM,21777
|
|
89
|
+
openinterp/builder/__init__.py,sha256=sBUKYpbFo_ym8V-wv78h2jtJt_mNxkU-lM9CeHgBcQY,343
|
|
90
|
+
openinterp/builder/agents.py,sha256=obgOhgUkLg7HOy3RSH1faAXk4UuX__x4MBj9m_LBEZ4,10235
|
|
91
|
+
openinterp/builder/aligned.py,sha256=TIKCr-wq-Y7HQi5-4P2XHTCpJZq_0WxPTBGMoVpxIkY,1615
|
|
92
|
+
openinterp/builder/charts.py,sha256=uu4k7eKOxZW-it88fFDSFku1pLFABln5-DsYC13oTcA,15548
|
|
93
|
+
openinterp/builder/circuit_pages.py,sha256=jdXsecgRSGj7LPDxeFXgRovZnvu_YzInG2KO8LoT920,1832
|
|
94
|
+
openinterp/builder/circuits.py,sha256=u64UWXcCGGDHSddX_TOEjEiOLV7uh4eymhObssyoPfw,10316
|
|
95
|
+
openinterp/builder/compiler.py,sha256=ml11iifr83CM8ToQVM1RqOctFqo0tz1WB6TATsi23Wc,21017
|
|
96
|
+
openinterp/builder/corpora.py,sha256=rixolJK0omy_31GuYPUsqSGKx49n0oCulyJaZLSxq50,3756
|
|
97
|
+
openinterp/builder/coverage.py,sha256=11KVnagGAKJDjA-cseSWsq_7TsBwkYcm0Ea8XdVRp7w,1878
|
|
98
|
+
openinterp/builder/dashboard.py,sha256=jSrjIOkkLX8birOF2ak-nSq-ivpVHim69PGFXYrR-5c,9998
|
|
99
|
+
openinterp/builder/disk_memo.py,sha256=zRuil2pi5NcO7GryZUw0Uz32jp6P3IHgDxfGRAALCrM,2615
|
|
100
|
+
openinterp/builder/experiment.py,sha256=cDjA1ng2UbMUZfLRdNgvdcOxZmU7Z3r3LovZmlNdpVw,3906
|
|
101
|
+
openinterp/builder/heat.py,sha256=XbDUIWXUmjQDR6qbQYlSzMBJ5p9RJt6irtRpn73K-j8,4781
|
|
102
|
+
openinterp/builder/hrefs.py,sha256=EQulM2qoE71otDEPAZ0cEfpKZ0OLO7ojXfs80Deafqk,2394
|
|
103
|
+
openinterp/builder/learned_baseline.py,sha256=bIV4d6QtY60SVjp8FWG-mXkcERT6AN7e9UqDD9T_KfA,8287
|
|
104
|
+
openinterp/builder/model_facts.py,sha256=ZUrLir-BLwtfQkGPELvb4QhZiKf2PrdAdkPEH1psWcU,5185
|
|
105
|
+
openinterp/builder/neuronpedia_export.py,sha256=y7HxYa6Rw-VNau_fpfs47wIzc2SsBC17lMO9_dLwq0o,4784
|
|
106
|
+
openinterp/builder/parallel.py,sha256=MtxlmfKWot0QRpdvHa1cokwHLG3jWXYuo5U2L7BCddY,3966
|
|
107
|
+
openinterp/builder/parquet_export.py,sha256=cP_A-mAIvd3wddddYjddOsusXi5P5SSiUYs7Bw5E3so,18940
|
|
108
|
+
openinterp/builder/pieces.py,sha256=tD7fOg9Q9J8zZEChFJgGUAj8ig3KFM0Lj-4iqdb1f5U,4710
|
|
109
|
+
openinterp/builder/pii.py,sha256=5JjU3FRKzDM8UnwEVPoVx2WCOG8b5Wf_AmT-QlpXGHk,8012
|
|
110
|
+
openinterp/builder/registry_stats.py,sha256=Xw9ebReHAhozWdl_UxUUVO9ilgc87JUMYt72XlNpQac,6596
|
|
111
|
+
openinterp/builder/research.py,sha256=-JjOFmXvZ0WRaQipS-VFHLEPKzh636MxR252LImyCbs,4310
|
|
112
|
+
openinterp/builder/sections.py,sha256=HCqqWWD5Zl0rSplCIgHuILyLMV8BIti7PzV7-FNwhI4,1209
|
|
113
|
+
openinterp/builder/significance.py,sha256=lVd0okm7hqx8usi6UNZYt1Rzj2SqCsUv74alxJXCmDc,4157
|
|
114
|
+
openinterp/builder/sister_graph.py,sha256=Zz1BHSeW747e_Df7JUGmS8AonRsMRDZb8lcm_UV6A_w,6982
|
|
115
|
+
openinterp/builder/standing.py,sha256=hakGVJAHr62k9kT926GuFHiHl4PN3QpomIbZinItiAs,7523
|
|
116
|
+
openinterp/builder/statuses.py,sha256=uh0luIknpCaLSo_gaVr_7LuPwy1VFvMMijIKerz0zAw,1496
|
|
117
|
+
openinterp/builder/stopped.py,sha256=co3qaMs_UMV8pBIR8MxI3GQLE6ZU0CSQ69zpwDY_nu8,3847
|
|
118
|
+
openinterp/builder/stops.py,sha256=4arvRYtGw43jpLUJ7X86EgkOVLs0HqcoZCpcCSEFbbA,1274
|
|
119
|
+
openinterp/builder/superpositions.py,sha256=aAQs2ZpdE1uvWOsXCmstwaF76Zm1VAee21-JCW2fWoQ,4129
|
|
120
|
+
openinterp/builder/tree.py,sha256=1x38E_j7NiSljllxT2zaYGoPSzswbGB1xvhqLVVG5jA,17059
|
|
121
|
+
openinterp/builder/users.py,sha256=_26zFEnQ5inSvBA386EgP88CzsGgmmkETfFYYM8tQgQ,5800
|
|
122
|
+
openinterp/builder/wiki.py,sha256=N0l21Erqyn7dpOnzbkHt40ZSkl5bevr9cCt_5A2j_6I,16970
|
|
123
|
+
openinterp/builder/templates/_agent_role_cells.html,sha256=V5g479NGU1pzbFe7mRaToSjRn8r_3V_Xq0SlFfpdwB4,1005
|
|
124
|
+
openinterp/builder/templates/_causal_chart.html,sha256=u-g4aaTnA38Ptc26PYZDOaSuhxlz_GA9YLNrQPKWRoA,5736
|
|
125
|
+
openinterp/builder/templates/_circuit.html,sha256=e_PSGwvYZ7P_W6beoI9_h84CDBi1fLC30ut1gAWnf6g,507
|
|
126
|
+
openinterp/builder/templates/_dashboard.html,sha256=76OjQt3-wkBlXKNu0RxcO2TXC-4Z_XXBGRM2_lEVQUc,9942
|
|
127
|
+
openinterp/builder/templates/_experiment.html,sha256=-3vuoar89paQOWD80KX8b3ljRDCqFciJyAf0_UiyT0o,40772
|
|
128
|
+
openinterp/builder/templates/_macros.html,sha256=YvpATyZw1vr6fUwR67bbTlCY3K32l7pzjUnsfxZ9mGs,5202
|
|
129
|
+
openinterp/builder/templates/_patchscope.html,sha256=waLd0bPmlg0X1Sc8rNTz8I23ERric6cxpBkEOiYldck,2357
|
|
130
|
+
openinterp/builder/templates/_prior_art.html,sha256=wi0lWGQr0Rsoeb_WPgU_AWpgRVz2J26Ud93TRJ_g0fs,1639
|
|
131
|
+
openinterp/builder/templates/_specificity.html,sha256=C7BdtX9xeNgjUvyKgzOdMl1BtMTINQVkCRf5MXEB8Q0,1988
|
|
132
|
+
openinterp/builder/templates/_steering.html,sha256=MvjKryryeA5rAlhKCo3WKgYsN7qU76f9cPyjOt9iQ4s,2612
|
|
133
|
+
openinterp/builder/templates/_superposition.html,sha256=2a0bVo1LbvoLdadMmvQgMzCpZz4U9XAq-B4R5Vf2f2U,3626
|
|
134
|
+
openinterp/builder/templates/_vocab_chart.html,sha256=uf_R2stBEBLcqWwP1nQUTvjHzxS-q49NAMFm90f4PSY,6092
|
|
135
|
+
openinterp/builder/templates/_wiring.html,sha256=V0LXakir3niRCWqyPCUggBElt1M5ic-LzAbpXE3zyyY,3418
|
|
136
|
+
openinterp/builder/templates/about.html,sha256=oAeAmxBFkCoAOj5L7G2fLVb9vM7YZgYwGb-J2GVhk-g,6110
|
|
137
|
+
openinterp/builder/templates/agent.html,sha256=vDg_sPE-mgeKSU197-aD6TsOvpLlD2JQk53COg93RQk,4644
|
|
138
|
+
openinterp/builder/templates/agents.html,sha256=nbK0jlQdtMajS9LVLsAiWcCr2AKquZzIT9sSbJofDXI,4752
|
|
139
|
+
openinterp/builder/templates/base.html,sha256=XAQ4Ry9PEhQ4F6F-gZ7K7iUAhe4uRQFmI7tSEYjr-cE,6256
|
|
140
|
+
openinterp/builder/templates/circuit.html,sha256=qQf-SefrMObLHMnArVQ_CfYMHDgledXtze_b4yWOaKA,4241
|
|
141
|
+
openinterp/builder/templates/circuits.html,sha256=0Yt9Q_RAlNJizWJToa2UqXllZnv8hVDhhpFspfBUCcc,3102
|
|
142
|
+
openinterp/builder/templates/experiment.html,sha256=aqH01axNKU-__JHtlXKU2gYSPRa1p6McIVu4isJzAwo,1328
|
|
143
|
+
openinterp/builder/templates/hub.html,sha256=q6IfqVCpsBRh_VMtv8kIK-FDlzZLzXDsUbmyPY8LLhw,1149
|
|
144
|
+
openinterp/builder/templates/index.html,sha256=V4qhPPX6_5T2cowLdbX1nKNxkhBNm0E1p1jkvJ83Zqw,25310
|
|
145
|
+
openinterp/builder/templates/layer.html,sha256=8utt4v5InmwiYKDUZqU1vJ5g8wiDOCHyLLoHOrdc3-E,5395
|
|
146
|
+
openinterp/builder/templates/learned-baseline.html,sha256=h_AgsYdAvK3x6kvhjIihRf-QyJemY_2TglZ4Gf2IhDw,4241
|
|
147
|
+
openinterp/builder/templates/model.html,sha256=W4fK39CI9l7UOXgOM1JR3n6zwC42CfDxfiDZZlTIcqc,11144
|
|
148
|
+
openinterp/builder/templates/models.html,sha256=3ursGLHpDDYEbEaMQvlJXoTLrPURm9t65DhA6d12m5k,2953
|
|
149
|
+
openinterp/builder/templates/neuron.html,sha256=A8tnqY5WgpZd97gRiNt7MyVeQgQBU-KHRqI1EtUmpfg,17673
|
|
150
|
+
openinterp/builder/templates/paper.html,sha256=m7wvchkd7pF-uwWitKGE9A8ieNI0v5o0KbbzDp3jhlc,2224
|
|
151
|
+
openinterp/builder/templates/redirect.html,sha256=sM6xUwaJZIZNsMxDn9Ym6WGaVJxektJEzuLNllOfqrg,291
|
|
152
|
+
openinterp/builder/templates/research.html,sha256=unjdrep-L8NYZMbCCPzalKsk7VQL2yWZaJdqsJIzUqE,1596
|
|
153
|
+
openinterp/builder/templates/user.html,sha256=_H6_fQ5l2zMgg3cHKHDngJ9FAb1m4eR_i6-_Z-cPo_4,3126
|
|
154
|
+
openinterp/builder/templates/users.html,sha256=lrBVepaKMX7NtOrSkqZG-ysB_mO0zRqLWfa7kkhnUJ8,2122
|
|
155
|
+
openinterp/builder/templates/wiki/experiment.md,sha256=JQ_pNjLap31mx37xS-UEQ5Umz4K5VYtZODdd9z8gGuc,17608
|
|
156
|
+
openinterp/builder/templates/wiki/index.md,sha256=y0EsVVJIghdBX9WCwUJH-UE60mUm-yMhcaP8EkYqXAQ,1815
|
|
157
|
+
openinterp/builder/templates/wiki/neuron.md,sha256=l1L-Mo1pMTydXMzPdD5DlFKTgNvQlH3pjb77JQiQ1Rw,1473
|
|
158
|
+
openinterp/builder/templates/wiki/stop.md,sha256=C5BQYV2dieg7EwZ_ahIVGkjIXAYp_ga880v4c0ALJ7Q,2371
|
|
159
|
+
openinterp/core/__init__.py,sha256=SfNYbpfmHQoRN83QLugYY7_4n_PKXOkfLryQBP4ZWdc,1315
|
|
160
|
+
openinterp/core/agent_names.py,sha256=Qj0SCoKKg_woSX2JrfrhXYqJ45ZfpG5172L4_MINK4Y,3206
|
|
161
|
+
openinterp/core/attribution.py,sha256=6pbwGpb071JCR4XIY0AB0CUh1amzDf69UecQ_Tc-ads,4321
|
|
162
|
+
openinterp/core/cache_dirs.py,sha256=p05TKouTZxzlf2LMzJwN0vEogRNuDtkY47aEI05nim4,517
|
|
163
|
+
openinterp/core/causal.py,sha256=KWt4EHCzDWCzJi7UHP4RqarGlfjC7C78ZGhiKqwQY1g,3480
|
|
164
|
+
openinterp/core/confounds.py,sha256=4hU0sWHdT2xQsrVJIE7d795aPLFTwhfdf5SPbmIGD9Q,4275
|
|
165
|
+
openinterp/core/contributors.py,sha256=S8chbo7X3aLax0Qb04HAn3j4kUAC8FTHHiSbaZfBy_Y,1064
|
|
166
|
+
openinterp/core/corpora.py,sha256=r9V_wEV9JFVdqdk-ttveKYhQ2z8SHwvqIdquLT0Y5_c,5652
|
|
167
|
+
openinterp/core/costs.py,sha256=JsE1gh1ctQYTHpKoQkRvUKESsd0PZUn8MN1MWPXszJI,17043
|
|
168
|
+
openinterp/core/draws.py,sha256=0sniY4R3Uzim_bCStRuQcK7AfsNwxrtHutyPovTrrVI,4471
|
|
169
|
+
openinterp/core/errata.py,sha256=Dlsv1hrALbUifMMn5Bvl10U6YkXApCjGevn0ji7ckWQ,10520
|
|
170
|
+
openinterp/core/evidence.py,sha256=otoZ0pPWTJORa5hiabu1YviQ8XwVgczseMBnF0FTJfQ,6276
|
|
171
|
+
openinterp/core/examples.py,sha256=57gDcun8EeN9fSREpcQ02be5J_OJl4ChFzMmi38LbAc,3594
|
|
172
|
+
openinterp/core/exceptions.py,sha256=DphNd7DSlnOXc7Ax0W93iGASveML116kEjGfziz2JQQ,783
|
|
173
|
+
openinterp/core/explanation.py,sha256=qh66ENW9Frch0R3XwqEtQbbeXMzq0TVQHhPBfnC0yog,5570
|
|
174
|
+
openinterp/core/fence.py,sha256=d6y4Qwfr0QDHBI9Fxj-VEivThPn6VymzhpbYELc4Sgg,2072
|
|
175
|
+
openinterp/core/heavy_lock.py,sha256=InpS5NNmDuxSOAtnmf_4P74t0zWIMNa_MQ10QKUryp0,3909
|
|
176
|
+
openinterp/core/identifiers.py,sha256=4iK2qWVfr3r7VongSxb7XtZIo5AyuckKXMiBEivp8nA,6836
|
|
177
|
+
openinterp/core/isolation.py,sha256=p6gW5XXYblT4IBdPumC3MpXE7nUeK_YJMWfq-pnPmwE,5514
|
|
178
|
+
openinterp/core/ledger.py,sha256=_8EGn5dBsRG5aqoz8aASNmlFFJuxfeHGajFhsrz2F0E,5452
|
|
179
|
+
openinterp/core/licenses.py,sha256=mFOQNMN2i_cizdn57APqtc34q7lS7BgpZVbrs4ieAt8,1277
|
|
180
|
+
openinterp/core/manifold.py,sha256=JjT8jIg8gfieqlNr9KzQvSSXOGapmi4QL5JjZ8xqTlc,5035
|
|
181
|
+
openinterp/core/partners.py,sha256=_MpX8UtmxYGcyk5hNvQFRECehIyXFgBOYc4GqpbttfA,1473
|
|
182
|
+
openinterp/core/patchscope.py,sha256=IwSgfdWmUXIy6Fxq1SoO7pn8Ao-m67wZx6WvU9-Mlro,2591
|
|
183
|
+
openinterp/core/paths.py,sha256=DKd7v-yGfjC7iPkUBIRW_PJhSZZzF7Dii5iEpTAgmAQ,1478
|
|
184
|
+
openinterp/core/pause.py,sha256=5uDMfcWuJA7n6_VrnPHRyxkREGv4Iv-zdtr0sbY7aDs,3484
|
|
185
|
+
openinterp/core/pricing.py,sha256=cbPFkeA65H6S_nwB3AtpkYT5q7ryqtKazuz44PVYNV8,7122
|
|
186
|
+
openinterp/core/prior_art.py,sha256=2zVq2NMtQfnIPBzAZWTwL9mYcx6Wcr5Es4dVNsY2Olg,1832
|
|
187
|
+
openinterp/core/probing.py,sha256=SQJ0v-TVa7mOls6ip1cLBKj0oH4PTA-RnHqfUVRiAyw,5637
|
|
188
|
+
openinterp/core/profiles.py,sha256=YS0PPr3KcjHj85MK4izMQZSQn6VimgJzSFSlCIrIWaY,10075
|
|
189
|
+
openinterp/core/project.py,sha256=0L6_z8Co6r2368TFRqCuMGqS9MDFBQfCzYk0boOU0dc,897
|
|
190
|
+
openinterp/core/run_environment.py,sha256=VvOogJicGHo8jbC1klMNgMxgS_xzaPi1nsqojOLg_Ps,1781
|
|
191
|
+
openinterp/core/schemas.py,sha256=zBaYJSOztbdbte6_Js5jqorowi4ktVoLR1NG8OLLgps,20974
|
|
192
|
+
openinterp/core/specificity.py,sha256=S8O5ITc3P1fy_F5biUbw-lR9D9gjMIRbUYEAfNuF1t4,2026
|
|
193
|
+
openinterp/core/stats.py,sha256=6A5EWKgjGuh1J5NM-kuA78n0KxsnNYtAjrSi41JELTI,6577
|
|
194
|
+
openinterp/core/steering.py,sha256=Fq0aite7NcJyycxAAnl6AqLEV6rOybXhS5r7d6B7oGI,1954
|
|
195
|
+
openinterp/core/strict.py,sha256=xWyby8U5rqsLvegPTYIjLdIW0_1awBrrxJfQ5iNlgrg,546
|
|
196
|
+
openinterp/core/takedowns.py,sha256=J9pUfUdn5dgvc9BYr0H-t8VPLvmnG1Dl8rW5N75gE40,4935
|
|
197
|
+
openinterp/core/transcripts.py,sha256=NzQmGiQxVnwXVmafcKTV-TbT2xBmPFqWfed9y481GCY,5318
|
|
198
|
+
openinterp/core/wiring.py,sha256=pcypd893jaUHeq2OgqWrm3ekzsRrRd9t-MoKhrty3q8,3608
|
|
199
|
+
openinterp/data/__init__.py,sha256=lmQLjLhgqW5ajiSaMcQ6wwjME7RTxZlosjBMyssLaAE,393
|
|
200
|
+
openinterp/data/offensive_words.txt,sha256=8DfZ-D5oe37Y9Kael1pOsgfysAxWTsUTBmBTMQISyMw,432
|
|
201
|
+
openinterp/data/public_suffix_list.dat,sha256=tpMVwIXVOXJyS48t8RH_wymwyE_gpH1iyMkWVcx3Sjg,318581
|
|
202
|
+
openinterp/data/sample_corpus.txt,sha256=Q4sYZGU6PwGrR1m8KSd1zC7KFqyrONM3SoaqLx3GkaE,2373
|
|
203
|
+
openinterp/harness/__init__.py,sha256=yYliBTVdQugHduuGE2eClmj8OrrpDbnGUxFpMP6eDVQ,1005
|
|
204
|
+
openinterp/harness/annotations.py,sha256=SXFLy9sYFKaSpd7KFa-sXqW4vTDeW1N18YfwgC3Bm80,14488
|
|
205
|
+
openinterp/harness/attribution.py,sha256=D-kLR8HdOpxWQxEP9sPC-1R2b8CzL4XZ30kGFnXlEPo,4007
|
|
206
|
+
openinterp/harness/causal.py,sha256=r22W1styNtX2t7Ben36BBYOxUo55vR5jlh8Pa136CB0,11481
|
|
207
|
+
openinterp/harness/confounds.py,sha256=6eu4fcIMLdJjmexoB7YPSUdp78Wtf3p886fUhoZUt0E,7898
|
|
208
|
+
openinterp/harness/covariance.py,sha256=Ov3u7hfIBQmSyBVe4RcWjL-aghsjlxEq7XzXlUeydIk,13388
|
|
209
|
+
openinterp/harness/crossref.py,sha256=gzkrm2xgvhoJSC4OUVWcVRbbFjIpD7w-LYs_ReYodPk,8017
|
|
210
|
+
openinterp/harness/cuda_devices.py,sha256=v-6e5wvswhJt3_7NBbs8zudw1C0gIfW4GiQcmJkNOv0,3320
|
|
211
|
+
openinterp/harness/dead.py,sha256=i_58CsLBeWtYofV_HFymKoJcdIcOPYK2Uafuixem1x8,5339
|
|
212
|
+
openinterp/harness/devices.py,sha256=md2VeUfFcH7-LUAvHA6cDeKVWuHV96166O4VsMoB2lE,14628
|
|
213
|
+
openinterp/harness/dictionaries.py,sha256=AUVXsursb5nLV1_6SsJFTRAWkjUC7dpgEa-alWgcX2o,23297
|
|
214
|
+
openinterp/harness/dreaming.py,sha256=VHjB8YcfSYnYAX_uyiZmOo3rFSX47n5UAzwUNycmofE,4384
|
|
215
|
+
openinterp/harness/environment.py,sha256=YjCZuVRRSYQoxdvjH9SaKuB7F64D5135N06fw9bo8Sc,2399
|
|
216
|
+
openinterp/harness/explanation_scores.py,sha256=pLFTHqMMD5iJymQNuuePb_ljAiHhR5jlJ6owbLe_m9s,15013
|
|
217
|
+
openinterp/harness/features.py,sha256=H4mj39PQUYLJzcsLCp3JfnF_aUe5v1IIT62ZgQMu5J8,11297
|
|
218
|
+
openinterp/harness/first_position.py,sha256=UDZlb7nLFsYgzuVcx7QOtz1NTg2q31AEqSMIDAfw6Y0,5363
|
|
219
|
+
openinterp/harness/heads.py,sha256=paiIkucOuNPJ1rlM67uE4n49ijtH0T8_DxNIgYQMJtU,9003
|
|
220
|
+
openinterp/harness/hooks.py,sha256=WLG9sd3wieYyRfUBwNicTX1QZhu2h4XGKeiTI8ghOZ0,21415
|
|
221
|
+
openinterp/harness/input_attribution.py,sha256=In1BkZvpE7cxOSL6ZqXYsOnrA_639se9RY9QoZoqu0c,14294
|
|
222
|
+
openinterp/harness/jlens.py,sha256=jjRA86r_SwUHDdalaHMUkPpc83ck-T9FCQkiMQ1UI1w,7259
|
|
223
|
+
openinterp/harness/layer_cache.py,sha256=4apKGWYRFyij_7ggFpx5llEb_P01oWcjwmvFd8BeVrw,12554
|
|
224
|
+
openinterp/harness/layer_major.py,sha256=MIg1UDz6o-ZvcYIK5sZb-gH2rZZHboMDzFN6RpgMNKk,10154
|
|
225
|
+
openinterp/harness/lookahead.py,sha256=UP5zLbG9pxZ6soYH9sn0NXhhAx3jsUnwVeHuoozwts0,3863
|
|
226
|
+
openinterp/harness/manifold.py,sha256=CKlYa1STaY-ENILTVGmKcZskm0sRsogyOwSwQJFNZ9w,9459
|
|
227
|
+
openinterp/harness/memory.py,sha256=ZdziN_sf3_0Q1EvRR88I5N-xpNCtPIP2-1wsVTd2gN0,19789
|
|
228
|
+
openinterp/harness/moe.py,sha256=yuGxvNnen9JeTo7-llS5aDvucwtjOLWZYAtRPWev1SE,5635
|
|
229
|
+
openinterp/harness/patcher.py,sha256=rSEnJA-arD3uStvs8Y5WR7Fk8Io5c_iwF5NU1z5vKGE,12906
|
|
230
|
+
openinterp/harness/patchscope.py,sha256=zcYry7rNL3wUKxmizQ5jX3NvehKyKNCWINKFz6Rjmp0,7141
|
|
231
|
+
openinterp/harness/probing.py,sha256=jgT1r9e43QiV1ubhp_f93lIOYXeDDOIkyQpBtU-80HA,14554
|
|
232
|
+
openinterp/harness/scan.py,sha256=spP2Q9fU2VVjnCSUgbuZvSnBHRy0h72HDLCBFIH5v68,18711
|
|
233
|
+
openinterp/harness/scan_backend.py,sha256=A1M9VP-hwiZ-kRcvzkz2hRUuQP2TFLoLMnNvmFcour0,8200
|
|
234
|
+
openinterp/harness/sister_passes.py,sha256=JF-XbW4XbrAbNN0hQYqM9iQyg0jIT5JSgHh3IiJq8nA,19579
|
|
235
|
+
openinterp/harness/sisters.py,sha256=6PtLUE1N6aok5i9wxEASr6YgcYEYvD2_8a34xzrTVZs,15707
|
|
236
|
+
openinterp/harness/sites.py,sha256=Mm1uwjxY1t8QReRCx3ZbFkwTCZ-UNwhYwPcv2ply7lU,3812
|
|
237
|
+
openinterp/harness/specificity.py,sha256=VmThA2QFOASfTIr8Mdb-a33EE4f8WQ8LiCliOUvjwis,4117
|
|
238
|
+
openinterp/harness/steering.py,sha256=AWzIwBJjUHiuKLWF7fxw5rjkw1QAb7dwUZBYVRptkVQ,6517
|
|
239
|
+
openinterp/harness/superpositions.py,sha256=b1f_TOl3WuRCTfQe5nSeRaduyjayT-p9rDipTXZDfI8,5109
|
|
240
|
+
openinterp/harness/units.py,sha256=sVH1NiyGZpveN4FitzLfbvAHxMi0UGtyT2ChkkJGgn0,8776
|
|
241
|
+
openinterp/harness/wiring.py,sha256=wDy_RiNmzZfXIJX-S87AMdcTo6c05-F9W1OOlm805S4,17052
|
|
242
|
+
openinterp/harness/wiring_activations.py,sha256=Cjz5jv9AUUtu7ck-tJ_wsGgyF7we1qEi4Dcse64McUw,10966
|
|
243
|
+
openinterp/harness/ane/__init__.py,sha256=NLsEXH3SQZa5w2cL_Ie-4vuuJbJ5gzK5Qe_Ocffp30w,471
|
|
244
|
+
openinterp/harness/ane/backend.py,sha256=sIxgQbTfxEcz4gPvfRMHr-Kf0Kg6F8wWDfHqIRFWyRQ,14177
|
|
245
|
+
openinterp/harness/ane/cache.py,sha256=bpVRT0aeMS1XKXKI5scIb49BOeY6f_8e8jY_jLb9EYs,10721
|
|
246
|
+
openinterp/harness/ane/chunks.py,sha256=5ARFVl2-eUhdOoDOC3KzdEt-gkCd6aWYByMCFeCrtTs,6956
|
|
247
|
+
openinterp/harness/ane/convert.py,sha256=XxEe74oPfp1RshJv6CRc6PYzvK9VUpzG5B87rqB2qNQ,4304
|
|
248
|
+
openinterp/harness/ane/forward.py,sha256=8eEUXs5IKmEuluVSp3-jNp7dD5mfRLZi4Uty13ozfaA,11785
|
|
249
|
+
openinterp/harness/ane/qualified.py,sha256=IUWbnmgclelqnA9UwZbx1TptznPdF1nmZT_9pTadD-4,1846
|
|
250
|
+
openinterp/sync/__init__.py,sha256=9Th2Pr3JBr71EG1j5MNboUEXc9vmhLm-O_GSVfHHrHY,270
|
|
251
|
+
openinterp/sync/r2.py,sha256=cN24bo-OpMLhcgpi3M7CDn2iwdqoWKDqWgV9iGb2nLo,10479
|
|
252
|
+
open_interpretability-0.0.20.dist-info/METADATA,sha256=Omc2Ejaf_wEdjb887rty24ZMX_ucRu92uUF7EfutifY,12246
|
|
253
|
+
open_interpretability-0.0.20.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
254
|
+
open_interpretability-0.0.20.dist-info/entry_points.txt,sha256=31vButxca1FmmOBIQXZXqjjNH-B-kUa4x6KGmy08qEI,62
|
|
255
|
+
open_interpretability-0.0.20.dist-info/licenses/LICENSE,sha256=gwlNpmV6unKcSugA-A5PRtZXVIPitLKFMmtS7xbptpU,1071
|
|
256
|
+
open_interpretability-0.0.20.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Will Sackfield
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
openinterp/__init__.py
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"""Open Interpretability: an agent-audited registry of native neurons in open-weight models."""
|
|
2
|
+
|
|
3
|
+
__version__ = "0.0.20"
|
|
4
|
+
# The name on PyPI, and of the installed distribution (issue #3251). The import name stays
|
|
5
|
+
# `openinterp`.
|
|
6
|
+
DISTRIBUTION = "open-interpretability"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""The LLM agents: the proposer, the reviewer and the judge."""
|
|
2
|
+
|
|
3
|
+
from openinterp.agents.base import DEFAULT_MODEL, LLMAgent
|
|
4
|
+
from openinterp.agents.proposer import HypothesisDraft, ProposerAgent
|
|
5
|
+
from openinterp.agents.reviewer import (
|
|
6
|
+
AdversarialProbe,
|
|
7
|
+
ProbeSet,
|
|
8
|
+
ReviewerAgent,
|
|
9
|
+
ReviewPolicy,
|
|
10
|
+
evaluate_submission,
|
|
11
|
+
probes_from_verdict,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"DEFAULT_MODEL",
|
|
16
|
+
"AdversarialProbe",
|
|
17
|
+
"HypothesisDraft",
|
|
18
|
+
"LLMAgent",
|
|
19
|
+
"ProbeSet",
|
|
20
|
+
"ProposerAgent",
|
|
21
|
+
"ReviewPolicy",
|
|
22
|
+
"ReviewerAgent",
|
|
23
|
+
"evaluate_submission",
|
|
24
|
+
"probes_from_verdict",
|
|
25
|
+
]
|