readme screenshots
@@ -23,7 +23,9 @@ ship**.
|
|||||||
│ files exist. │
|
│ files exist. │
|
||||||
└───────────────────────────────────────────────────────────────────────┘ -->
|
└───────────────────────────────────────────────────────────────────────┘ -->
|
||||||
|
|
||||||

|

|
||||||
|
<p align="center"><sub>Introducing non-expert friendly alignment!</sub></p>
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -120,6 +122,8 @@ listed automatically; **Browse** adds any model folder on disk to the list
|
|||||||
(nothing is copied — the blue button forgets the entry, the red trash deletes
|
(nothing is copied — the blue button forgets the entry, the red trash deletes
|
||||||
actual files). fp32 models are auto-converted to bf16 to halve disk usage.
|
actual files). fp32 models are auto-converted to bf16 to halve disk usage.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### 2. Load a Jacobian lens
|
### 2. Load a Jacobian lens
|
||||||
|
|
||||||
In **Lens**, J-Wash lists compatible lenses for the loaded model — local ones you
|
In **Lens**, J-Wash lists compatible lenses for the loaded model — local ones you
|
||||||
@@ -131,7 +135,8 @@ you can even pick a lens **while the model is still loading**, it chain-loads
|
|||||||
when ready. No lens? Fit one in the **Fit** tab (see below). Manual loading by
|
when ready. No lens? Fit one in the **Fit** tab (see below). Manual loading by
|
||||||
repo / file / local path is available at the bottom of the tab.
|
repo / file / local path is available at the bottom of the tab.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
### 3. Chat with the live lens
|
### 3. Chat with the live lens
|
||||||
|
|
||||||
@@ -141,9 +146,23 @@ generated token:
|
|||||||
- **Frequencies** (default): tokens the layers "read," aggregated by how often they
|
- **Frequencies** (default): tokens the layers "read," aggregated by how often they
|
||||||
appear — size ∝ frequency. Click a token to **pin** it (rank curves + a rank
|
appear — size ∝ frequency. Click a token to **pin** it (rank curves + a rank
|
||||||
heatmap per layer); right-click to hide noise.
|
heatmap per layer); right-click to hide noise.
|
||||||
- **Heatmap**: layers × positions, top token per cell (reading = amber, thinking =
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Once a token is pinned, you can see it's activation (vertical axis) along the tokens generated (horizontal axis). The tokens related to the column hovered can be seen on the upper part :
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- **Heatmap view**: layers × positions, top token per cell (reading = amber, thinking =
|
||||||
blue).
|
blue).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Selecting a token will display related activations in all layers:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Leading/trailing spaces are rendered with `˽` (so `˽Euro` ≠ `Euro`). Replies
|
Leading/trailing spaces are rendered with `˽` (so `˽Euro` ≠ `Euro`). Replies
|
||||||
render as markdown (toggleable), can be **edited in place** (✎ — later turns use
|
render as markdown (toggleable), can be **edited in place** (✎ — later turns use
|
||||||
the edited text) and **continued** (the model picks up exactly where it
|
the edited text) and **continued** (the model picks up exactly where it
|
||||||
@@ -151,13 +170,17 @@ stopped). Conversations are persisted (SQLite + full-text search), branchable
|
|||||||
from any node, and replayable offline. Export a conversation as JSON or
|
from any node, and replayable offline. Export a conversation as JSON or
|
||||||
Markdown, with or without lens frames. The lens view's height is draggable.
|
Markdown, with or without lens frames. The lens view's height is draggable.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 4. Edit tokens ☢
|
### 4. Edit tokens ☢
|
||||||
|
|
||||||
Open the **token editor** (the ☢ button in the composer, or the ☢ on a pinned
|
|
||||||
|
Open the **token editor** (the **☢** button in the composer, or the ☢ on a pinned
|
||||||
token). Add rules:
|
token). Add rules:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
- **multiply ×f** — `×0` removes a token's direction, `×0.5` attenuates, `×2`
|
- **multiply ×f** — `×0` removes a token's direction, `×0.5` attenuates, `×2`
|
||||||
amplifies;
|
amplifies;
|
||||||
- **replace** — rewrite token A's component onto token B's direction
|
- **replace** — rewrite token A's component onto token B's direction
|
||||||
@@ -169,7 +192,9 @@ editing. A mode toggle switches between:
|
|||||||
- **Per-layer steering** (default) — the most expressive way to *explore*, but it
|
- **Per-layer steering** (default) — the most expressive way to *explore*, but it
|
||||||
does not export faithfully.
|
does not export faithfully.
|
||||||
- **Read projection** (pure-weights) — a change of basis of the downstream reads so
|
- **Read projection** (pure-weights) — a change of basis of the downstream reads so
|
||||||
the **live preview matches the exported checkpoint exactly**. Use this to ship.
|
the **live preview matches the exported checkpoint exactly**. Use this to save a model and preview the result.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
> **Architecture note**: models whose layers normalize their *writes* into the
|
> **Architecture note**: models whose layers normalize their *writes* into the
|
||||||
> residual stream (Gemma 2/3 style, `pre/post_feedforward_layernorm`) can't take
|
> residual stream (Gemma 2/3 style, `pre/post_feedforward_layernorm`) can't take
|
||||||
@@ -177,8 +202,6 @@ editing. A mode toggle switches between:
|
|||||||
> abliteration) instead — still pure weights, faithful for full removals and
|
> abliteration) instead — still pure weights, faithful for full removals and
|
||||||
> replacements (a rule's layer range is ignored: the projection is global).
|
> replacements (a rule's layer range is ignored: the projection is global).
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 5. Export the edit
|
### 5. Export the edit
|
||||||
|
|
||||||
Save a set of rules as a **preset** and re-apply it in one click. Export an edit
|
Save a set of rules as a **preset** and re-apply it in one click. Export an edit
|
||||||
@@ -189,6 +212,10 @@ Save a set of rules as a **preset** and re-apply it in one click. Export an edit
|
|||||||
- **LoRA** (PEFT) — the exact low-rank diff between the edited weights and the
|
- **LoRA** (PEFT) — the exact low-rank diff between the edited weights and the
|
||||||
originals (the edit is low-rank by construction, so nothing is approximated).
|
originals (the edit is low-rank by construction, so nothing is approximated).
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
Exports are standard safetensors weights — everything that follows from that
|
Exports are standard safetensors weights — everything that follows from that
|
||||||
(quantizing, converting to other runtimes' formats, publishing on the Hub)
|
(quantizing, converting to other runtimes' formats, publishing on the Hub)
|
||||||
works exactly as it would for any other model.
|
works exactly as it would for any other model.
|
||||||
|
|||||||
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 148 KiB |