invarlock 0.3.5__py3-none-any.whl → 0.3.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. invarlock/__init__.py +2 -2
  2. invarlock/_data/runtime/tiers.yaml +57 -30
  3. invarlock/adapters/__init__.py +11 -15
  4. invarlock/adapters/auto.py +35 -40
  5. invarlock/adapters/capabilities.py +2 -2
  6. invarlock/adapters/hf_causal.py +418 -0
  7. invarlock/adapters/{hf_onnx.py → hf_causal_onnx.py} +3 -3
  8. invarlock/adapters/hf_mixin.py +25 -4
  9. invarlock/adapters/{hf_bert.py → hf_mlm.py} +4 -11
  10. invarlock/adapters/{hf_t5.py → hf_seq2seq.py} +9 -9
  11. invarlock/calibration/spectral_null.py +15 -10
  12. invarlock/calibration/variance_ve.py +0 -2
  13. invarlock/cli/adapter_auto.py +31 -21
  14. invarlock/cli/app.py +73 -2
  15. invarlock/cli/commands/calibrate.py +6 -2
  16. invarlock/cli/commands/certify.py +651 -91
  17. invarlock/cli/commands/doctor.py +11 -11
  18. invarlock/cli/commands/explain_gates.py +57 -8
  19. invarlock/cli/commands/plugins.py +13 -9
  20. invarlock/cli/commands/report.py +233 -69
  21. invarlock/cli/commands/run.py +1066 -244
  22. invarlock/cli/commands/verify.py +154 -15
  23. invarlock/cli/config.py +22 -6
  24. invarlock/cli/doctor_helpers.py +4 -5
  25. invarlock/cli/output.py +193 -0
  26. invarlock/cli/provenance.py +1 -1
  27. invarlock/core/api.py +45 -5
  28. invarlock/core/auto_tuning.py +65 -20
  29. invarlock/core/bootstrap.py +1 -1
  30. invarlock/core/contracts.py +7 -1
  31. invarlock/core/registry.py +11 -13
  32. invarlock/core/runner.py +425 -75
  33. invarlock/edits/quant_rtn.py +65 -37
  34. invarlock/eval/bench.py +3 -16
  35. invarlock/eval/data.py +82 -51
  36. invarlock/eval/metrics.py +63 -2
  37. invarlock/eval/primary_metric.py +23 -0
  38. invarlock/eval/tail_stats.py +230 -0
  39. invarlock/eval/tasks/__init__.py +12 -0
  40. invarlock/eval/tasks/classification.py +48 -0
  41. invarlock/eval/tasks/qa.py +36 -0
  42. invarlock/eval/tasks/text_generation.py +102 -0
  43. invarlock/guards/_estimators.py +154 -0
  44. invarlock/guards/invariants.py +19 -10
  45. invarlock/guards/policies.py +16 -6
  46. invarlock/guards/rmt.py +627 -546
  47. invarlock/guards/spectral.py +348 -110
  48. invarlock/guards/tier_config.py +32 -30
  49. invarlock/guards/variance.py +7 -31
  50. invarlock/guards_ref/rmt_ref.py +23 -23
  51. invarlock/model_profile.py +90 -42
  52. invarlock/observability/health.py +6 -6
  53. invarlock/observability/metrics.py +108 -0
  54. invarlock/reporting/certificate.py +384 -55
  55. invarlock/reporting/certificate_schema.py +3 -2
  56. invarlock/reporting/dataset_hashing.py +15 -2
  57. invarlock/reporting/guards_analysis.py +350 -277
  58. invarlock/reporting/html.py +55 -5
  59. invarlock/reporting/normalizer.py +13 -0
  60. invarlock/reporting/policy_utils.py +38 -36
  61. invarlock/reporting/primary_metric_utils.py +71 -17
  62. invarlock/reporting/render.py +852 -431
  63. invarlock/reporting/report.py +40 -4
  64. invarlock/reporting/report_types.py +11 -3
  65. invarlock/reporting/telemetry.py +86 -0
  66. invarlock/reporting/validate.py +1 -18
  67. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/METADATA +27 -13
  68. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/RECORD +72 -65
  69. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/WHEEL +1 -1
  70. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/entry_points.txt +5 -3
  71. invarlock/adapters/hf_gpt2.py +0 -404
  72. invarlock/adapters/hf_llama.py +0 -487
  73. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/licenses/LICENSE +0 -0
  74. {invarlock-0.3.5.dist-info → invarlock-0.3.7.dist-info}/top_level.txt +0 -0
