Skip to content

feat(hslm): [F] Ternary Gradients / TernGrad — 16x compression #335

Description

@gHashTag

Parent: #329 — Fully Ternary Transformer

Level 0 (no dependencies) | ~80 LOC | New: src/hslm/ternary_gradients.zig

Description

Implement TernGrad: stochastic quantization of gradients to ternary {-1, 0, +1}. Achieves 16x compression (7.8MB → 488KB) with direction preservation.

Implementation

  • TernGrad.quantize(grad: []const f32) → TernaryGrad — stochastic ternarization
  • TernGrad.dequantize(tg: TernaryGrad) → []f32 — reconstruct with scaling factor
  • compressionRatio() — report actual compression (target: 16x)
  • Scaling: σ = max(|grad|), probability p_i = |g_i|/σ

tri CLI

tri hslm terngrad

Tests

  • Direction preservation: cosine similarity > 0.8 between original and dequantized
  • Compression ratio ≈ 16x (f32 → 2-bit + scale)
  • Stochastic: E[terngrad] ≈ grad (unbiased)

Blocks

  • Issue L (Integration — trainer.zig uses TernGrad after backward)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions