Skip to content

Releases: tsugiai/tsugi-mend

v0.1.5

Choose a tag to compare

@tsugimusic tsugimusic released this 12 Jun 08:06
37b71b1

Additive + hardening release; default mode remains bit-exact and byte-identical to 0.1.4.

  • Under-declared-roster in-place fallback + MergeResult.roster_fallback diagnostic
  • GraceWindowSyncer property-based fuzz (hypothesis, dev extra) + corrected learners_excluded semantics (merged tensors unchanged)
  • Sparse-delta nonzero-mask optimization, provably bitwise-identical (CUDA-confirmed)
  • MendConfig is now keyword-only (positional construction raises; positional order was never stable)
  • RuntimeAutotuner v2 observe-only signals: per-learner EWMA/CUSUM drift flag + sustained peer-relative gate (flag-only; defaults byte-identical)
  • Opt-in incremental_collect: straggler-aware first-arrival-order accumulation, bit-exact by construction with integrity fallback
  • Opt-in outer_step_compression_mode="quant4": LOSSY 4-bit block quantization with error feedback (default none untouched)

See CHANGELOG 0.1.5 for compatibility notes.

v0.1.4

Choose a tag to compare

@tsugimusic tsugimusic released this 10 Jun 08:36
35a3069

World-size-aware multi-rack reducer, wired live through the runtime.

  • GraceWindowSyncer.start_round accepts an optional expected_learner_ids roster (and total_learners); the syncer early-finalizes with reason == "all_present" once every expected, non-fail-slow learner has reported and quorum is met, instead of always waiting out the full grace window. New MergeResult.learners_absent absentee diagnostic; quorum_min_learners > total now rejected with a clear ValueError. (#28)
  • Opt-in MendConfig.expected_learner_ids threads the roster runtime -> ConcurrentOuterStep -> start_round on every outer round, with a per-round override on submit_async / outer_step_begin; learners_absent is surfaced in the outer_step_collect diagnostic event. (#30)
  • Default mode (expected_learner_ids=None) is unchanged: merge functions are character-for-character identical to v0.1.3, and the roster early-finalize path is proven bit-identical to the no-roster path with torch.equal in the integration tests.
  • The roster must be exhaustive (name every learner expected to report); see the CHANGELOG and docs/architecture.md for the full fallback semantics.

Full changelog: https://github.com/tsugiai/tsugi-mend/blob/main/CHANGELOG.md

v0.1.3

Choose a tag to compare

@tsugimusic tsugimusic released this 09 Jun 09:22
52c3932

Ships the three features merged since v0.1.2.

Added

  • Lossless sparse-delta compression mode (outer_step_compression_mode="sparse"): opt-in, dense fallback, default stays none.
  • Online runtime autotuner (auto_tune_runtime, default OFF): bit-exact-safe in default mode.
  • Seeded stall-sweep benchmark harness (benchmark/docs tooling; not shipped in the wheel).

0.2.0 remains reserved for secure-by-default sideband auth. Full notes in CHANGELOG.md.

Install: pip install --upgrade tsugi-mend

v0.1.2

Choose a tag to compare

@tsugimusic tsugimusic released this 29 May 08:21

tsugi-mend 0.1.2 syncs the published package to the hardened, honest repo (0.1.1 on PyPI still led with the retired +28.58% single-run headline).

Highlights:

  • Claim accuracy: described as a component toolkit you wire into your training loop (not a transparent drop-in); unwired mechanisms labeled with their 0.1.x status; bit-exact referent and the Decoupled DiLoCo citation corrected; the single-seed n=1 row moved out of the headline table.
  • Security (sideband; opt-in; control-plane only): HMAC replay protection, TLS that requires a CA and verifies peer identity, inbound read-timeout + connection cap, per-bind insecure-bind warning. Default trusted-network behavior unchanged.
  • Robustness: explicit bounded process-group timeouts + a completed multi-node runbook (NCCL_SOCKET_IFNAME + multi-NIC guidance).

Bit-exact loss equivalence in default mode is preserved throughout. See CHANGELOG.md for the full list.

v0.1.1

Choose a tag to compare

@tsugimusic tsugimusic released this 27 May 20:35
caf5221

First versioned release through the tokenless OIDC Trusted-Publishing pipeline. Adds the tsugi-mend CLI (version/info/doctor) + py.typed; opt-in sideband auth (HMAC)/TLS + unconditional input hardening; a multi-node torchrun runbook + runnable gloo example + Dockerfile; hardened CI (blocking mypy, advisory pip-audit, current actions); and a README benchmark-honesty pass. See CHANGELOG.md.