@@ -243,22 +243,24 @@ def save_report(
243
243
  raise ValueError("Baseline report required for certificate generation")
244
244
 
245
245
  # Generate certificate JSON in canonical path/name
246
+ cert_json = to_certificate(report, baseline, format="json")
246
247
  cert_json_path = output_path / "evaluation.cert.json"
247
248
  with open(cert_json_path, "w", encoding="utf-8") as f:
248
- f.write(to_certificate(report, baseline, format="json"))
249
+ f.write(cert_json)
249
250
  saved_files["cert"] = cert_json_path
250
251
 
251
252
  # Also emit a markdown variant for human consumption
253
+ cert_md = to_certificate(report, baseline, format="markdown")
252
254
  cert_md_path = output_path / f"{filename_prefix}_certificate.md"
253
255
  with open(cert_md_path, "w", encoding="utf-8") as f:
254
- f.write(to_certificate(report, baseline, format="markdown"))
256
+ f.write(cert_md)
255
257
  saved_files["cert_md"] = cert_md_path
256
258
 
257
259
  # Emit a lightweight manifest to serve as an evidence bundle index
258
260
  try:
259
261
  from datetime import datetime as _dt
260
262
 
261
- manifest = {
263
+ manifest: dict[str, Any] = {
262
264
  "generated_at": _dt.now().isoformat(),
263
265
  "files": {
264
266
  "certificate_json": str(cert_json_path),
@@ -270,6 +272,40 @@ def save_report(
270
272
  "seed": (report.get("meta", {}) or {}).get("seed"),
271
273
  },
272
274
  }
275
+
276
+ # Surface quick triage fields without opening the certificate.
277
+ try:
278
+ from .render import compute_console_validation_block
279
+
280
+ certificate_obj = json.loads(cert_json)
281
+ if not isinstance(certificate_obj, dict):
282
+ raise TypeError("certificate JSON did not decode to a dict")
283
+
284
+ block = compute_console_validation_block(certificate_obj)
285
+ rows = block.get("rows", []) or []
286
+ gates_total = len(rows)
287
+ gates_passed = sum(
288
+ 1 for r in rows if isinstance(r, dict) and bool(r.get("ok"))
289
+ )
290
+ overall_status = "PASS" if block.get("overall_pass") else "FAIL"
291
+
292
+ pm_ratio = None
293
+ pm = certificate_obj.get("primary_metric", {}) or {}
294
+ if isinstance(pm, dict):
295
+ ratio = pm.get("ratio_vs_baseline")
296
+ if isinstance(ratio, int | float):
297
+ pm_ratio = float(ratio)
298
+
299
+ manifest["summary"].update(
300
+ {
301
+ "overall_status": overall_status,
302
+ "primary_metric_ratio": pm_ratio,
303
+ "gates_passed": gates_passed,
304
+ "gates_total": gates_total,
305
+ }
306
+ )
307
+ except Exception:
308
+ pass
273
309
  # Write debug evidence (tiny) when requested via env
274
310
  guard_payload = {}
275
311
  try:
@@ -401,7 +437,7 @@ def _generate_single_markdown(report: RunReport) -> list[str]:
401
437
  parts.append(f"ratio_vs_baseline={ratio:.3f}")
402
438
  lines.append(" — ".join(parts) if len(parts) > 1 else parts[0])
403
439
  else:
404
- # When primary_metric is absent, do not attempt legacy fallbacks
440
+ # When primary_metric is absent, do not attempt fallbacks
405
441
  lines.append("- **Primary Metric**: unavailable")
406
442
  lines.append(
407
443
  f"- **Parameters Changed**: {report['edit']['deltas']['params_changed']:,}"
@@ -34,7 +34,7 @@ class MetaData(TypedDict):
34
34
  """Metadata about the model and execution environment."""
35
35
 
36
36
  model_id: str # Model identifier (e.g., "gpt2", "path/to/model")
37
- adapter: str # Adapter name (e.g., "hf_gpt2")
37
+ adapter: str # Adapter name (e.g., "hf_causal")
38
38
  commit: str # Git commit SHA
39
39
  seed: int # Random seed used for evaluation
40
40
  device: str # Device used ("cpu", "cuda", "mps")
@@ -101,10 +101,17 @@ class EvalMetrics(TypedDict, total=False):
101
101
 
102
102
  # Canonical primary metric snapshot
103
103
  primary_metric: dict[str, Any]
104
+ # Always-computed tail evidence/gate for ppl-like primary metrics
105
+ primary_metric_tail: dict[str, Any]
104
106
 
105
- # Optional legacy/aux fields retained for guard telemetry and debug
107
+ # Optional aux fields retained for guard telemetry and debug
106
108
  latency_ms_per_tok: float # Average latency per token in milliseconds
107
109
  memory_mb_peak: float # Peak memory usage in MB
110
+ gpu_memory_mb_peak: float # Peak GPU memory usage in MB
111
+ gpu_memory_reserved_mb_peak: float # Peak GPU reserved memory in MB
112
+ timings: dict[str, float] # Phase timing breakdown (seconds)
113
+ guard_timings: dict[str, float] # Per-guard timings (seconds)
114
+ memory_snapshots: list[dict[str, Any]] # Phase memory snapshots
108
115
  spectral: dict[str, Any] # Spectral norm summaries
109
116
  rmt: dict[str, Any] # RMT statistics
110
117
  invariants: dict[str, Any] # Model invariant check results
@@ -164,6 +171,7 @@ class RunReport(TypedDict):
164
171
  # Optional extras kept for richer downstream processing
165
172
  guard_overhead: NotRequired[dict[str, Any]]
166
173
  provenance: NotRequired[dict[str, Any]]
174
+ context: NotRequired[dict[str, Any]]
167
175
 
168
176
 
169
177
  # Utility functions for creating reports
@@ -247,7 +255,7 @@ def validate_report(report: RunReport) -> bool:
247
255
  if pm_final is not None and not isinstance(pm_final, int | float):
248
256
  return False
249
257
  else:
250
- # PM-only: legacy ppl_* acceptance removed
258
+ # PM-only: ppl_* acceptance removed
251
259
  return False
252
260
 
253
261
  meta = report.get("meta", {})
@@ -0,0 +1,86 @@
1
+ """
2
+ Telemetry report utilities.
3
+
4
+ Produces a compact JSON summary for performance analysis.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import json
10
+ from datetime import datetime
11
+ from pathlib import Path
12
+ from typing import Any
13
+
14
+
15
+ def build_telemetry_payload(report: dict[str, Any]) -> dict[str, Any]:
16
+ """Build a structured telemetry payload from a run report."""
17
+ meta_in = report.get("meta", {}) if isinstance(report, dict) else {}
18
+ metrics_in = report.get("metrics", {}) if isinstance(report, dict) else {}
19
+
20
+ payload: dict[str, Any] = {"generated_at": datetime.now().isoformat()}
21
+
22
+ if isinstance(meta_in, dict):
23
+ payload["meta"] = {
24
+ "model_id": meta_in.get("model_id"),
25
+ "adapter": meta_in.get("adapter"),
26
+ "device": meta_in.get("device"),
27
+ "run_id": meta_in.get("run_id"),
28
+ "profile": meta_in.get("profile"),
29
+ }
30
+
31
+ if isinstance(metrics_in, dict):
32
+ timings = metrics_in.get("timings")
33
+ if isinstance(timings, dict):
34
+ payload["timings"] = timings
35
+
36
+ guard_timings = metrics_in.get("guard_timings")
37
+ if isinstance(guard_timings, dict):
38
+ payload["guard_timings"] = guard_timings
39
+
40
+ memory_snapshots = metrics_in.get("memory_snapshots")
41
+ if isinstance(memory_snapshots, list):
42
+ payload["memory_snapshots"] = memory_snapshots
43
+
44
+ memory_summary: dict[str, Any] = {}
45
+ for key in (
46
+ "memory_mb_peak",
47
+ "gpu_memory_mb_peak",
48
+ "gpu_memory_reserved_mb_peak",
49
+ ):
50
+ value = metrics_in.get(key)
51
+ if isinstance(value, int | float):
52
+ memory_summary[key] = float(value)
53
+ if memory_summary:
54
+ payload["memory"] = memory_summary
55
+
56
+ perf_metrics: dict[str, Any] = {}
57
+ for key in (
58
+ "latency_ms_per_tok",
59
+ "throughput_tok_per_s",
60
+ "eval_samples",
61
+ "total_tokens",
62
+ ):
63
+ value = metrics_in.get(key)
64
+ if isinstance(value, int | float):
65
+ perf_metrics[key] = float(value)
66
+ if perf_metrics:
67
+ payload["performance"] = perf_metrics
68
+
69
+ return payload
70
+
71
+
72
+ def save_telemetry_report(
73
+ report: dict[str, Any],
74
+ output_dir: Path,
75
+ *,
76
+ filename: str = "telemetry.json",
77
+ ) -> Path:
78
+ """Write telemetry JSON payload to the output directory."""
79
+ payload = build_telemetry_payload(report)
80
+ output_dir.mkdir(parents=True, exist_ok=True)
81
+ path = output_dir / filename
82
+ path.write_text(json.dumps(payload, indent=2, ensure_ascii=False), encoding="utf-8")
83
+ return path
84
+
85
+
86
+ __all__ = ["build_telemetry_payload", "save_telemetry_report"]
@@ -9,10 +9,9 @@ Supports both automated CI testing and flexible user validation.
9
9
  from __future__ import annotations
10
10
 
11
11
  import json
12
- import os
13
12
  import warnings
14
13
  from pathlib import Path
15
- from typing import Any, cast
14
+ from typing import Any
16
15
 
17
16
  __all__ = [
18
17
  "validate_against_baseline",
@@ -99,23 +98,7 @@ def validate_against_baseline(
99
98
  ratio_bounds: tuple[float, float] = (1.25, 1.32),
100
99
  delta_bounds_pp: tuple[float, float] | None = None,
101
100
  structural_exact: bool = True,
102
- **kwargs,
103
101
  ) -> ValidationResult:
104
- # Backward-compatible kwargs (deprecated): enable via INVARLOCK_VALIDATE_LEGACY=1
105
- legacy = str(os.environ.get("INVARLOCK_VALIDATE_LEGACY", "")).strip().lower() in {
106
- "1",
107
- "true",
108
- "yes",
109
- "on",
110
- }
111
- if legacy:
112
- if "tol_ppl_ratio" in kwargs and isinstance(
113
- kwargs["tol_ppl_ratio"], int | float
114
- ):
115
- tol_ratio = float(kwargs["tol_ppl_ratio"])
116
- if "ppl_bounds" in kwargs and isinstance(kwargs["ppl_bounds"], tuple):
117
- # Coerce after runtime guard
118
- ratio_bounds = cast(tuple[float, float], kwargs["ppl_bounds"])
119
102
  """
120
103
  Validate pruning results against baseline metrics (PM-only API).
121
104
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invarlock
3
- Version: 0.3.5
3
+ Version: 0.3.7
4
4
  Summary: Edit‑agnostic robustness certificates for weight edits (InvarLock framework)
5
5
  Author-email: InvarLock Team <oss@invarlock.dev>
6
6
  Maintainer-email: InvarLock Maintainers <support@invarlock.dev>
@@ -31,6 +31,7 @@ Requires-Dist: scikit-learn>=1.4
31
31
  Requires-Dist: pydantic>=2.0
32
32
  Requires-Dist: rich>=13.0
33
33
  Requires-Dist: pyyaml>=6.0
34
+ Requires-Dist: markdown>=3.5
34
35
  Requires-Dist: psutil>=5.9
35
36
  Requires-Dist: hypothesis>=6.98
36
37
  Requires-Dist: typing_extensions>=4.7
@@ -110,9 +111,9 @@ In short: certify that weight edits (e.g., quantization) preserve quality. If
110
111
  they don’t, roll back safely.
111
112
 
112
113
  Technical: edit‑agnostic guard pipeline (invariants → spectral → RMT →
113
- variance) producing a machine‑readable Safety Certificate.
114
+ variance) producing a machine‑readable Evaluation Certificate.
114
115
 
115
- > **Status:** 0.3.5 (pre‑1.0). Until 1.0, **minor** releases may be
116
+ > **Status:** 0.3.7 (pre‑1.0). Until 1.0, **minor** releases may be
116
117
  > breaking. See CLI help and the CHANGELOG for updates.
117
118
 
118
119
  [![CI](https://img.shields.io/github/actions/workflow/status/invarlock/invarlock/ci.yml?branch=main&logo=github&label=CI)](https://github.com/invarlock/invarlock/actions/workflows/ci.yml)
@@ -127,7 +128,20 @@ For guidance on where to ask questions, how to report bugs, and what to expect i
127
128
 
128
129
  ## 🚀 Quick start (no repo clone)
129
130
 
130
- [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_quickstart_cpu.ipynb)
131
+ Notebooks (Colab):
132
+
133
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_quickstart_cpu.ipynb)
134
+ `invarlock_quickstart_cpu.ipynb` — install + certify + verify + HTML export (CPU-friendly)
135
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_compare_certify.ipynb)
136
+ `invarlock_compare_certify.ipynb` — Compare & Certify (BYOE) end-to-end
137
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_certificate_deep_dive.ipynb)
138
+ `invarlock_certificate_deep_dive.ipynb` — reading and interpreting certificates
139
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_custom_datasets.ipynb)
140
+ `invarlock_custom_datasets.ipynb` — Bring Your Own Data (BYOD) with `local_jsonl`
141
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_python_api.ipynb)
142
+ `invarlock_python_api.ipynb` — programmatic Python API usage
143
+ - [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/invarlock/invarlock/blob/main/notebooks/invarlock_policy_tiers.ipynb)
144
+ `invarlock_policy_tiers.ipynb` — Conservative vs Balanced vs Aggressive tier comparison
131
145
 
