Unified developer surface for TsugiCinema's open-source distributed-training SDKs. pip install tsugi pulls tsugi-mend (Apache-2.0; patent-independent) and tsugi-kpool (Apache-2.0; patent-aligned) and re-exports both under one namespace.
Project description
tsugi
Unified developer surface for TsugiCinema's open-source distributed-training SDKs.
pip install tsugi
tsugi is a thin packaging-level wrapper that depends on and re-exports two physically separate Apache-2.0 SDKs published by TsugiCinema, Inc.
| Sub-SDK | PyPI package | Imports as | Patent posture |
|---|---|---|---|
| Cross-rack reducer (Decoupled DiLoCo + DES-LOC + async-TP + FALCON) | tsugi-mend |
tsugi.mend |
Patent-independent by deliberate construction |
| K-Pool LoRA / Infinity software analog | tsugi-kpool |
tsugi.kpool |
Patent-aligned (US App. 64/060,315 + US App. 64/055,093) |
The two sub-SDKs share zero code. This meta-package exposes them under a unified import namespace for developer convenience. Both sub-SDKs and this meta-package are licensed under the Apache License, Version 2.0.
Status
Pre-Alpha (0.1.0). APIs are stabilizing. Cross-SDK integration patterns may evolve. The two sub-SDK packages are also at 0.1.0 and are pinned by exact version in this meta-package's dependencies.
Quickstart
import tsugi
tsugi.about()
# tsugi 0.1.0 unified developer surface
# tsugi-mend 0.1.0 Apache-2.0 patent-independent (Decoupled DiLoCo + DES-LOC + async-TP + FALCON)
# tsugi-kpool 0.1.0 Apache-2.0 patent-aligned (US App. 64/060,315 K-Pool LoRA + US App. 64/055,093 Infinity)
Cross-rack reducer (tsugi.mend)
from tsugi.mend import MendConfig, mend_init, mend_shutdown
# After your model is wrapped (FSDP, TP, etc.):
config = MendConfig(quorum_min_learners=2, grace_window_ms=2000)
mend_init(model, config)
# ... train ...
mend_shutdown(model)
See tsugi-mend for benchmark protocols, the multi-stage validation record (Stage A through Stage E-prime), and the Phase 2 sprint plan.
K-Pool LoRA / Infinity (tsugi.kpool)
from tsugi.kpool import KPoolLoraConfig, plesio_init, plesio_shutdown
config = KPoolLoraConfig(
r=16,
lora_alpha=32,
n_adapters=8,
k_active=4,
sideband_enabled=True,
aggregation_mode="buffer_convergence",
)
plesio_init(model, config)
# ... train with K-of-N adapter routing ...
plesio_shutdown(model)
See tsugi-kpool for the buffer-convergence trigger characterization and the K-of-N routing semantics.
Architecture
tsugi itself is a torch-free import: import tsugi resolves only to configuration dataclasses on each sub-SDK. The runtime functions (mend_init, plesio_init, etc.) lazy-import torch via each sub-SDK's facade on first call. This keeps documentation builds and torch-free CI environments working.
When you actually call a runtime function, that sub-SDK loads torch and its own runtime machinery. The two sub-SDKs never cross-reference each other; they can be installed and used independently of this meta-package.
License and IP posture
Apache-2.0 with full automatic patent grant. See LICENSE for the preamble that distinguishes this meta-package's grant scope from each sub-SDK's grant scope, and NOTICE for the attribution chain to the upstream sub-SDKs.
The patent posture, in brief:
- This meta-package itself contains no patent-exercising code. Its Apache-2.0 patent grant covers only the thin wrapper code in this repository.
tsugi-mendis patent-independent. Its Apache-2.0 grant does not extend to TsugiCinema's K-Pool LoRA or Infinity patent estates.tsugi-kpoolis patent-aligned. Its Apache-2.0 grant in Section 3 extends to TsugiCinema's K-Pool LoRA (US App. 64/060,315) and Infinity (US App. 64/055,093) patent estates AS PRACTICED BY THE SDK CODE AS DISTRIBUTED. Apache-2.0 Section 3's "necessarily infringed by their Contribution" language bounds the patent license to the specific embodiment present in the SDK code, not the broader scope of the patent claims as filed.
Links
- Homepage: https://tsugilabs.ai
- Companion SDK (Mend): https://github.com/tsugiai/tsugi-mend
- Companion SDK (KPool): https://github.com/tsugiai/tsugi-kpool
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tsugi-0.1.0.tar.gz.
File metadata
- Download URL: tsugi-0.1.0.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
506f456669d910e6d64b7199c049d89426230f186b865ac31ebf7c95c05965f6
|
|
| MD5 |
652122dedeca5734de8b6b5423800726
|
|
| BLAKE2b-256 |
0f299d0bc2c8b899b9f59fd77c96767277256a8e7ac2f1b580e60e713aae3a27
|
File details
Details for the file tsugi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: tsugi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c7cf4f0433bb646caccea7f8299f54413fb24c58b677262fe89bb90c9e9fbc2
|
|
| MD5 |
c32bd4e193f7eab519b0d58e468d7e13
|
|
| BLAKE2b-256 |
1a843124db1b879e1d6934b701c2449f10c9d215bddb6864b2dc556f92192193
|