Commit Graph
48 Commits
Author SHA1 Message Date
Joseph Magly c74538a2be test: harden checkpoint transaction reliability 2026-08-16 00:28:15 -04:00
Joseph Magly 41cb341405 test: close runtime decision mutation gaps 2026-08-15 22:03:22 -04:00
Joseph Magly 10685a53c2 test: enforce loader and weight decision contracts 2026-08-15 22:03:22 -04:00
Joseph Magly 51529ad1d7 test: add Gate 3 numerical oracle contracts 2026-08-15 20:09:21 -04:00
Rachitt Shah 6c21ee243d Add a POSIX sysconf fallback for local RAM detection
Retain the unsuperseded macOS RAM-detection contribution from PR #13 while making every optional probe fail closed. The shared MPS device, loader, cache, and dtype work is already present on current main and is intentionally not duplicated.
2026-08-15 03:31:17 -04:00
Roxue88 f82518ea13 Make local console and runtime paths portable
Salvage the still-relevant functional work from PR #48: add non-UTF-8 console fallbacks, use platform temporary directories, make pipeline log output encoding-safe, and defer heavyweight analysis imports. The obsolete contributed CI workflow and already-corrected remote URL are intentionally excluded.
2026-08-15 03:13:27 -04:00
Joseph Magly c642cb3297 test: harden GPU memory utilization contract 2026-08-15 02:47:28 -04:00
Aaron Meese 67d9ef79d9 feat: add --gpu-memory-utilization CLI flag
Add a --gpu-memory-utilization flag (0.0-1.0, default 0.85) that controls
the fraction of GPU VRAM available for model loading. Plumbed from CLI
through AbliterationPipeline to load_model's max_memory calculation.