132
146
  ```bash
133
147
  # Install with HF adapters
@@ -146,8 +160,8 @@ This produces `reports/.../evaluation.cert.json` with paired metrics
146
160
  (ppl/accuracy), structural deltas, spectral/RMT stats, variance‑estimator
147
161
  provenance, seeds/hashes, pairing metrics, and a policy digest.
148
162
 
149
- > **Calibration note:** tier thresholds and window sizes are piloted on GPT‑2 small,
150
- > BERT base, and TinyLLaMA (see `docs/assurance/09-tier-v1-calibration.md`). For
163
+ > **Calibration note:** tier thresholds and window sizes are piloted on GPT‑2 small
164
+ > and BERT base (see `docs/assurance/09-tier-v1-calibration.md`). For
151
165
  > calibrated Balanced/Conservative certs, use the preset‑based CI/Release examples
152
166
  > below. `INVARLOCK_TINY_RELAX` dev runs relax sample‑size floors and are intended
153
167
  > only for small smoke tests (not release evidence).
@@ -170,7 +184,7 @@ Quick examples (repo presets, CPU; repo clone required for preset paths):
170
184
  pip install "invarlock[hf]"
171
185
 
172
186
  # Preflight a config (JSON diagnostics)
173
- invarlock doctor --config configs/tasks/causal_lm/ci_cpu.yaml --json
187
+ invarlock doctor --config configs/presets/causal_lm/wikitext2_512.yaml --json
174
188
 
175
189
  # Calibrated GPT‑2 small (recommended starting point; repo preset)
176
190
  INVARLOCK_ALLOW_NETWORK=1 INVARLOCK_DEDUP_TEXTS=1 \
@@ -179,7 +193,7 @@ invarlock certify \
179
193
  --subject gpt2 \
180
194
  --adapter auto \
181
195
  --profile release \
182
- --preset configs/tasks/causal_lm/release_auto.yaml
196
+ --preset configs/presets/causal_lm/wikitext2_512.yaml
183
197
 
184
198
  # Tiny causal LM smoke (out‑of‑calibration, dev‑only)
185
199
  INVARLOCK_ALLOW_NETWORK=1 \
@@ -249,7 +263,7 @@ INVARLOCK_ALLOW_NETWORK=1 invarlock certify \
249
263
  --subject gpt2 \
250
264
  --adapter auto \
251
265
  --profile ci \
252
- --preset configs/tasks/causal_lm/ci_cpu.yaml
266
+ --preset configs/presets/causal_lm/wikitext2_512.yaml
253
267
  ```
254
268
 
255
269
  - Offline/air‑gapped usage: pre‑download to a cache, then run with network
@@ -319,7 +333,7 @@ needed (e.g., `CUDA_VISIBLE_DEVICES`).
319
333
  3. **RMT** (ε-band on outliers; monitor or gate per tier)
320
334
  4. **Variance (VE)** (predictive paired ΔlogNLL gate; tiered sidedness)
321
335
 
