Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
ling-aspecinstalls Draft training dependencies;ling-aspec-targetinstalls the supported SGLang integration in an independent environment. Both automatically install the sameling-aspec-runtime, which alone owns theaspecnamespace and CLI. Target keeps SGLang 0.5.21's CUTLASS 4.6.2 / Quack 0.6.4 requirements; Draft keeps 4.7.1 / 0.6.5. Dependency overrides are removed.Start
aspec targetin Target, thenaspec train --config run.yamlin Draft. They connect usinginference.target_service.address(localhost by default); external startup requires no other environment's Python path. A versioned JSON control interface carries token requests, feature descriptions and lifecycle calls. Feature tensors retain the existing Mooncake transport, feature contracts and work identities. Draft's Plan reserves the physical GPUs; Target validates and exclusively leases those GPU sets, using a private Ray runtime for its own source processes.Optional single-node
managed-localsupervision launches this same service, checks readiness and process ownership, writes its logs, and shuts down only the service it started. Only this optional supervisor needs a Target interpreter location. It uses the existing full checkpoint/resume path. Quickstart exposes--managed-target; recipe acceptance accepts explicit config overrides.Sessions release their own workers while the external service remains available. Lost control stops admission; source buffers are retained until local read-process exit is verified. Unobservable remote readers remain retained. Existing work ownership, fallback and Evidence gates stay strict. Worker provenance comes from actual Target processes rather than the Draft installation.
aspec patch-sglangonly patches/verifies supported files. Native CUDA JIT libraries use a private cached toolkit view; host drivers and installed CUDA wheels are not changed. Public guides describe the two installs and simple launch commands.Release builds produce three version-aligned wheel/sdist pairs. Matching canonical version tags publish the audited artifacts through the GitHub
pypienvironment. Manual runs validate without publishing. Maintainers keep theb0release suffix and choose each version; CI never increments it. The PyPI token must cover all three project names.Verification
Current head:
b151362.pip checkruns pass, with the intended different CUTLASS/Quack versions and no SGLang in Draft.--managed-target: first four steps, full checkpoint restoration, continuation to step eight, export and strict loading. The supervisor started and stopped a distinct owned Target process for each phase. Both attempts ended completed/healthy. Eight updates validate the bounded workflow, not convergence or model quality.1e246018acf606d7547153a56389c4411a28054208dd3d381da61e1e68478bcc; runtime wheel SHA256 isc136319a9291456dfca4aa2e6a08ec012b2342272817d59a02d29089548b85a9. Console commands were also exercised outside the source checkout.mem_fraction_static=0.35; no host-wide process/Ray cleanup or driver changes were performed. No throughput or convergence claim is made.Provenance and scope
The external-service and optional supervision boundaries are inspired by SpecForge
f8cc3dc; its newer capture plugin is not copied. ASpec adapts its retained TorchSpec-derived SglEngine/transport contract and preserves the existing TorchSpec and transitive AngelSpec notices and license texts.Unverified scope: real multi-node service training, arbitrary network/host failure recovery, convergence/model quality, serving decode acceptance and actual PyPI publication. Unsupported or unverified reader reclamation fails closed.