ADR 034 — Candle / QLoRA stack upgrades
Context
Section titled “Context”- Mens / Populi training paths depend on Candle, qlora-rs (vendored patch), peft-rs, and transitive stacks (
zip, CUDA kernels). - The workspace dependency audit showed duplicate majors (e.g.
zip) that cannot be collapsed without coordinated Candle + HF ecosystem bumps. - GPU builds (
mens-candle-cuda, NVCC) require explicit CI coverage.
Decision
Section titled “Decision”- No ad-hoc Candle major bump inside manifest-normalization PRs.
- Track one upgrade initiative with: MSRV check, CUDA release-build smoke, and lockfile diff review for
zip/rand/halftransitive shifts. - Keep using workspace pins + patches documented in root
Cargo.toml.
Status
Section titled “Status”Accepted (2026-10-01) — closed against measured repository state and a successful hosted CUDA-toolchain compile run.
Implementation (Phase 6, ML-01)
Section titled “Implementation (Phase 6, ML-01)”The dedicated upgrade train found the stack already unified, so it made no speculative major bump:
- Candle 0.10.2 (
candle-core/candle-nn/candle-transformerspinned to0.10in[workspace.dependencies];candle-metal-kernelspatched frompatches/candle-metal-kernels-0.10.2). - peft-rs 1.0.3 (patched from
patches/peft-rs-1.0.3). - qlora-rs 1.0.5 (patched from
patches/qlora-rs-1.0.5).
Evidence:
crates/vox-cli/tests/ml_dependency_health.rsreads lockedcargo metadataand fails if more than one version of any of these crates resolves.vox ci cuda-features/vox ci cuda-release-buildwere repaired to target the current owners,vox-plugin-speechandvox-ml-cli.nightly.yml’s fail-closedml-cuda-healthjob (ubuntu-latest, pinned CUDA 12.6.3 toolkit,CUDA_COMPUTE_CAP=80) passed: run 36821415478 at head SHAbc3214504f981e31817da3d9b4dbeae1b6cb0892.
Coverage limit. This evidence validates CUDA compilation and linkage only. It does not exercise a CUDA device or prove physical-GPU runtime behavior; that remains a local check (see runner contract).
Consequences
Section titled “Consequences”- Duplicate transitive versions outside this stack may persist; they are tracked in the workspace dependency audit.
- A future Candle major bump is a new upgrade train under the same gates, not an incidental change.