Skip to content

Repository files navigation

LLM-Microscope

This repository contains the official implementation of the code for papers "LLM-Microscope: A Toolkit for Quantifying and Visualizing Language Model Internals" and "Your Transformer is Secretly Linear".

Linearity Profiles

We've also created a pip package containing the functions from demo notebook.

Use pip install llm-microscope to install it.

Example (anisotropy, intrinsic dimension and linearity score)

importtorchfromllm_microscopeimport (
calculate_anisotropy_torch,
intrinsic_dimension,
procrustes_similarity,
procrustes_similarity_centered,
load_enwiki_text
)
device='cpu'X=torch.randn((1000, 10)) # pseudo-random "features", 1000 vectors with dim=10.Y=torch.randn((1000, 10)) # pseudo-random "features", 1000 vectors with dim=10.anisotropy=calculate_anisotropy_torch(X) # anisotropy scoreint_dim=intrinsic_dimension(X, device) # intrinsic dimensionlinearity_score=procrustes_similarity(X, Y) # linearity score from the papercentered_linearity_score=procrustes_similarity_centered(X, Y) # the same as linearity between X and Y - X# You can also download the dataset that we used in the paper using load_enwiki_text function:text=llm_microscope.load_enwiki_text()

Example (Logit Lens)

importtorchfromtransformersimportAutoTokenizer, AutoModelForCausalLMfromllm_microscopeimportlogit_lens, normalize_weights, plot_word_table, replace_bad_charsdevice='cuda'model_name="facebook/opt-1.3b"text="Lorem Ipsum is simply dummy text of the printing"tokenizer=AutoTokenizer.from_pretrained(model_name)
model=AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True).bfloat16().to(device)
tokens=tokenizer.encode(text)
words= [tokenizer.decode([tok]) fortokintokens]
words= [replace_bad_chars(word) forwordinwords]
predictions, losses, decoded_words=logit_lens(model, tokenizer, text)
losses=normalize_weights(-losses, normalization_type="global") plot_word_table(decoded_words, losses, words)

About

No description, website, or topics provided.

Resources

Stars

72 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages