Skip to main content

Package for interpreting and manipulating the internals of deep learning models.

Project description

nnsight

Interpret and manipulate the internals of deep learning models

Documentation | GitHub | Discord | Forum | Twitter | Paper


About

nnsight is a Python library that enables interpreting and intervening on the internals of deep learning models. It provides a clean, Pythonic interface for:

  • Accessing activations at any layer during forward passes
  • Modifying activations to study causal effects
  • Computing gradients with respect to intermediate values
  • Batching interventions across multiple inputs efficiently

Originally developed in the NDIF team at Northeastern University, nnsight supports local execution on any PyTorch model and remote execution on large models via the NDIF infrastructure.

📖 For a deeper technical understanding of nnsight's internals (tracing, interleaving, the Envoy system, etc.), see NNsight.md.


Installation

pip install nnsight

Agents

Inform LLM agents how to use nnsight using one of these methods:

Skills Repository

Claude Code

# Open Claude Code terminal
claude

# Add the marketplace (one time)
/plugin marketplace add https://github.com/ndif-team/skills.git

# Install all skills
/plugin install nnsight@skills

OpenAI Codex

# Open OpenAI Codex terminal
codex

# Install skills
skill-installer install https://github.com/ndif-team/skills.git

Context7 MCP

Alternatively, use Context7 to provide up-to-date nnsight documentation directly to your LLM. Add use context7 to your prompts or configure it in your MCP client:

{
  "mcpServers": {
    "context7": {
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

See the Context7 README for full installation instructions across different IDEs.

Documentation Files

You can also add our documentation files directly to your agent's context:

  • llms.md — Comprehensive guide for AI agents working with nnsight
  • NNsight.md — Deep technical documentation on nnsight's internals

Quick Start

from nnsight import LanguageModel

model = LanguageModel('openai-community/gpt2', device_map='auto', dispatch=True)

with model.trace('The Eiffel Tower is in the city of'):
    # Intervene on activations (must access in execution order!)
    model.transformer.h[0].output[0][:] = 0
    
    # Access and save hidden states from a later layer
    hidden_states = model.transformer.h[-1].output[0].save()
    
    # Get model output
    output = model.output.save()

print(model.tokenizer.decode(output.logits.argmax(dim=-1)[0]))

💡 Tip: Always call .save() on values you want to access after the trace exits. Without .save(), values are garbage collected. You can also use nnsight.save(value) as an alternative.

Accessing Activations

with model.trace("The Eiffel Tower is in the city of"):
    # Access attention output
    attn_output = model.transformer.h[0].attn.output[0].save()
    
    # Access MLP output
    mlp_output = model.transformer.h[0].mlp.output.save()

    # Access any layer's output (access in execution order)
    layer_output = model.transformer.h[5].output[0].save()
    
    # Access final logits
    logits = model.lm_head.output.save()

Note: GPT-2 transformer layers return tuples where index 0 contains the hidden states.

Modifying Activations

In-Place Modification

with model.trace("Hello"):
    # Zero out all activations
    model.transformer.h[0].output[0][:] = 0
    
    # Modify specific positions
    model.transformer.h[0].output[0][:, -1, :] = 0  # Last token only

Replacement

with model.trace("Hello"):
    # Add noise to activations
    hs = model.transformer.h[-1].mlp.output.clone()
    noise = 0.01 * torch.randn(hs.shape)
    model.transformer.h[-1].mlp.output = hs + noise
    
    result = model.transformer.h[-1].mlp.output.save()

Batching with Invokers

Process multiple inputs in one forward pass. Each invoke runs its code in a separate worker thread:

  • Threads execute serially (no race conditions)
  • Each thread waits for values via .output, .input, etc.
  • Invokes run in the order they're defined
  • Cross-invoke references work because threads run sequentially
  • Within an invoke, access modules in execution order only
with model.trace() as tracer:
    # First invoke: worker thread 1
    with tracer.invoke("The Eiffel Tower is in"):
        embeddings = model.transformer.wte.output  # Thread waits here
        output1 = model.lm_head.output.save()
    
    # Second invoke: worker thread 2 (runs after thread 1 completes)
    with tracer.invoke("_ _ _ _ _ _"):
        model.transformer.wte.output = embeddings  # Uses value from thread 1
        output2 = model.lm_head.output.save()

Prompt-less Invokers

Use .invoke() with no arguments to operate on the entire batch:

with model.trace() as tracer:
    with tracer.invoke("Hello"):
        out1 = model.lm_head.output[:, -1].save()
    
    with tracer.invoke(["World", "Test"]):
        out2 = model.lm_head.output[:, -1].save()
    
    # No-arg invoke: operates on ALL 3 inputs
    with tracer.invoke():
        out_all = model.lm_head.output[:, -1].save()  # Shape: [3, vocab]

Multi-Token Generation

Use .generate() for autoregressive generation:

with model.generate("The Eiffel Tower is in", max_new_tokens=3) as tracer:
    output = model.generator.output.save()

print(model.tokenizer.decode(output[0]))
# "The Eiffel Tower is in the city of Paris"

Iterating Over Generation Steps

with model.generate("Hello", max_new_tokens=5) as tracer:
    logits = list().save()
    
    # Iterate over all generation steps
    with tracer.iter[:]:
        logits.append(model.lm_head.output[0][-1].argmax(dim=-1))

print(model.tokenizer.batch_decode(logits))

Conditional Interventions Per Step

with model.generate("Hello", max_new_tokens=5) as tracer:
    outputs = list().save()
    
    with tracer.iter[:] as step_idx:
        if step_idx == 2:
            model.transformer.h[0].output[0][:] = 0  # Only on step 2
        
        outputs.append(model.transformer.h[-1].output[0])

⚠️ Warning: Code after tracer.iter[:] never executes! The unbounded iterator waits forever for more steps. Put post-iteration code in a separate tracer.invoke():

with model.generate("Hello", max_new_tokens=3) as tracer:
    with tracer.invoke():  # First invoker
        with tracer.iter[:]:
            hidden = model.transformer.h[-1].output.save()
    with tracer.invoke():  # Second invoker - runs after
        final = model.output.save()  # Now works!

Gradients

Gradients are accessed on tensors (not modules), only inside a with tensor.backward(): context:

with model.trace("Hello"):
    hs = model.transformer.h[-1].output[0]
    hs.requires_grad_(True)
    
    logits = model.lm_head.output
    loss = logits.sum()
    
    with loss.backward():
        grad = hs.grad.save()

print(grad.shape)

Model Editing

Create persistent model modifications:

# Create edited model (non-destructive)
with model.edit() as model_edited:
    model.transformer.h[0].output[0][:] = 0

# Original model unchanged
with model.trace("Hello"):
    out1 = model.transformer.h[0].output[0].save()

# Edited model has modification
with model_edited.trace("Hello"):
    out2 = model_edited.transformer.h[0].output[0].save()

assert not torch.all(out1 == 0)
assert torch.all(out2 == 0)

Scanning (Shape Inference)

Get shapes without running the full model:

with model.scan("Hello"):
    dim = model.transformer.h[0].output[0].shape[-1]

print(dim)  # 768

Caching Activations

Automatically cache outputs from modules:

with model.trace("Hello") as tracer:
    cache = tracer.cache()

# Access cached values
layer0_out = cache['model.transformer.h.0'].output
print(cache.model.transformer.h[0].output[0].shape)

Sessions

Group multiple traces for efficiency:

with model.session() as session:
    with model.trace("Hello"):
        hs1 = model.transformer.h[0].output[0].save()
    
    with model.trace("World"):
        model.transformer.h[0].output[0][:] = hs1  # Use value from first trace
        hs2 = model.transformer.h[0].output[0].save()

Remote Execution (NDIF)

Run on NDIF's remote infrastructure:

from nnsight import CONFIG
CONFIG.set_default_api_key("YOUR_API_KEY")

model = LanguageModel("meta-llama/Meta-Llama-3.1-8B")

with model.trace("Hello", remote=True):
    hidden_states = model.model.layers[-1].output.save()

Check available models at nnsight.net/status

vLLM Integration

High-performance inference with vLLM:

from nnsight.modeling.vllm import VLLM

model = VLLM("gpt2", tensor_parallel_size=1, dispatch=True)

with model.trace("Hello", temperature=0.0, max_tokens=5) as tracer:
    logits = list().save()
    
    with tracer.iter[:]:
        logits.append(model.logits.output)

NNsight for Any PyTorch Model

Use NNsight for arbitrary PyTorch models:

from nnsight import NNsight
import torch

net = torch.nn.Sequential(
    torch.nn.Linear(5, 10),
    torch.nn.Linear(10, 2)
)

model = NNsight(net)

with model.trace(torch.rand(1, 5)):
    layer1_out = model[0].output.save()
    output = model.output.save()

Source Tracing

Access intermediate operations inside a module's forward pass. .source rewrites the forward method to hook into all operations:

# Discover available operations
print(model.transformer.h[0].attn.source)
# Shows forward method with operation names like:
#   attention_interface_0 -> 66  attn_output, attn_weights = attention_interface(...)
#   self_c_proj_0         -> 79  attn_output = self.c_proj(attn_output)

# Access operation values
with model.trace("Hello"):
    attn_out = model.transformer.h[0].attn.source.attention_interface_0.output.save()

Ad-hoc Module Application

Apply modules out of their normal execution order:

with model.trace("The Eiffel Tower is in the city of"):
    # Get intermediate hidden states
    hidden_states = model.transformer.h[-1].output[0]
    
    # Apply lm_head to get "logit lens" view
    logits = model.lm_head(model.transformer.ln_f(hidden_states))
    tokens = logits.argmax(dim=-1).save()

print(model.tokenizer.decode(tokens[0]))

Core Concepts

Deferred Execution with Thread-Based Synchronization

NNsight uses deferred execution with thread-based synchronization:

  1. Code extraction: When you enter a with model.trace(...) block, nnsight captures your code (via AST) and immediately exits the block
  2. Thread execution: Your code runs in a separate worker thread
  3. Value waiting: When you access .output, the thread waits until the model provides that value
  4. Hook-based injection: The model uses PyTorch hooks to provide values to waiting threads
with model.trace("Hello"):
    # Code runs in a worker thread
    # Thread WAITS here until layer output is available
    hs = model.transformer.h[-1].output[0]
    
    # .save() marks the value to persist after the context exits
    hs = hs.save()
    # Alternative: hs = nnsight.save(hs)

# After exiting, hs contains the actual tensor
print(hs.shape)  # torch.Size([1, 2, 768])

Key insight: Your code runs directly. When you access .output, you get the real tensor - your thread just waits for it to be available.

Important: Within an invoke, you must access modules in execution order. Accessing layer 5's output before layer 2's output will cause a deadlock (layer 2 has already been executed).

Key Properties

Every module has these special properties. Accessing them causes the worker thread to wait for the value:

Property Description
.output Module's forward pass output (thread waits)
.input First positional argument to the module
.inputs All inputs as (args_tuple, kwargs_dict)

Note: .grad is accessed on tensors (not modules), only inside a with tensor.backward(): context.

Module Hierarchy

Print the model to see its structure:

print(model)
# GPT2LMHeadModel(
#   (transformer): GPT2Model(
#     (h): ModuleList(
#       (0-11): 12 x GPT2Block(
#         (attn): GPT2Attention(...)
#         (mlp): GPT2MLP(...)
#       )
#     )
#   )
#   (lm_head): Linear(...)
# )

Troubleshooting

Error Cause Fix
OutOfOrderError: Value was missed... Accessed modules in wrong order Access modules in forward-pass execution order
NameError after tracer.iter[:] Code after unbounded iter doesn't run Use separate tracer.invoke() for post-iteration code
ValueError: Cannot return output of Envoy... No input provided to trace Provide input: model.trace(input) or use tracer.invoke(input)

For more debugging tips, see the documentation.


More Resources

  • Documentation — Tutorials, guides, and API reference
  • NNsight.md — Deep technical documentation on nnsight
  • llms.md — Comprehensive guide for AI agents working with nnsight

Citation

If you use nnsight in your research, please cite:

@article{fiottokaufman2024nnsightndifdemocratizingaccess,
      title={NNsight and NDIF: Democratizing Access to Foundation Model Internals}, 
      author={Jaden Fiotto-Kaufman and Alexander R Loftus and Eric Todd and Jannik Brinkmann and Caden Juang and Koyena Pal and Can Rager and Aaron Mueller and Samuel Marks and Arnab Sen Sharma and Francesca Lucchetti and Michael Ripa and Adam Belfki and Nikhil Prakash and Sumeet Multani and Carla Brodley and Arjun Guha and Jonathan Bell and Byron Wallace and David Bau},
      year={2024},
      eprint={2407.14561},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2407.14561}, 
}

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

nnsight-0.5.15.tar.gz (181.7 kB view details)

Uploaded Source

Built Distributions

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

nnsight-0.5.15-cp314-cp314t-win_amd64.whl (99.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

nnsight-0.5.15-cp314-cp314t-win32.whl (99.2 kB view details)

Uploaded CPython 3.14tWindows x86

nnsight-0.5.15-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (105.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp314-cp314t-macosx_11_0_arm64.whl (97.6 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

nnsight-0.5.15-cp314-cp314-win_amd64.whl (99.6 kB view details)

Uploaded CPython 3.14Windows x86-64

nnsight-0.5.15-cp314-cp314-win32.whl (99.1 kB view details)

Uploaded CPython 3.14Windows x86

nnsight-0.5.15-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (105.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp314-cp314-macosx_11_0_arm64.whl (97.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

nnsight-0.5.15-cp313-cp313-win_amd64.whl (99.6 kB view details)

Uploaded CPython 3.13Windows x86-64

nnsight-0.5.15-cp313-cp313-win32.whl (99.2 kB view details)

Uploaded CPython 3.13Windows x86

nnsight-0.5.15-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (105.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp313-cp313-macosx_11_0_arm64.whl (97.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

nnsight-0.5.15-cp312-cp312-win_amd64.whl (99.6 kB view details)

Uploaded CPython 3.12Windows x86-64

nnsight-0.5.15-cp312-cp312-win32.whl (99.2 kB view details)

Uploaded CPython 3.12Windows x86

nnsight-0.5.15-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (105.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp312-cp312-macosx_11_0_arm64.whl (97.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

nnsight-0.5.15-cp311-cp311-win_amd64.whl (99.5 kB view details)

Uploaded CPython 3.11Windows x86-64

nnsight-0.5.15-cp311-cp311-win32.whl (99.2 kB view details)

Uploaded CPython 3.11Windows x86

nnsight-0.5.15-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (104.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp311-cp311-macosx_11_0_arm64.whl (97.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

nnsight-0.5.15-cp310-cp310-win_amd64.whl (99.5 kB view details)

Uploaded CPython 3.10Windows x86-64

nnsight-0.5.15-cp310-cp310-win32.whl (99.2 kB view details)

Uploaded CPython 3.10Windows x86

nnsight-0.5.15-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (104.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

nnsight-0.5.15-cp310-cp310-macosx_11_0_arm64.whl (97.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file nnsight-0.5.15.tar.gz.

File metadata

  • Download URL: nnsight-0.5.15.tar.gz
  • Upload date:
  • Size: 181.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15.tar.gz
Algorithm Hash digest
SHA256 35136423893ddb4a4010403742fa9034423632ee6118ada445b728c6e0a2c307
MD5 4b21ab3a0f0163096ceacddb2bbf4f96
BLAKE2b-256 2f31818bde691f84296a2a1aff9174cd57839a39cfeb7b18a78c4ed0018a491a

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 99.7 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 0430d026d7b624808972eb4c6987f71e0fe2b20519fb5acc115fe51649e6bd4e
MD5 636df52b295fe7f4b0272560c8e67319
BLAKE2b-256 1234fe0b7005ad8f88b450b4172c2aabd7512aa9ae32c50f91db3acfd22cb18a

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314t-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 d09c6d4d7a7c9ee6ddbcb291d3803c9c82cb805d49448a336ba87cd8207ca2d9
MD5 e2677d6b8214bcd715c8f12a874ec076
BLAKE2b-256 93b8876ec8b9d1f8d6bf609c876edc8b2888c6d1d06ccd78825afb7e85f00f82

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 05fd23e4e4cebd660a01c74124d48f02aa522363e68ef864a36d65eb02df5f8c
MD5 6a445f43edd42b17f0c3592fe266ac65
BLAKE2b-256 71ad568b165d99eb19a23d7c5d70904e87c110b50d9c991f1c6349fae44b4a55

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13fe88bf2e535c3752ca79512a2222c4521c724ecad127e325f439284aa77a28
MD5 9e8a315bfb5e30583422e8f8c707899a
BLAKE2b-256 61f897b2a530ca707077a5223b8467024980a50b9dd026dc8ab3ef65144cfc2d

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 99.6 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ffcb4de303a0e6e4a4856537856ff9cabf90c9e5734ea4cf8958950b2af61677
MD5 7c8ddb556090d56a53633a44eb3290b8
BLAKE2b-256 f9c4e523ea891d920d0df58139bf6e4ebf62ebb6a9accd5e8fe34f6b5d1273fa

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp314-cp314-win32.whl
  • Upload date:
  • Size: 99.1 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 d60ebb74a0ea188adaafc5df15511d6ad5f54e6b6c36fa7d6636924834851c30
MD5 22ccb41040e42fbf78b1dfc6889b7483
BLAKE2b-256 e6bfe1031294ed28910170c4e73f87ad293f80375bb186553367c825171c1408

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b8681fed0ba0acfe129cdae690402b30efe7985ae6c318a29330f5809d73925d
MD5 01ab3f6c7110b522719ead53956f2e43
BLAKE2b-256 fcae77d5be78733958058d947e1c5d7ccb3c57c9a880097826c4a381c1b5bb69

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 820bc03dbc4d251798a7e58ab94ec88c3279c0d7bfeab11f1508bbedfb16bfbf
MD5 1e79f816b3ac3c1a7ec698c508f5c8df
BLAKE2b-256 1868f255a5c6679a5d0fc737f4b12e45ae83b5ec9d611f1d44a77c47c22be0d6

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 99.6 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8f9c8846dc64b8e528210d07b3269e8b318702128a086432c09e16790eee49ac
MD5 4480ee704ac37386b032c753e8d1c4ce
BLAKE2b-256 6edebe10ec2dcd1cd3750355333e23828a1524bd85fbbc775ae54c315164f02d

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp313-cp313-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp313-cp313-win32.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 789ca17479e783f44859cf572b04ea4a3229a7d8e02118e6f72f87d18f6ab1b5
MD5 25bc523fac215377c9f2079a3cb3f063
BLAKE2b-256 13ad2a55b7239602e3a6f170bcd3675da7c9db56ba53c992369a921488b00dbd

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 a25d7fed58eed4ef74e913762b921a0eff48546cbafaab73ef271a4990eaabcd
MD5 26a11b1c6ecdc458ccbc53913c6bcb38
BLAKE2b-256 d30324da1a045bfe417944003d69d09e0e9c09248e936e0e6b22074da0dd7141

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7923f3b460056d631e25125585b9ee4f9c1f2adb1d3a53c0783ba7ce0cc31047
MD5 2cd9ca422a27b51ee564a6e04769e98a
BLAKE2b-256 5c486a7b4057981248976cee8b03b644af29f83cd891008058779173b4df1605

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 99.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f0e7626f5fe48f7957dd71a75ce720b4af4ad03a826937679988c2b6107068bf
MD5 dfdf7ff86ab1aabe5d2b3b83f1020b89
BLAKE2b-256 5629a20af519c97e1b82fb0080045fa4ad8393968e1f372a774a3f440943f525

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp312-cp312-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp312-cp312-win32.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 38d2a69229c4e928c28d3d93df407365e41e511418ef1671d538f1b13be29032
MD5 6f17979bb36f6c54760d0cb3c381f446
BLAKE2b-256 11fcce14c60200c62a299b3c52c9e3b63a4cdc0b026c027f9e1a6e639c526bc5

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 f7f94c6c452dd1772bf7bc3db231b992f7b707d733cfde3675feab55d7ade699
MD5 c7a86477b2a484b54f516e3d460cdf5a
BLAKE2b-256 d4052ce953929546b76b92e26b8d5e0657c90bd14730030fad5081c0fb68ecbd

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3adf473a84641448750dc8b07fb0c327921560e15d107e897c46fc6844a3e8ad
MD5 1bf3399dcf4f32177e0f18d5cba409cb
BLAKE2b-256 3e11926e9a3d141f0b377dfc88b7ce1774804177f6bb1d9f7598fd9f546f0764

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 99.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 da8a7733bbfa570024a8b44554d7158128eda514ffb1acaec22f04abf5abc3fa
MD5 1df9358df28305a21e9f11eaf056f324
BLAKE2b-256 de83268a9405d13ed38e552d3cc0eaa0827efe4e38e59978de715089724e3e01

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp311-cp311-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp311-cp311-win32.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4bc17dc2fe961cf9287ea1cda38b5daa9668951b03f5c52b451a5cc4e7bc7e57
MD5 69d4fc171bd6cbc0f1f03a2b095ae312
BLAKE2b-256 c9a013a0f25eee759384ac42dd0d1a92bc7c38b46ea4d9e321156b7c29059997

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 1587a27a072aa69aa5d544c5a661936d1e567e66a9b6d730126c48dd94b9fe5a
MD5 83d0851f01ab0e462d02161bea0d5f7d
BLAKE2b-256 e5a5e52be797abf4a6bdd60d539ff6fe151adbac31dd9d5b497f18bd394c33f3

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d356b29a37754cfb2b6a474020b8ca78fd2057406ab4aafbb529d2fed6e1c23a
MD5 e37fb453ea8f461c2a71788dffbaa224
BLAKE2b-256 4bd34ee86219224ba93ea845b6d42fb13f8c6b78e710dc99336bcb7876737d24

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 99.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8944b52c7c0fc56100d0e631620f962cab3973482817d2b0de6aab55d7224597
MD5 ca1b8137e9677e2f3b7e456d6f4db083
BLAKE2b-256 1a125651b809945cd427e7338a433e0f927178037f83da2bf387acf34bf05e4d

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp310-cp310-win32.whl.

File metadata

  • Download URL: nnsight-0.5.15-cp310-cp310-win32.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nnsight-0.5.15-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 62651545d58570d47d5ed82d18a36139892628255754d96a4eb1199d331f88a2
MD5 5d4009dff2f3dfdc4ba55559589c2477
BLAKE2b-256 b7b3691c418528bdd9ffc7a04819c0c76df2156fce642ea755d695908fd1bcfc

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 cbed2b55b3c7ee894ed3e3374e159b76bca295bf083ac0d551adb15499be42b5
MD5 240f4bc1ed9780cb6c370fde7a49e82f
BLAKE2b-256 19b2fe004e1e0356034ef2c7b77b2c933dfea250cbe890c825f9fb4a04f7107c

See more details on using hashes here.

File details

Details for the file nnsight-0.5.15-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nnsight-0.5.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 189d98fe8814052bfa31b68f4ac3f029379223f8359ce9190cd1d6a35299dc75
MD5 e44d3a9a281e8379f80bd54318f74e81
BLAKE2b-256 79727c169439f569cfce43cd844e0e95d451348e391f52f65fa1b95f48174768

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page