Useful on dedicated GPU setups where the default 15% reserve is wasteful
and causes unnecessary CPU offloading on models that would otherwise fit.
2026-08-15 02:47:28 -04:00
Joseph Magly 37d008d462 test: establish Gate 1 quality baseline (#90)
Establishes the mandatory testing, coverage, repeatability, mutation, packaging, supply-chain, and AIWG workspace baseline before feature integration.
2026-08-15 01:07:47 -04:00
Joseph Magly 62a480fd6a Harden remote execution contracts and tests 2026-08-15 00:13:26 -04:00
Joseph Magly 1240bf2adb test: enforce transactional persistence contracts 2026-08-14 23:32:30 -04:00
Joseph Magly 2c5dc5442c test: enforce runtime boundary contracts 2026-08-14 22:50:37 -04:00
Joseph Magly c14efe8aca test: enforce whitened direction contracts 2026-08-14 22:09:25 -04:00
Joseph Magly 340173e203 test: harden quantized model loading 2026-08-14 20:31:50 -04:00
Jpatching e922126405 fix: enable 4-bit quantized models on single 16GB GPUs
Four bugs prevented bitsandbytes 4-bit quantized models from completing
ablation studies on GPUs with 16GB VRAM:

1. runner.py: quantization parameter was never passed from StudyConfig
   to load_model(), so the loader had no idea quantization was enabled.

2. loader.py (max_memory): GPU memory budget was calculated against the
   unquantized model size, causing accelerate to offload layers to meta
   device even though the quantized model fits comfortably.
   Now divides estimate by 4 (4-bit) or 2 (8-bit) before deciding.

3. evaluator.py: empty strings in wikitext dataset caused zero-length
   tensors that crashed the forward pass with a reshape error.
   Now filters empty/whitespace-only texts and skips empty batches.

4. loader.py (snapshot/restore): snapshot skip decision used unquantized
   size estimate, and restore used strict=True which rejects bitsandbytes
   metadata keys (.absmax, .quant_map, .quant_state). Now uses quantized
   estimate and strict=False.

Tested on RTX 5060 Ti (16GB) with Qwen2.5-Coder-7B-Instruct in 4-bit.
Quick Scan (layer_removal + ffn_ablation) completes all 56 specs.
2026-08-14 20:31:50 -04:00
Joseph Magly 18c910b529 test: validate refusal token limits 2026-08-14 20:03:46 -04:00
Tokard 44473e5919 add configured max tokens for refusal test generation. Exposes --refusal-max-tokens via CLI and the abliterator constructor (default to 128, not changed). Better for resoning models like qwen3. :> 2026-08-14 20:03:46 -04:00
Joseph Magly 78caa5eab2 test: cover causal evaluation edge cases 2026-08-14 19:03:36 -04:00
Agentirish bf8688e13e Fix causal LM evaluation and report output creation 2026-08-14 19:03:36 -04:00
Aaron Meese 48a3000471 feat: support for Qwen3.5-35B-A3B 2026-08-14 18:47:25 -04:00
Joseph Magly c1a1275291 ci: add conditional environment test gates 2026-08-14 14:29:14 -04:00
Joseph Magly d54d2dbc90 ci: support quality dependencies across Python matrix 2026-08-14 14:08:23 -04:00
Joseph Magly 951700a285 test: add quality-depth gates and mature CPU coverage 2026-08-14 14:08:23 -04:00
Joseph Magly b80c1a1694 test: enforce research integrity contracts 2026-08-14 13:38:14 -04:00
Joseph Magly 8bbb5f2926 test: add offline integration baseline 2026-08-14 13:15:32 -04:00
Joseph Magly 6add02edd0 test: enforce model and CLI boundary contracts 2026-08-14 12:51:09 -04:00
Aaron Meese e1a0fe59f0 fix: REBIRTH save crash for CPU-offloaded models
Replace the manual safetensors/dat file materialization in
_gather_state_dict with accelerate's get_state_dict_offloaded_model().
The old code only handled disk-offloaded weights but failed for the 398
CPU-offloaded meta tensors managed by accelerate's AlignDevicesHook.

Pre-move all GPU tensors to CPU before materialization to prevent CUDA
OOM when align_module_device restores non-hooked params to CUDA during
its __exit__ cleanup.

Update test to verify the safety net catches unmaterialized meta tensors
after the accelerate path (the old test checked for a missing offload
directory, which this codepath no longer uses).
2026-08-14 10:22:48 -04:00
Joseph Magly 13b13ef973 Make spectral certification sample-aware 2026-08-14 10:17:48 -04:00
Joseph Magly 67e2b7d95a Preserve assistant phrasing in refusal metrics 2026-08-14 10:11:56 -04:00
Joseph Magly 548092d5ca ci: establish green validation baseline (#59) 2026-08-14 09:55:49 -04:00
Rached Rayeh 2295ef3571 feat(cli): add aggregate output format options for docs parity
The README/CONTRIBUTING examples used `obliteratus aggregate --format ...` but the CLI only accepted `--dir`.
This adds `--format {summary,latex}`, `--metric`, and `--min-runs` to the aggregate command, reuses community LaTeX table generation, and adds CLI parsing tests to align behavior with documented usage.
2026-08-13 22:28:29 -04:00
faberandClaude Opus 4.6 04b8ec60cb Add ASPA framework, AutoObliterator, Watchtower, expanded eval corpus
New core modules:
- auto_obliterate.py: Automated multi-iteration obliteration pipeline
- watchtower.py: HF Hub model discovery and tracking
- ui_watchtower.py: Gradio tabs for Watchtower (ready for app.py wiring)
- hard_negative.py: Residue mining from refusal audits
- model_profile.py: Parameter profiling from safetensors/config
- bestiary_sync.py: Sync models from PlinyOS BESTIARY registry
- models_client.py: Lightweight HF model list client

Framework enhancements:
- abliterate.py: ASPA source-tethering, step gradient blending, hard-negative residue support
- cli.py: self-improve command, model profiling, hard-negative flags
- prompts.py: Expanded 842-prompt refusal eval corpus across 10 categories
- __init__.py: New exports (Watchtower, AutoObliterator)

Reference implementations (14 scripts):
- ASPA sweep, gradient search, coherence eval, MMLU benchmarks
- Pareto controller, refusal sniper, stock comparisons

Documentation:
- README: Research framing, responsible use section, comprehensive disclaimer
- docs/beyond_sota_roadmap.md, docs/recursive_self_improvement.md

Tests: 4 new test files (354 lines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-09 03:54:38 -04:00
Stella Biderman 501ff0c963 Add gpu-calc command and document precision/quantization options
New `obliteratus gpu-calc` subcommand estimates minimum GPU count from
model params, dtype, and GPU VRAM. Auto-detects param counts from HF
configs including MoE expert structure.

README now covers --dtype, --quantization flags, the gpu-calc command,
and references both in the "Choosing the right setup" table.
2026-03-17 14:01:18 -04:00
Stella Biderman 51f621d0a2 Save model snapshot to CPU to avoid OOM on multi-GPU setups
The snapshot() deepcopy was cloning tensors on their original GPU
devices, doubling VRAM usage. For a 234GB model sharded across 6
A100-80GB GPUs (~39GB each), this left no room for the copy.

Now snapshot stores tensors on CPU and restore() moves them back
to each parameter's current device.
2026-03-13 17:13:50 -04:00
Stella Biderman a2bb748f1b Revert "Add data parallel support for PROBE stage"
This reverts commit 1a6e2577bb.
2026-03-13 16:54:31 -04:00
Stella Biderman 1a6e2577bb Add data parallel support for PROBE stage
When --data-parallel is passed and the model fits on a single GPU,
wraps it with nn.DataParallel to split prompt batches across all
available GPUs during activation collection. Batch size scales by
GPU count. Hooks already move activations to CPU so they work
correctly across replicas.
2026-03-13 01:24:31 -04:00
Stella Biderman a634950abd Update remote install URL to StellaAthena fork 2026-03-13 01:02:18 -04:00
Stella Biderman b23d989824 Add __main__.py and fix remote pip install command 2026-03-12 12:56:03 -04:00
Stella Biderman cbdb772eb9 Add multi-GPU support with --gpus flag
Adds --gpus flag to obliterate, run, and tourney commands for controlling
which GPUs to use (sets CUDA_VISIBLE_DEVICES). Works both locally and with
--remote. Models are automatically split across selected GPUs via
accelerate's device_map="auto". Also adds gpus field to remote YAML config.
2026-03-12 12:35:29 -04:00
Stella Biderman 34032b7821 Add remote SSH execution support for GPU nodes
Adds --remote [user@]host flag to obliterate, run, and tourney commands,
enabling execution on remote GPU nodes via SSH. Also supports a remote:
section in YAML configs. The remote runner handles SSH connectivity checks,
GPU detection, auto-installation of obliteratus, log streaming, and result
syncing back to the local machine via scp.
2026-03-11 15:51:16 -04:00
pliny 526cfb8943 Add files via upload 2026-03-08 13:02:53 -07:00
pliny 69fa63ac43 Add files via upload 2026-03-08 12:07:56 -07:00
pliny 1065809658 Add files via upload 2026-03-07 17:54:38 -08:00
pliny ece134f870 Add files via upload 2026-03-07 17:53:42 -08:00
pliny 984ce14059 Add files via upload 2026-03-05 10:03:46 -08:00
pliny 66ea4a6f86 Add files via upload 2026-03-05 00:50:44 -08:00
pliny 8312bbfa8d Add files via upload 2026-03-04 13:09:57 -08:00
pliny 0f6114fe87 Add files via upload 2026-03-04 12:38:18 -08:00