Skip to main content

A tool for loading and computing on parts of LLM models.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

LLM Layer Collector

PyPI - Version

A practical Python package for working with Huggingface models at the layer level. Designed to help developers and researchers load specific model components when working with large, sharded checkpoints.

What It Does

  • Easily load layers, embedding, head, and norm and run partial computation of language models.
  • Uses Huggingface file format to find the appropriate parts of the model.
  • Uses the transformers and pytorch libraries to load data and run computations.
  • Useful for research, development, and memory-constrained environments

Getting Started

Installation

pip install llm-layer-collector

Essential Components

The LlmLayerCollector class serves as your central interface to the package's functionality.

Required Parameters:

  • model_dir: Path to your model directory containing shards and configuration
  • cache_file: Location for storing shard metadata

Optional Parameters:

  • shard_pattern: Custom regex for matching shard files
  • layer_prefix: Prefix for identifying decoder layers (default: "model.layers.")
  • input_embedding_layer_name: Name for the embedding layer (default: 'model.embed_tokens.weight')
  • norm_layer_name: Name for the norm weight (default: 'momdel.norm.weight')
  • lm_head_name: Name for the head weight (default: 'lm_head.weight')
  • device: Target device for tensor operations ("cpu" or "cuda") (default: "cpu")
  • dtype: Desired numerical precision (default: torch.float16)

Example

This example uses all of the parts of the package to generate a token prediction

from llm_layer_collector import LlmLayerCollector
from llm_layer_collector.compute import compute_embedding, compute_layer, compute_head
from transformers import AutoTokenizer
import torch

# Initialize core components
collector = LlmLayerCollector(
    model_dir="/path/to/model",
    cache_file="cache.json",
    device="cuda",
    dtype=torch.float16
)

# Set up tokenization
tokenizer = AutoTokenizer.from_pretrained("/path/to/model")
input_text = "The quick brown fox"
input_ids = tokenizer(input_text, return_tensors='pt')['input_ids']

# Load model components
embedding = collector.load_input_embedding()
norm = collector.load_norm()
head = collector.load_head()
layers = collector.load_layer_set(0, collector.num_layers - 1)

# Execute forward pass
state = compute_embedding(embedding, input_ids, collector.config)
for layer in layers:
    state.state = compute_layer(layer, state)

# Generate predictions
predictions = compute_head(head, norm(state.state), topk=1)

Computation Pipeline

Our helper functions provide a streamlined approach to model operations:

  • compute_embedding: Handles input embedding and causal mask setup
  • compute_layer: Manages state transitions through decoder layers
  • compute_head: Processes final linear projections and token prediction

Project details


Download files

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

Source Distribution

llm_layer_collector-0.1.10.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

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

llm_layer_collector-0.1.10-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file llm_layer_collector-0.1.10.tar.gz.

File metadata

  • Download URL: llm_layer_collector-0.1.10.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_layer_collector-0.1.10.tar.gz
Algorithm Hash digest
SHA256 59f54af5a8e6875b91a540a62f7a4f0d2a5a1b6a5a138ac6f2ae4ceb2b3cc0cf
MD5 c3a007b929d2423580a385f134871f1a
BLAKE2b-256 d52d09598d1718cf174aa13f15167cb8e2f7c302cc06bad33e8a742a7ddafd28

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_layer_collector-0.1.10.tar.gz:

Publisher: publish.yml on erinclemmer/llm-layer-collector

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

File details

Details for the file llm_layer_collector-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_layer_collector-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 1e56aadb305b2fc0d4ac89943f145224f3b2df7795ae668a8753c49e420fcd38
MD5 94099197a4691476e5dbe043d80d1b39
BLAKE2b-256 c4293ebbff12cd8cc34aad01bdd4d80e98a246cfb009088eb9e9ef1f17cf04b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_layer_collector-0.1.10-py3-none-any.whl:

Publisher: publish.yml on erinclemmer/llm-layer-collector

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

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