MINT
Meaning-Informed Next-token Transformation
Project Goals
MINT adds a transformation layer that redistributes next-token probabilities according to semantic token similarity based on the model's embedding space. The aim is to produce more varied, human-like text without sacrificing coherence.
Installation
Create a virtual environment and install the package in editable mode:
pip install -e .
This installs the mint package and provides the mint command-line interface.
To use the published release from PyPI (when available), run:
pip install mint-llm
CLI Usage
Run the CLI with:
mint --help
The mint command exposes several subcommands. The typical workflow is shown
below.
Using MINT
Run the commands below to build and apply the redistribution layer:
-
Pick a checkpoint from the Hugging Face Hub (optional). This uses the
mint.utils.download_checkpointhelper to fetch and merge sharded weights automatically.mint pick <model_id> checkpoint/
-
Extract token embeddings from the checkpoint.
mint extract checkpoint/model.safetensors embeddings.safetensors
-
Blend the embeddings into a low-rank similarity factor.
mint blend embeddings.safetensors mint_out/ --rank 1024 --gpu 0 # → mint_out/W.safetensors (plus R.safetensors with --keep-residual)
Use
-r/--rankto set factor rank (default 1024). Add--cpuor--gpu IDXto choose the device. The optional--sdkflag selects an acceleration backend—CUDA and Vulkan are supported. ZLUDA, ROCm and Metal support will be added in a future release. Pass--keep-residualto also save a sparseR.safetensorsfile. -
Brew new text from the wrapped model.
mint brew model_id_or_path mint_out/ --prompt "Hello"
Omit
--promptor pass--interactiveto read prompts from stdin. -
Infuse the tested similarity matrix into a local model and save the result to a directory.
mint infuse path/to/model mint_out/ infused-model --alpha 0.1
from mint.wrapper import load_wrapped_model from mint.logits import SRLogitsProcessor model, tokenizer, layer = load_wrapped_model("model_id_or_path", "mint_out/") processor = SRLogitsProcessor(layer)
See the notebooks and examples/quickstart.py
for a more detailed walk-through and an automated script. You can also explore
the generator interactively using the CLI.
Additional Utilities
The CLI exposes optional commands for working with checkpoints:
-
Crush merge sharded checkpoints referenced by an index file.
mint crush checkpoint/model.safetensors.index.json checkpoint/model.safetensors
-
Chop split a
.safetensorscheckpoint into shards. Provide a shard count or size:mint chop model.safetensors shards/ --shards 2 mint chop model.safetensors shards/ --size-mb 500
Brand-based ISVD Functions
MINT ships helper utilities implementing Brand's Incremental Singular Value Decomposition alongside Zhang et al.'s update strategy. Use initialize_isvd, update_isvd, and final_isvd_check from mint.brand_svd to maintain low-rank factors as new embedding vectors are streamed. These functions support optional weighting matrices to match the similarity metric. We continuously refine the implementation and optimize performance—see the Brand SVD folder for the original papers.
Quickstart Script
Run examples/quickstart.py for an end-to-end
demonstration. The script mirrors the mint CLI commands:
extract, blend and brew.
Required argument:
--prompt– input text to generate from.
Optional arguments default to values defined in
tests/utils/model_config.json:
--checkpoint– checkpoint path. If this points to a*.safetensors.index.jsonfile the required shards are downloaded and merged automatically. If omittedmodel_urlis used.--model– model identifier or path. When a model ID is provided the checkpoint shards are fetched and merged automatically. Defaults tomodel_idor one derived frommodel_url.--embeddings– output file for embeddings (defaultembeddings.safetensors).--similarity– output directory forW.safetensors(and optionallyR.safetensors, default.cache/mint).
python examples/quickstart.py --prompt "Hello"
The script extracts embeddings, builds the similarity matrix and generates text using the wrapped model.
Examples
Practical examples are provided in the notebooks directory. They demonstrate embedding extraction, building a similarity matrix and brewing text from a short prompt.
Development
Install development dependencies with:
pip install -e '.[dev]'
The development extras include the vulkan package so local tests can run
against the Vulkan backend. GitHub Actions does not provide Vulkan support,
and any Vulkan tests are skipped in CI.
Use the provided Makefile to run common tasks:
make format # check black formatting
make lint # run ruff and mypy (if configured)
make lint-fast # run ruff only, skip mypy
make test # run the pytest suite
make all # runs all checks
make commands format, lint, lint-fast, and all can also be suffixed with -fix (e.g. make lint-fix or make all-fix)
to attempt to automatically fix issues. make fix will run all-fix.
Tests are executed with -Werror, so any warnings will fail the build.
Continuous integration uses .github/workflows/lint.yml and
.github/workflows/tests.yml. Tagged releases
first run .github/workflows/version-bump.yml, which commits the
updated version information back to src/mint/__init__.py and
CITATION.cff. This workflow is shell-only and doesn't require a Python
environment. When that workflow completes successfully,
.github/workflows/publish.yml and .github/workflows/release.yml
build and upload the package and GitHub release. Both workflows use
scripts/prepare_pypi_readme.py to prepare the README for PyPI.
Contributing
Development tasks are tracked in todos.json. See
project_proposal-MINT.md for the full technical
plan. Release notes are available in
CHANGELOG.md. Feel free to open issues or pull requests to
contribute.
Citation
cff-version: 1.2.0
title: MINT - Meaning-Informed Next-token Transformation
message: 'If you reference this project, please cite it as below.'
type: software
authors:
- given-names: Bryan
family-names: O'Malley
email: bo122081@hotmail.com
identifiers:
- type: url
value: 'https://github.com/Reithan/MINT'
description: github repo for MINT
repository-code: 'https://github.com/Reithan/MINT'
url: 'https://github.com/Reithan/MINT'
abstract: >-
MINT adds a post-softmax decoding layer that redistributes
token log-probs according to token similarity based on
the model's embedding space. The aim is to produce more
varied, human-like text without sacrificing coherence.
keywords:
- llm
- ai
- svd
- isvd
- transformers
- safetensors
- text-generation
- chat-completion
- huggingface
commit: 75bb29a90e0988862d03020d2f7fb399ff621845
version: v0.1.4-alpha
date-released: '2025-06-19'
references:
- type: conference-paper
title: "Incremental Singular Value Decomposition of Uncertain Data with Missing Values"
authors:
- given-names: Matthew
family-names: Brand
year: 2002
doi: "10.1007/3-540-47969-4_47"
url: "https://link.springer.com/chapter/10.1007/3-540-47969-4_47"
citation: "@inproceedings{brand2002incremental,\n author = {Brand, M.},\n title = {{Incremental Singular Value Decomposition of Uncertain Data with Missing Values}},\n booktitle = {European Conference on Computer Vision (ECCV)},\n volume = {2350},\n pages = {707--720},\n year = {2002},\n doi = {10.1007/3-540-47969-4_47},\n url = {https://link.springer.com/chapter/10.1007/3-540-47969-4_47}\n}"
- type: article
title: "An answer to an open question in the incremental SVD"
authors:
- given-names: Yangwen
family-names: Zhang
year: 2022
url: "https://arxiv.org/abs/2204.05398"
citation: "@article{zhang2022answer,\n author = {Zhang, Yangwen},\n title = {{An answer to an open question in the incremental SVD}},\n journal = {arXiv preprint arXiv:2204.05398},\n year = {2022},\n url = {https://arxiv.org/abs/2204.05398}\n}"
Metadata
Release files for mint-llm 0.1.4
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 | |
|---|---|---|---|---|
| mint_llm-0.1.4.tar.gz | 39.0 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mint_llm-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.2 kB
Release files / mint_llm-0.1.4.tar.gz
| Download URL | mint_llm-0.1.4.tar.gz |
|---|---|
| Size | 39.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
553317eb52d8e1bde9c02d00c668a2752f683e8901d094ab1eda2640560f5b41
|
|
BLAKE2b-256 checksum How to use checksums |
edd03df91f8bfc40f0d4a59d62287000d57dc9b10c732bd0c38b35cb049054c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2025.
Transparency logRelease files / mint_llm-0.1.4-py3-none-any.whl
| Download URL | mint_llm-0.1.4-py3-none-any.whl |
|---|---|
| Size | 31.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f256a5b91ea24fd4c997947e5d07176a965552cac60829e5f3ad806042cf725c
|
|
BLAKE2b-256 checksum How to use checksums |
f216c2ad6381160726ea79dc512aa0520df5c4f79d7f6888543cbbd58af54694
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2025.
Transparency logSecurity for mint-llm 0.1.4
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for mint_llm-0.1.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 10, 2025.
Transparency logA 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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.