Skip to main content

ICA Lens

ICA Lens fits, shares, and applies Independent Component Analysis bases for language-model activations. Version 0.1 operates on activations supplied by the caller; it does not load language models or capture activations.

uv add icalens

Load a published lens:

from icalens import ICALens

lens = ICALens.from_pretrained("liusida/icalens-gpt2-small")
scores = lens.transform(activations, layer=6)
reconstructed = lens.inverse_transform(scores, layer=6)

Fit and publish your own:

from icalens import ICALens

lens = ICALens(
    base_model="openai-community/gpt2",
    base_model_revision="FULL_COMMIT_HASH",
    activation_site="resid_post",
)
lens.fit(activations, layer=6, random_state=0)
lens.save("./my-icalens")
lens.push_to_hub("username/icalens-gpt2-small")

Inputs may be NumPy arrays or PyTorch tensors. Leading dimensions are treated as sample dimensions and the final dimension must be the model hidden size. Fitting uses ICA Lens's built-in PyTorch FastICA implementation and can run on the input tensor's device. NumPy inputs are fitted on CPU. ICA Lens does not depend on scikit-learn or SciPy.

See docs/api.md and docs/artifact-format.md for the initial API and portable artifact format.

For the 1,000-token GPT-2/Pile-10k fitting demo, run:

uv sync
uv run python demo/fit.py

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

icalens-0.1.0.tar.gz (231.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icalens-0.1.0-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file icalens-0.1.0.tar.gz.

File metadata

  • Download URL: icalens-0.1.0.tar.gz
  • Upload date:
  • Size: 231.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for icalens-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ccc943343d200a66f51e3364791bef687ec81c4972067ceeec7871c0621757ce
MD5 0a505ac720f8f91193016fcc1f139a8e
BLAKE2b-256 9f1f872ffbe7691e5c72561c79467da59f1d617df47b806e78fae948714ab167

See more details on using hashes here.

Provenance

The following attestation bundles were made for icalens-0.1.0.tar.gz:

Publisher: release.yml on liusida/icalens

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file icalens-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: icalens-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for icalens-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07d61345512f0de9861b8c572a7b9dd4de9f3075e704f85c75d994c916c40822
MD5 0cd27ad8559b9ff432634d6e9c0b090f
BLAKE2b-256 845be665bda39650349eb9cf366dcc3f616aa6522192c8d03c5b7bc3450f0390

See more details on using hashes here.

Provenance

The following attestation bundles were made for icalens-0.1.0-py3-none-any.whl:

Publisher: release.yml on liusida/icalens

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page