322
- - **Safety Certificate (schema v1, PM‑only)**: Primary Metric (ppl or
336
+ - **Evaluation Certificate (schema v1, PM‑only)**: Primary Metric (ppl or
323
337
  accuracy) with paired statistics, structural deltas, spectral/RMT stats, VE
324
338
  provenance, seeds/hashes, pairing metrics, and **policy digest**. Canonical
325
339
  artifact: `reports/.../evaluation.cert.json`.
@@ -440,7 +454,7 @@ Key checks enforced by balanced policy (summary):
440
454
  ```yaml
441
455
  model:
442
456
  id: "<set-your-model-id>" # e.g., gpt2
443
- adapter: "hf_gpt2"
457
+ adapter: "hf_causal"
444
458
  device: "cpu"
445
459
  dataset:
446
460
  provider: "wikitext2"
@@ -488,7 +502,7 @@ output:
488
502
  Run preflight checks before a run to catch misconfigurations early:
489
503
 
490
504
  ```bash
491
- invarlock doctor --config configs/tasks/causal_lm/ci_cpu.yaml --json
505
+ invarlock doctor --config configs/presets/causal_lm/wikitext2_512.yaml --json
492
506
  ```
493
507
 
494
508
  Text mode emits lines prefixed with `ERROR:`, `WARNING:`, or `NOTE:` and stable
@@ -505,7 +519,7 @@ invarlock/
505
519
  │ ├─ invarlock/ # core + unified namespace
506
520
  │ │ ├─ core/ # runner, registry, contracts, events, ABI
507
521
  │ │ ├─ cli/ # console app + command wrappers (unified import path)
508
- │ │ ├─ adapters/ # adapter wrappers (HF GPT‑2/BERT/LLaMA)
522
+ │ │ ├─ adapters/ # model adapters (HF causal/MLM/seq2seq/onnx)
509
523
  │ │ ├─ edits/ # quant_rtn
510
524
  │ │ ├─ guards/ # invariants, spectral, rmt, variance
511
525
  │ │ ├─ eval/ # evaluation metrics and helpers
@@ -1,86 +1,87 @@
1
- invarlock/__init__.py,sha256=qJbKFRR8oIyu0lQ-ycORqgm0nj0DNDNpojWXrLR-nP0,1268
1
+ invarlock/__init__.py,sha256=ADHnj4D3i4MA8nqx2Hydu5EG4ZB-OiNsv-lO2aEzVDM,1271
2
2
  invarlock/__main__.py,sha256=ffhoKctw89j-henmQXThbHDIdlvK9fBfsy8LpjhOEXc,146
3
3
  invarlock/config.py,sha256=7BUOl7EW258YnsgRipjOx6lmWou5jNDzimREd35ewsQ,1725
4
- invarlock/model_profile.py,sha256=sFHpK-1Q-1DjiZTWMolQBG4Dw9feLJgk3GnaD3ixgd8,12809
4
+ invarlock/model_profile.py,sha256=LlrBmSNXXFau0UGkYPkR9NVjatMRqTvgoNXlwD5GlaA,14557
5
5
  invarlock/model_utils.py,sha256=mEl9KOF2yOJgx-6r38PbD9SNFeAScamy9K-csxtl40Q,6395
6
6
  invarlock/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
7
7
  invarlock/security.py,sha256=xUjbHu-bHKUfFqDyN_21Hj00NBmAcGgnAg4JCjb0JOE,4861
8
8
  invarlock/sparsity_utils.py,sha256=30SC3osptca2GmzxezbfX31EE6sRUhmEz8u3jn4vB2c,8281
9
- invarlock/_data/runtime/tiers.yaml,sha256=xVHPi-Nopxc-Ye-5lGIer9k-lxiiZZ2cmSnzZE-EHIA,2989
9
+ invarlock/_data/runtime/tiers.yaml,sha256=9EbVnNw6MX18NKMI9xjKzJt-BsaB-JhUtC13c3Skmls,3619
10
10
  invarlock/_data/runtime/profiles/ci_cpu.yaml,sha256=FE5vxeemAFWW7oRxPvp_8hIcCO8qrJilvQpXuS3f6u0,389
11
11
  invarlock/_data/runtime/profiles/release.yaml,sha256=xF0Qb0OTm904U6L3wK674JMTcDPegYvpKgwUB9pfq_w,482
12
- invarlock/adapters/__init__.py,sha256=Bwj8aKjhFxCzvcdxTIl-nG7IXyIE4L3Nd_fsIghbZxA,3418
12
+ invarlock/adapters/__init__.py,sha256=wZBhjYAnD7a0ZV36EDwje6D0FGG45CIfJ41WYqUPGg0,3296
13
13
  invarlock/adapters/_capabilities.py,sha256=FmzUR5BHsxWe92Z9W1As-G5_5wG1PvqF2sUpjZ2_CdY,1483
14
- invarlock/adapters/auto.py,sha256=4F3I63PRW604v_NtaTY7aGvUJVjGSjejVKFff-X_1t4,7693
14
+ invarlock/adapters/auto.py,sha256=L4fnAi3Ahx_sznVFY9zqBSXqPKa1aAK055KwVBnh_Wc,7589
15
15
  invarlock/adapters/base.py,sha256=szSh1bECeDSDGQSr5oIWhs5RlI587gE4gzdt5cnOJ1s,16100
16
16
  invarlock/adapters/base_types.py,sha256=3IuHt63_RjGZqoTOdkMpfGPiZTGqcvXXDq1KU-8QemQ,1612
17
- invarlock/adapters/capabilities.py,sha256=oAK_zgCzAFmss8qAU2zgc8kcahtadGtbPTYR7StXiCo,15360
18
- invarlock/adapters/hf_bert.py,sha256=KTEk2HRSPlH57bfdVjV6imn_-aYqXAlbnWfEFlRm8h4,35555
19
- invarlock/adapters/hf_gpt2.py,sha256=TBn1cd_yZDSyVF5aJ-YNEwZzbVYI-m1c8U0CJl_74CM,14808
20
- invarlock/adapters/hf_llama.py,sha256=P3T7m9j61EmHtzzhemIfM2I2e5nbl4RwXSdoaVsueGc,19141
17
+ invarlock/adapters/capabilities.py,sha256=wcSUkWm0_bVMHo3CEhGxplldG8M5nrB3Uhij8cwutzY,15373
18
+ invarlock/adapters/hf_causal.py,sha256=N9-L-Px4dzjAP4EsnJI_od1GMBqDVJ5JReyV4MyNtjs,15139
19
+ invarlock/adapters/hf_causal_onnx.py,sha256=eMqLPs0aIb7v4KjY0krdgfImVRTPht1D_k9LCulXw6w,4451
21
20
  invarlock/adapters/hf_loading.py,sha256=6hdSFRz_JMtBzQfHcwvyDlIVP2y-KwLwhDorg73DZ6c,2742
22
- invarlock/adapters/hf_mixin.py,sha256=3YGoamAG6OCubsbJ9S583yYiQEy2fZOsBJeBiLZTEbk,22307
23
- invarlock/adapters/hf_onnx.py,sha256=kEqgQEEdGUeaXDF0EgaMHOQQMhc1xIvur0bQvdky-AY,4446
24
- invarlock/adapters/hf_t5.py,sha256=sqHmi8io7oKlr7GrAk8tGo72zb-hmHGmXplCQSZgrA8,4774
21
+ invarlock/adapters/hf_mixin.py,sha256=95LbHHXUbkH22P3Iqf7nQxd1vmd0sumEZ9CEyKWZsiI,23101
22
+ invarlock/adapters/hf_mlm.py,sha256=iCyiy-0aYO43d2eTM8brKeJGBhZsMkjhzGhj580oh4s,35221
23
+ invarlock/adapters/hf_seq2seq.py,sha256=_5jmTB0sMpXs5N1_rNJ7vpntkpj4k68Ca7tM-Iy8HPw,4796
25
24
  invarlock/adapters/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
26
25
  invarlock/assurance/__init__.py,sha256=SFDT2klaUaKZejulL5cfBTW29ehJxyW5srE-LuqP7z0,1388
27
26
  invarlock/calibration/__init__.py,sha256=M5lbkNQtLBuQjQJGeRzHovkpYI87fEWIm7a0b23jSp4,110
28
- invarlock/calibration/spectral_null.py,sha256=968168sQDgtZ2tATx7JkEtwtWw0Y7RFSk7OyQxwXBsE,9419
29
- invarlock/calibration/variance_ve.py,sha256=sdO-a9FUSDSvOI9T8qXAanw4GWOV7RZ_vv53N5ilEg4,4549
27
+ invarlock/calibration/spectral_null.py,sha256=2WQU7YgnnJ2i3OF60Zj4miaWBvWBXQmztukQtIWhvro,9601
28
+ invarlock/calibration/variance_ve.py,sha256=QkHO2vxht-n56LNqWbHYYY106Ge5PbxzHfGV1QktnN8,4487
30
29
  invarlock/cli/__init__.py,sha256=mRjYDVmNykhxJxfQBxJMzhFfmNhmvP6OWI-vJL-ehUA,196
31
30
  invarlock/cli/__main__.py,sha256=spgMrx0eJQSEf4rcd0_mB2B8rHOc3iWlTFO3P_qEvoM,175
32
31
  invarlock/cli/_evidence.py,sha256=38QMfFlPUT_qIRAZmpDROkwSIpHGiNKRWDyXfZ9xI_U,769
33
32
  invarlock/cli/_json.py,sha256=AKrRNFza76tH3GBVHO8gSA3klUVQ9XpDo_aYh8l-7j8,2367
34
- invarlock/cli/adapter_auto.py,sha256=Qwh4hJXm_vGexCXPt3iP70rQPC7ozwlEzSTYay0svQ8,5284
35
- invarlock/cli/app.py,sha256=iWO4tTwglZTH2CGEW_SXIQ95MyFTw6NYxlBujhpZQRg,9179
36
- invarlock/cli/config.py,sha256=d9uar3l9VuqeF_AMtan85V71Vc2L6HVjwLwE6SM2e0M,13464
33
+ invarlock/cli/adapter_auto.py,sha256=macGPMlQkc9TftMzYzK33VvlIevSXrrF_gC5nUAVbjU,5634
34
+ invarlock/cli/app.py,sha256=HTzF1YrXJm6_E8GmHxAA5KyBQ4bCmEi8BPIM7hZyO48,11786
35
+ invarlock/cli/config.py,sha256=DNCsepPCY_l0JTPUqI9QRa-cLIl8n4H2xzolXjtL7q8,14205
37
36
  invarlock/cli/constants.py,sha256=RuXxG82pukfBnEuJB2CVF5dyu4lEi-l8eAxkR314yuk,2107
38
37
  invarlock/cli/determinism.py,sha256=ux3AODjZbSdYE29uSrHXvY2qrEPxeAJd04QLT52lnec,8346
39
38
  invarlock/cli/device.py,sha256=5X0j2yiZbSKX9-SlDaAbSeHCoWhfEQ74YWPTb8WRk8k,3165
40
- invarlock/cli/doctor_helpers.py,sha256=e3A6rWYAcs1Q1WVFWt3OOGgqd5iMsKASD34TzI98wqA,2542
39
+ invarlock/cli/doctor_helpers.py,sha256=3QkE4P6lrb2YQA-OC5m6K6CQEoe7PSRiSuQDYEvmRsY,2503
41
40
  invarlock/cli/errors.py,sha256=IzFikxe5gthlZ27wrRYUiM_SJsd2Sa5onUUhjm8e2kA,189
41
+ invarlock/cli/output.py,sha256=lNEQ189iyV-EEsdTY4rmFcKKjq0lJuIP-gzsEIFL7BA,4883
42
42
  invarlock/cli/overhead_utils.py,sha256=Ygvl192UDTroAbVAd7v35jgigmmfVxNkCIGYlWfh6Co,2124
43
- invarlock/cli/provenance.py,sha256=2E_8MxpSVEcxe5UewTb5Hlz6x4jXFwGd1567F4nIbEc,1939
43
+ invarlock/cli/provenance.py,sha256=P3Rg_IEFYqNcECiPd-aO0rgp8ZDfqAy5n5N_bPGg1C4,1946
44
44
  invarlock/cli/utils.py,sha256=R6IN21lGfko2lGUgspmkZyjA6Nl_dVRaP8F8nRtN5yw,1393
45
45
  invarlock/cli/commands/__init__.py,sha256=afpKpU8hJI41Ol46oXxVwQgPwFBy4OmLaa_v4AAOdts,712
46
- invarlock/cli/commands/calibrate.py,sha256=b_75wIuHuhQ-frVcKkSuA8W5AMN3acc63k6q9tZvNEE,20780
47
- invarlock/cli/commands/certify.py,sha256=J-8xifbkIjXP37z6vD9l2oELS60JfYoHebIIdMWxeUM,14888
48
- invarlock/cli/commands/doctor.py,sha256=cz4uH8v77M74YhwlWEMgnmEpmqbsV5CN5-zkuDIBLS8,56897
49
- invarlock/cli/commands/explain_gates.py,sha256=CajKcu6rNi57yBsM_EUhi8rlmTl-ymT1kUaznXzALSE,7624
46
+ invarlock/cli/commands/calibrate.py,sha256=TnoYKjvmz2pSj3Wak8HluSV27hN2D8O1dGAQWCcHeeE,20830
47
+ invarlock/cli/commands/certify.py,sha256=ET56hmCkn61XpZ3hrHIrS4CG6dmjDvlkSEzgSxm8YdA,35625
48
+ invarlock/cli/commands/doctor.py,sha256=F-q5CJ2qRgCDqbaZYBRApPUy7V6E_jkgSCqZgkxlOqA,56879
49
+ invarlock/cli/commands/explain_gates.py,sha256=7cnc_FBxvSkjmM12JOA2yfhY4JH1puDDaIHo3r6IC9M,9444
50
50
  invarlock/cli/commands/export_html.py,sha256=oUGtt6EpKhjlywdtz_0FqYqcmA219H4eSjPuSMDShgY,3095
51
- invarlock/cli/commands/plugins.py,sha256=u5E6ThcWE5RUs2YKH-m6x7n-5K1jt2IudkF9kl9T5xg,53486
52
- invarlock/cli/commands/report.py,sha256=I-B11k6cLLNUIaNiKlsWrGgZ2cTQQJsarN3oNf9Dt84,12988
53
- invarlock/cli/commands/run.py,sha256=nf9Y_BcgxQyaCjwQmGUt8ZojDXBDPSeEk4Ut4_uRggM,200772
54
- invarlock/cli/commands/verify.py,sha256=WAgIzV_CAZSkzRJIxVFV5llZAL3n3-biTMXLm6YL_qs,46408
51
+ invarlock/cli/commands/plugins.py,sha256=VTJKTMjFO4Dh4dqcY4qlkwhsWJixyHSNk8tWBcYGyfA,53620
52
+ invarlock/cli/commands/report.py,sha256=91hfdk3Vr4ckMyl0ZgV_b9opE_5_G_dYg2F5BLIh_Mo,18292
53
+ invarlock/cli/commands/run.py,sha256=rk7DfXcVp7AncGpkPvkYjT7t1whHknRzEnVpIe6jesc,228633
54
+ invarlock/cli/commands/verify.py,sha256=Gm4dgATdyo5HRsuAwH-7hZpPt1a0wxXnAJkGpZ8w6xE,51801
55
55
  invarlock/core/__init__.py,sha256=4wb83Xv7NE5M1FgvaFUviiNtVSTVATiPH3gqavNmp2w,1490
56
56
  invarlock/core/abi.py,sha256=gmU1F7LDd2HTcF4kcznn8vgG4zj9UCHSqhBk9jyu05k,484
57
- invarlock/core/api.py,sha256=dg76wZaULo-T-_nZtq6rmDtWwSNLCSYXiQKVYySV6Fg,7545
58
- invarlock/core/auto_tuning.py,sha256=ulk_bLAokQJFHgttj5x9QmkwSx7IPVhX2J1GBPWS6PA,17383
59
- invarlock/core/bootstrap.py,sha256=0mA_x1Ipz4eTwJqoz4-F4H0O2AqvlmQGA9BVJpTNqXs,10655
57
+ invarlock/core/api.py,sha256=RTFswFBuUH38gary5X7qmccOD7vAYLtSN0ie8Y6p1ck,8480
58
+ invarlock/core/auto_tuning.py,sha256=Gj0AhpThoDYnzr9DyuXM9iCuieMKR4xv43tC7ZcjHzs,18543
59
+ invarlock/core/bootstrap.py,sha256=buamO9CNkfmPaK8zFy_GtQD9VnFiBiwxaTGQvEo3neA,10659
60
60
  invarlock/core/checkpoint.py,sha256=a78L-mZd3j2kC1az2eTScRxTHjrULuYs-UPfWUcDgqM,6933
61
- invarlock/core/contracts.py,sha256=9j55WVwMrEsUqxWlzAdMsHtkzgfkSftdizhcLiJBauw,2165
61
+ invarlock/core/contracts.py,sha256=ESK3-ErieGEf8e84wiphlCjahdr87zoKyTSskq6o23E,2468
62
62
  invarlock/core/error_utils.py,sha256=T23-p5ONQ-SeVuMR4Ts0cWyupsSa-0DAgsejRTfxeCg,1782
63
63
  invarlock/core/events.py,sha256=8XBAi-9A7ys7QJQwqlz8PVlfxF0TM_TvLqjcPtDwZm4,9428
64
64
  invarlock/core/exceptions.py,sha256=b4OszJ0Fd0Ezy8s99AzprS7lAkqdZYGXaSj9fYaln4E,2077
65
- invarlock/core/registry.py,sha256=a5hYHXl74MLnaPFbmpwJ-1OsJgY3SSe2Jisbzfr2rLM,19137
65
+ invarlock/core/registry.py,sha256=hQrAqVEyDOCF88KHn80a5oMMS73_i4KTjL3Wwo08YkI,18910
66
66
  invarlock/core/retry.py,sha256=KTVkrTnWs60jwATOZDHinERH56GnOGjsKR0lmohagEo,4503
67
- invarlock/core/runner.py,sha256=Tep0CDT75PbE8bpGapR8J00-MXZ-T0JB4C6tsqOMs68,93567
67
+ invarlock/core/runner.py,sha256=lftQst05FASXuRIIkqrmOX4Sn9DezY3Aws6Cnh3A8OY,107570
68
68
  invarlock/core/types.py,sha256=nVLMP4yqlxwhE1moQU7FWVeGJqTuud-cvTZiutdBGKk,3585
69
69
  invarlock/edits/__init__.py,sha256=5CJTX6oJTLj79Vmks2_8mXRGFQH0oyKaZOrBLTlRtV0,277
70
70
  invarlock/edits/_edit_utils.py,sha256=VGl32JAt7XsovxJbX1YvW9DJvtG-K2EKu-TjBFTQmDY,6329
71
71
  invarlock/edits/_external_utils.py,sha256=Ltaua-eNooDagPSb20wxK-QXXpHjFJaymbDIjI3ZoWY,7625
72
72
  invarlock/edits/noop.py,sha256=I9ICb9m4RLK7BllERlydujQciHQm9Hj8gbqKz5_rCTg,1304
73
73
  invarlock/edits/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
74
- invarlock/edits/quant_rtn.py,sha256=8rseGbF_-EFuL8MWCuzgGXYfzp9LsONhV72-OK56mlk,30684
74
+ invarlock/edits/quant_rtn.py,sha256=b6GQe-KDe_Tpr4904naLYn4_dmG9lR5LwwjTaqbX7Dc,31651
75
75
  invarlock/edits/registry.py,sha256=MmUfJhhvc3WxB03wQkPxFMS6nkT7YcXFPQqhbksfOUc,4523
76
76
  invarlock/eval/__init__.py,sha256=GsKoszCysh3TT_UHiuJcqeoiXT7AUNZoqMuBmefnWtY,755
77
- invarlock/eval/bench.py,sha256=85tGywzAeJSVlZ1Qsebk8FwIGUYhq9g6TxOW5XnL5X8,56335
77
+ invarlock/eval/bench.py,sha256=jVBQcbEV7tEiyaYv6nJnvL5KCuHD3LOb5qXYbfvyWgs,55931
78
78
  invarlock/eval/bench_regression.py,sha256=GDphmdcH7NI8P_afSkQAPMChEgW15J0gqTZ4Kj3kxgw,456
79
79
  invarlock/eval/bootstrap.py,sha256=CNn7W_MY716Wa_wn6cYRmbTYB9lT2X0yLOAIHCRw29k,1766
80
- invarlock/eval/data.py,sha256=s05y3QNi2vO6X3DVg7RQCMxZE47FPfRI1XdY1ZnHn1o,67205
81
- invarlock/eval/metrics.py,sha256=fcXnJ3Bx5A4mqaxf8cgfBOsBbZ1hQ_VzzzRlB9pjpCs,78908
82
- invarlock/eval/primary_metric.py,sha256=ay8gB7xGjWahXpJP-o4OcZFNRNZKcUIHjKmSeOUWJNk,28701
80
+ invarlock/eval/data.py,sha256=WcnH9nMaEpWqsGLnVfSFIps1a_16aVw0qtpQtm0-G2c,68326
81
+ invarlock/eval/metrics.py,sha256=PHfsIZQpCDesj7oL_vAIDdB3nH-10qVRl6kvfRU8-u4,80789
82
+ invarlock/eval/primary_metric.py,sha256=lGDWiXM1cyXqGH6XprLrxBl1hTwjrlSYbQCzF687zsA,29545
83
83
  invarlock/eval/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
84
+ invarlock/eval/tail_stats.py,sha256=ueScFzPvBnBC4jVW5EElnB0c3LPK3cAITcOUdyPCsEk,7114
84
85
  invarlock/eval/probes/__init__.py,sha256=KocOJmEWrD90c2HbDW3wDsdsibRyidskpI4rNNfLbZ0,593
85
86
  invarlock/eval/probes/fft.py,sha256=iuZauzOaNPbXN4t74vMiNQAjg6ZmwPNPUuUBj4L1ick,4106
86
87
  invarlock/eval/probes/mi.py,sha256=ew33dkc1tymDVek718m7ZU--BAFa1L35PZA2POwKx0g,7258
@@ -89,25 +90,30 @@ invarlock/eval/providers/base.py,sha256=27Cn7-TRtVRPrSHt7qBBqtLMnMEslO88zHiEsxQz
89
90
  invarlock/eval/providers/seq2seq.py,sha256=lYxI6d1-YCyxjGyHVLi2ZbFFwxJVVUewH9luFBoDehM,3711
90
91
  invarlock/eval/providers/text_lm.py,sha256=EpQWjQEkxSMhTiABsJzZqfYsgSYeMmUW-ZgePmdyj7U,4149
91
92
  invarlock/eval/providers/vision_text.py,sha256=pqhPHwvYEnyKupchIy-g-jM_oWeYNXRHb23_Qm4v2hU,3180
93
+ invarlock/eval/tasks/__init__.py,sha256=Z5CG7jwVNTMnQ0OZEzqsbYZzQkmPm3lHt2k2V8f2e6U,327
94
+ invarlock/eval/tasks/classification.py,sha256=s1v649MlKn2u1z1q8rvor5yMg3AvORFxoKoAXEDp088,1398
95
+ invarlock/eval/tasks/qa.py,sha256=D4nnj2A_6Tsmi5mz3x2bN9j88eCB-ajE4h7x-obNf-0,1134
96
+ invarlock/eval/tasks/text_generation.py,sha256=gefCcwqpsIoz3Sq6V6XDEZvChR1K2Hn4pHfzFDo7CMk,3355
92
97
  invarlock/guards/__init__.py,sha256=Kj7Jwb4qLyaY0ATRku34T628vom3QMjTiVrlpfJAWw8,443
93
98
  invarlock/guards/_contracts.py,sha256=WPhg3iWpHGkKfPvlPPQ-umzOakpy3s289DKkYQ0e64I,263
94
- invarlock/guards/invariants.py,sha256=2mD5WSJMCksjO-DodAac5pvZN0nl29NKHhqwqH_gyCQ,22379
95
- invarlock/guards/policies.py,sha256=sbZkddUSnkx3ZsFm4vV4DfSU81QUh9R8S4vuAtPF11I,25466
99
+ invarlock/guards/_estimators.py,sha256=84nT5eF7uN-zr-RfYF2uOvdHlmE5c8_yvor4IqxvwWk,4642
100
+ invarlock/guards/invariants.py,sha256=pnzjB1_2e0yD7jjySLIm_McDail_HTWpbAsGuYD2I40,22747
101
+ invarlock/guards/policies.py,sha256=ggY0zZ3i39OAeFZJSG1FjwnR3-wjWntKLLvumBvG8pc,25933
96
102
  invarlock/guards/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
97
- invarlock/guards/rmt.py,sha256=U3_JTZKsOIgnH-TdZxKMLL9p_3EbfYJKlIqB1gtvQLw,97928
98
- invarlock/guards/spectral.py,sha256=lmnq4x1-MwoXAK6awaUeb_6xvCya-Tg_zqECDdYvMOA,58618
99
- invarlock/guards/tier_config.py,sha256=_WJIQ4qvIOc8EI1ygBhpBqbZPt072RT6H6Oh9-LqNWY,10706
100
- invarlock/guards/variance.py,sha256=lcTNb_uSufB7D8cLkoY1S_IQWHUjIfCucsu5y8MpfPs,136794
103
+ invarlock/guards/rmt.py,sha256=aRMtRR7LfrjR-ZkeL_AsGb61bbBadYHhQx424WIRFVs,99878
104
+ invarlock/guards/spectral.py,sha256=TP_xmzL0iP3CSQjnkulNbuJegxCrp68MuMPWdLeE0Gg,69597
105
+ invarlock/guards/tier_config.py,sha256=6JzS1TOlhUVX2NdUodWhb4VOA_AnAFVOXvwY9aiopbA,10796
106
+ invarlock/guards/variance.py,sha256=iNursnzCHbc2fd3icZ3cYG-dk4WFYqn6CKxKcKn2MJI,136385
101
107
  invarlock/guards_ref/__init__.py,sha256=jLnyFqdqQaheG1qQMlU4Gx7R118rkkQHPqFVF3_1ih0,366
102
- invarlock/guards_ref/rmt_ref.py,sha256=md-aSzLCxPL3OXmrA5NtI9wK7cVSyd2xw8WtSodcGQY,1246
108
+ invarlock/guards_ref/rmt_ref.py,sha256=IfwN-l9cLExUQJhZmr-1uJv7qRSoYrGg2w2caCG53hs,1399
103
109
  invarlock/guards_ref/spectral_ref.py,sha256=FdwFfrs5hxEEUIfBV3CvAJvTX78gAM00mKLEXyZ0zJo,4386
104
110
  invarlock/guards_ref/variance_ref.py,sha256=BmTQL5nfxReJK5SqnuUi1SOcQftK7IUNwlcxqdtGPEU,2264
105
111
  invarlock/observability/__init__.py,sha256=_fCH1H51M0PYOvpuNq9sVQLTiDAtdQMvtnhVt-z-VPk,345
106
112
  invarlock/observability/alerting.py,sha256=y_mReOy5KHbHhglQIoChzTl-4BZz9aaGDreLGFzhl8M,17887
107
113
  invarlock/observability/core.py,sha256=lMsXCp5HZj3YIdfrkxRYQWpu1ib6pm8TkPab_1aKjHM,19050
108
114
  invarlock/observability/exporters.py,sha256=bNpuN7ulQ3KQSySozJZvNHythMw2ciF54aQzZ9t2hKE,18712
109
- invarlock/observability/health.py,sha256=28jKOb8dPDJVunh8FOBe6FS4rqtp0vP8mGQcotxkIUY,21564
110
- invarlock/observability/metrics.py,sha256=ciYhz7R11rW3FR4BLb-ES2R0k7IaUPCew89k359r-CQ,15476
115
+ invarlock/observability/health.py,sha256=jKVfThhe985oY1koS8EhWm08VQaVhHgRcspkuNrvO9E,21573
116
+ invarlock/observability/metrics.py,sha256=RhEz4B5zvRHAgFHukyZHGhDJDSxR3szYwk7TTFzIZTQ,19016
111
117
  invarlock/observability/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
112
118
  invarlock/observability/utils.py,sha256=1AC3ZEzbrDzTOvSIFxAtWlITy1BHEPZ032HKKzqK_10,16492
113
119
  invarlock/plugins/__init__.py,sha256=aZqkpuTT0K3y0SX4702k3YpHnM3kng9fz0qO3XE43hY,260
@@ -117,24 +123,25 @@ invarlock/plugins/hf_bnb_adapter.py,sha256=g0ysWEi8dQzLtJy8iCszfTsYCOACuZMFYnTLM
117
123
  invarlock/plugins/hf_gptq_adapter.py,sha256=ysugAcnjLqF5sqpijSNiim1xUpRmoIgBrG053X3S2hE,3743
118
124
  invarlock/plugins/py.typed,sha256=LCPmZeE_vANVVJDNvuq9A07i7jg9Nxrq6f10UeuNfZc,37
119
125
  invarlock/reporting/__init__.py,sha256=A0541EqxcdTpslNbZEWIO4q-LCqzCQcadev2IBKEBbM,232
120
- invarlock/reporting/certificate.py,sha256=yoMfALyXYGK6BBHJfsrCFDxb07o-9J0KQqui35RHkhM,146382
121
- invarlock/reporting/certificate_schema.py,sha256=ft58LrF4lfdXT08P0jjtiNvRPVs6TdgPU_cp9K4TMPw,8939
122
- invarlock/reporting/dataset_hashing.py,sha256=b9LM2rtOtD0-1gQq_oJ0yI6oLleempwKinQtLupajwI,8680
123
- invarlock/reporting/guards_analysis.py,sha256=7TTlF-OwgT7wGQ8zZ8oHHPuMdUMvKw7836WvO0J1GUc,42465
124
- invarlock/reporting/html.py,sha256=d3LQ_brDGYW7GLR_Kj4rimIfGZsAgVE9XQtIjqsJ1rw,1029
125
- invarlock/reporting/normalizer.py,sha256=hSfNMyUusWZ1OIJ5lVxzKrk8Le1rRqbwOkPY83gCcHM,8078
126
- invarlock/reporting/policy_utils.py,sha256=Yu0zAtjnf0-w9t03NvH7LJ0lxe98o-E1tD8TpXtzsfo,23080
127
- invarlock/reporting/primary_metric_utils.py,sha256=F9H8xpEIgbYfj6VS5-QA5aNLL5OwPegdQVKwvdoVVMM,12150
128
- invarlock/reporting/render.py,sha256=zukCOm6Qm81nDkpOur50TKrlgRpnt7Q53TEU7eYFivg,59976
129
- invarlock/reporting/report.py,sha256=kyoqTiqtYUQfgpwm6RApV-LbHHIyryfiIPIRhy-z47Q,32293
130
- invarlock/reporting/report_types.py,sha256=IoCLoPdoB71hW6-UatZXSjG7itTn4dKp7jPRndXxugA,8736
126
+ invarlock/reporting/certificate.py,sha256=bE7uCWJ5foZeblq_DgMoQ9wjW_tjEC7XXBvUOAy2fLA,159511
127
+ invarlock/reporting/certificate_schema.py,sha256=wCBjLsWu-y1hqedQYgAmdNeSh7FkcpuGCFHGK46Wlgk,8982
128
+ invarlock/reporting/dataset_hashing.py,sha256=igDq9iMB8sqed5CEWT2fXtx9z5QAxIZ9bbs5RndDDC4,9228
129
+ invarlock/reporting/guards_analysis.py,sha256=Q3DhV806McbV4NVxbD-Lcw334epcQ1-zTEUF3aT8JGc,44356
130
+ invarlock/reporting/html.py,sha256=-vpkk3nE9GEaEtitMVFu5EWNKTQgjPfrnadzgKiSjvc,3297
131
+ invarlock/reporting/normalizer.py,sha256=RIKGtTzMBOLiDvI4-ijssnyAnQN6-c5zpbs41KeBdKI,8468
132
+ invarlock/reporting/policy_utils.py,sha256=540fw6cFvyvYL7avlvId9GUvY9-g6MkeDlcPt18uuE0,22934
133
+ invarlock/reporting/primary_metric_utils.py,sha256=7h6CzMQzu0A8xN10vbRgSNcQ0YTMxsT2JiNEgCVaXyM,14849
134
+ invarlock/reporting/render.py,sha256=PkyzUIJQNI-1X7wghlO_KzrYwYal17qFRA0mcdJsUb4,75137
135
+ invarlock/reporting/report.py,sha256=hVjyqPHJOeM6TWVAttExrhYxeAPTfY3HPFAMlrlkVZE,33780
136
+ invarlock/reporting/report_types.py,sha256=NcA6PkI8JJA-FbPAGT-q_QcDkRcz57ayEKHyFbqe-Rk,9211
137
+ invarlock/reporting/telemetry.py,sha256=1A4ZgsmT7BzaEMiG56OzCwc0dX6MKVh8TPOwyXNGSb8,2705
131
138
  invarlock/reporting/utils.py,sha256=1aLYgSUR4XvgmhDvU9YK9ICd7W5sjft1qdsZC9JJSRY,5540
132
- invarlock/reporting/validate.py,sha256=oh7w8VrLM2EYZSJ2ySDNi7WKKmF1SgS81VkOrcHMzaE,22427
139
+ invarlock/reporting/validate.py,sha256=aFcac5iaaNOLMYEf6g5xoF4-a-J5E430utFLnfu6fKc,21782
133
140
  invarlock/utils/__init__.py,sha256=DR2pBrgddLH2PW-6ninOE8CM7DNvlvgyYsCkckozbPU,4276
134
141
  invarlock/utils/digest.py,sha256=sfnqGFRiRf7l950MjSIrWO1XbUfXlcEfNLeWFbBUr8I,1290
135
- invarlock-0.3.5.dist-info/licenses/LICENSE,sha256=uFddaXYY02nEFdPpS7bam_bnm0st41BibzD0jHULPXw,10413
136
- invarlock-0.3.5.dist-info/METADATA,sha256=1TwqQgCjwbAEaDNuLlAisQ6FnwaJHtatBoMZqM2_NSQ,21845
137
- invarlock-0.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
- invarlock-0.3.5.dist-info/entry_points.txt,sha256=i0e4ZzmJNMBGG-69lbgP-muEcn1je2TUIWwl9SJERm0,670
139
- invarlock-0.3.5.dist-info/top_level.txt,sha256=GXfftc_YDHHcQC2vQgYbZ5cTO82YuWY3HusHMT3DuKs,10
140
- invarlock-0.3.5.dist-info/RECORD,,
142
+ invarlock-0.3.7.dist-info/licenses/LICENSE,sha256=uFddaXYY02nEFdPpS7bam_bnm0st41BibzD0jHULPXw,10413
143
+ invarlock-0.3.7.dist-info/METADATA,sha256=Nl947X_buWTqiOvNfWlEQq_bbkdcUF7vceVgG6lz_9o,23388
144
+ invarlock-0.3.7.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
145
+ invarlock-0.3.7.dist-info/entry_points.txt,sha256=7zdvDjsIPqOGEhfQFn596IrodvkhYrkybFgQ2ywPHYQ,780
146
+ invarlock-0.3.7.dist-info/top_level.txt,sha256=GXfftc_YDHHcQC2vQgYbZ5cTO82YuWY3HusHMT3DuKs,10
147
+ invarlock-0.3.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -2,12 +2,14 @@
2
2
  invarlock = invarlock.cli.app:app
3
3
 
4
4
  [invarlock.adapters]
5
+ hf_auto = invarlock.adapters:HF_Auto_Adapter
5
6
  hf_awq = invarlock.plugins.hf_awq_adapter:HF_AWQ_Adapter
6
- hf_bert = invarlock.adapters:HF_BERT_Adapter
7
7
  hf_bnb = invarlock.plugins.hf_bnb_adapter:HF_BNB_Adapter
8
- hf_gpt2 = invarlock.adapters:HF_GPT2_Adapter
8
+ hf_causal = invarlock.adapters:HF_Causal_Adapter
9
+ hf_causal_onnx = invarlock.adapters:HF_Causal_ONNX_Adapter
9
10
  hf_gptq = invarlock.plugins.hf_gptq_adapter:HF_GPTQ_Adapter
10
- hf_llama = invarlock.adapters:HF_LLaMA_Adapter
11
+ hf_mlm = invarlock.adapters:HF_MLM_Adapter
12
+ hf_seq2seq = invarlock.adapters:HF_Seq2Seq_Adapter
11
13
 
12
14
  [invarlock.edits]
13
15
  quant_rtn = invarlock.edits:RTNQuantEdit