Skip to main content

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-mend is patent-independent. Its Apache-2.0 grant does not extend to TsugiCinema's K-Pool LoRA or Infinity patent estates.
  • tsugi-kpool is 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

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

tsugi-0.1.0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

tsugi-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for tsugi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 506f456669d910e6d64b7199c049d89426230f186b865ac31ebf7c95c05965f6
MD5 652122dedeca5734de8b6b5423800726
BLAKE2b-256 0f299d0bc2c8b899b9f59fd77c96767277256a8e7ac2f1b580e60e713aae3a27

See more details on using hashes here.

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

Hashes for tsugi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c7cf4f0433bb646caccea7f8299f54413fb24c58b677262fe89bb90c9e9fbc2
MD5 c32bd4e193f7eab519b0d58e468d7e13
BLAKE2b-256 1a843124db1b879e1d6934b701c2449f10c9d215bddb6864b2dc556f92192193

See more details on using hashes here.

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