topologies
A PyTorch toolbox for building, training, comparing and inspecting neural-network architectures — plus a catalog of small reference implementations (GPT, LLaMA, ViT, ResNet, BERT, Mamba, ...).
Early alpha (v0.0.1). The toolbox — training engine, data utilities, tokenizers, model constructor, generation, evaluation, experiments, introspection — is tested. Catalog models in
topologies.models/topologies.layersare experimental references: importable, trainable and smoke-tested, but not validated against the papers. APIs may change between releases.
Install
pip install topologies # core
pip install "topologies[all]" # + vision, nlp, tensorboard, visualization, ...
Python 3.10–3.13, PyTorch >=2.2,<2.13.
Quickstart
Train a tiny language model on any text corpus:
from topologies import Trainer, build, data, generate, train_tokenizer
from topologies.nn import TransformerLM
docs = data.read_documents("corpus.txt")
train_docs, val_docs = data.train_val_split(docs, 0.1)
tok = train_tokenizer(train_docs, kind="bpe", vocab_size=2048)
model = build(TransformerLM, "tiny", vocab_size=tok.vocab_size, max_seq=128)
trainer = Trainer(model, data.lm_dataset(train_docs, tok, 128),
data.lm_dataset(val_docs, tok, 128),
tokenizer=tok, batch_size=32, max_epochs=20, lr=1e-3)
trainer.fit()
trainer.save_pretrained("artifacts/tiny-lm")
print(generate(model, "Once upon a time", tokenizer=tok, max_new_tokens=100, top_k=40))
Compare many configurations with one declaration — the library runs every trial (resumably), then ranks and explains the results:
from topologies import Experiment
from topologies.experiments import LanguageModeling, Variant
exp = Experiment("arch-x-tokenizer",
task=LanguageModeling(docs, val_fraction=0.1, block_size=128),
axes={"model": [TransformerLM,
Variant("llama-ish", TransformerLM, pos="rope",
norm="rms", activation="swiglu")],
"tokenizer": ["char", "bpe:1k", "bpe:4k"]},
target_params="1M", train_for="2 epochs", seeds=2)
exp.run().show()
What's inside
topologies.nn— composable stacks, presets and parameter budgetsTrainer,generate, evaluation, optimization and quantization helperstopologies.data, dataset catalog, tokenizersExperiment— sweeps, leaderboards, pivots, importance analysistopologies.introspection/topologies.visualization— look inside trained modelstopologiesCLI —topologies --help
Links
- Documentation: https://topologies.hackwhiz.net
- Repository and issues: https://github.com/yvsazh/topologies
License
Apache-2.0
Metadata
Release files for topologies 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| topologies-0.0.2.tar.gz | 1.8 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| topologies-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.4 MB
Release files / topologies-0.0.2.tar.gz
| Download URL | topologies-0.0.2.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82b1644d27275b20cbe7f8511cdb392194b9c91130f6ac2d3d7c48461f05b0e8
|
|
BLAKE2b-256 checksum How to use checksums |
6c1bc305d79f76ec545905b4402d116081770237018d7f7c86605d7c11d1adb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|
Release files / topologies-0.0.2-py3-none-any.whl
| Download URL | topologies-0.0.2-py3-none-any.whl |
|---|---|
| Size | 2.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2d3a24cafa75cfb0646e6269cbe903a0bc5721306239ee4cd281fbe7a527382
|
|
BLAKE2b-256 checksum How to use checksums |
16e5dd8fa1cacfcae4e0895d4131d532692fa6f29ac7de710d5ecea7913588cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.4
|
Security for topologies 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.