Skip to main content

😊 TPTT

arXiv PyPI Release Documentation HuggingFace

Transforming Pretrained Transformers into Titans

TPTT is a modular Python library designed to inject efficient linearized attention (LiZA) mechanisms-such as Memory as Gate (described in Titans)-into pretrained transformers 🤗.


Features

  • Flexible Attention Injection: Seamlessly wrap and augment standard Transformer attention layers with linearized attention variants for latent memory.
  • Support for Linear Attention: Includes implementations of DeltaNet and DeltaProduct with optional recurrent nonlinearity between chunks.
  • Modular Design: Easily extend or customize operators and integration strategies.
  • Compatibility: Designed to integrate with Hugging Face Transformers and similar PyTorch models.
  • Low-Compute Alignment: Requires only lightweight fine-tuning after injection, enabling efficient memory integration without heavy retraining.

[!IMPORTANT] After injecting the LiZA module, the model requires fine-tuning to properly align and effectively utilize the memory mechanism.

overview

Note: The Order 2 Delta-Product attention mechanism is equally expressive as Titans.

Installation and Usage

pip install tptt

Titanesque Documentation

  • TPTT-LiZA_Training:
    Instructions for training TPTT-based models with LoRA and advanced memory management.

  • TPTT_LiZA_Evaluation:
    Guide for evaluating language models with LightEval and Hugging Face Transformers.

  • TPTT_LiZA_FromScratch:
    Integrating the LinearAttention module into Pytorch deep learning projects.

Basic usage :

from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig
import tptt
from tptt import save_tptt_safetensors, get_tptt_model, load_tptt_safetensors
from torch import nn

##### Transforming into Titans (Tptt)
base_model_path = "Qwen/Qwen2.5-1.5B"
base_config = AutoConfig.from_pretrained(base_model_path)
base_model_name = "Qwen/Qwen2.5-1.5B"
tptt_config = tptt.TpttConfig(
    base_model_config=base_config,
    base_model_name= base_model_name, 
    #lora_config=lora_config,

)
model = tptt.TpttModel(config)
# manual local save
save_tptt_safetensors(model, path, name)

##### Pretrained Titans from Transformer
repo_id = "ffurfaro/Titans-Llama-3.2-1B"
model = AutoModelForCausalLM.from_pretrained(repo_id, trust_remote_code=True)

##### More custom for other Model (BERT, ViT, etc.)
model, linear_cache = get_tptt_model(model, config) # you can activate Bidirectional
model = load_tptt_safetensors(repo_or_path, model) # from saved LoRA only

##### Using LinearAttention from scratch
layers = nn.ModuleList([
    tptt.LinearAttention(hidden_dim=64, num_heads=4,)
    for _ in range(num_layers)])

Some scripts are available here


Results examples

plot

More détails in paper.

Development

  • Code is organized into modular components under the src/tptt directory.
  • Use pytest for testing and sphinx for documentation. See on this link🔥
  • Contributions and feature requests are welcome!

Requirements

  • Python 3.11+
  • PyTorch
  • einops
  • Transformers
  • Peft

See requirements.txt for the full list.


Docker Usage

Build and run TPTT with Docker:

# Build the image
docker build -t tptt .

# Run training (with GPU support)
docker run -it --gpus all \
  -v $(pwd)/data:/data \
  -v $(pwd)/outputs:/outputs \
  tptt python -m train \
    --model_name "meta-llama/Llama-3.2-1B" \
    --method delta_rule \
    --mag_weight 0.5

For more details, see the Dockerfile.

Acknowledgements

Discovering the OpenSparseLLMs/Linearization (🚀 linear-flash-attention-based) project inspired this work and motivated me to create a fully modular, Delta-rule style PyTorch version.

Citation

If you use TPTT in your academic work, please cite:

@article{furfaro2025tptt,
  title={TPTT: Transforming Pretrained Transformers into Titans},
  author={Furfaro, Fabien},
  journal={arXiv preprint arXiv:2506.17671},
  year={2025}
}

Contact

For questions or support, please open an issue on the GitHub repository or contact the maintainer.

Metadata

Release files for tptt 0.12.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tptt 0.12.1
File Size Uploaded
tptt-0.12.1.tar.gz 30.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tptt 0.12.1
File Interpreter ABI Platform
tptt-0.12.1-py3-none-any.whl Python 3 none any Details

Total release size: 61.9 kB

Release files / tptt-0.12.1.tar.gz

Download URL tptt-0.12.1.tar.gz
Size 30.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a21a32afef508da7a1b9738b6c7ccf87c70da8b673b518268d00f0c7bf8d96c4
BLAKE2b-256 checksum
How to use checksums
5e3050dfbac82160ea49af750d770b52b23c245080a1acfa198c338ea0340a0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.11.11 Linux/6.8.0-84-generic

Release files / tptt-0.12.1-py3-none-any.whl

Download URL tptt-0.12.1-py3-none-any.whl
Size 31.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbe64f1e6a0585f886b9710991ad1c89aa9e8c118c31f60f68ea26b2a2db9cda
BLAKE2b-256 checksum
How to use checksums
fadbe92ff6440e7ca63d14cfba65e0f702cd205889c02a1346f385e694c294b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.11.11 Linux/6.8.0-84-generic

Release history Release notifications | RSS feed

This release

0.12.1 This release

2 release files

0.12.0

2 release files

0.11.7

2 release files

0.11.6

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release 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