Releases: Veedubin/AttackLM
Release list
AttackLM v0.13.0 — Docs sync with attacklm-dataset audit-bugfixes
AttackLM v0.13.0 — Docs sync with attacklm-dataset audit-bugfixes
Docs-only release. No code change. No PyPI publish (v0.12.3 remains the latest on PyPI).
The upstream attacklm-dataset repo shipped 5 audit-harness bug fixes in v0.4.1 and 2 docs commits in v0.4.2. This AttackLM release is the docs sync — the AttackLM CLI flag set is unchanged; the fixes are in the implementation under the hood.
Changes (docs only)
README.mdaudit table: "MIA reference attack (loss + zlib)" → "MIA reference attack (loss on assistant turn + zlib entropy)" with a one-line explanation of the upstream fix.README.mdtest count badge:368+→504+(was stale from a prior session).README.mdtest count in testing section:18→24test files.README.mdadded "Note on the audit harness" subsection in the Verify block, pointing readers to the attacklm-dataset CHANGELOG and README for the underlying bug details.CHANGELOG.mdnew[Unreleased] — 2026-07-10entry pointing at the upstream fixes.__version__bumped from0.12.3→0.13.0for introspection correctness.
Why no PyPI publish?
v0.13.0 is docs-only. Publishing a docs-only bump to PyPI would force every pip install --upgrade attacklm to download a wheel with the same code as v0.12.3. The PyPI tag will stay at v0.12.3 until the next functional change (probably v0.14.0 with the LiRA training pipeline or a similar feature).
Install
pip install "attacklm[all]==0.12.3" # PyPI stable (unchanged)
# or for the docs sync:
git clone https://github.com/Veedubin/AttackLM.git
cd AttackLM
git checkout v0.13.0
pip install -e ".[all]"Verify
$ python -c "import attacklm; print(attacklm.__version__)"
0.13.0
$ attacklm --help
# shows the same CLI as v0.12.3 (no new flags; docs only)
$ pytest tests/ -q
# 504+ passed (was 368+ before; the discrepancy is the test sweep
# from the prior session that didn't get a version bump)Related
- attacklm-dataset v0.4.1 — the audit-bugfix release
- attacklm-dataset v0.4.2 — the docs sync
v0.9.4
v0.9.3
[0.9.3] — 2026-07-04 — Remove deprecated hyphenated commands, --compile + QLoRA guard
Removed
- Deprecated hyphenated commands: All 22
attacklm-*console scripts removed frompyproject.tomlandcli.pyafter the v0.8.x deprecation window. Useattacklm <subcommand>instead.attacklm-train→attacklm trainattacklm-train-all→attacklm train --allattacklm-train-lora→attacklm trainattacklm-hpo→attacklm train --hpoattacklm-extract→attacklm init --extract-onlyattacklm-buckets→attacklm init --buckets-onlyattacklm-attribute→attacklm init --attribute-onlyattacklm-clone→attacklm init --clone-onlyattacklm-init→attacklm initattacklm-balance→attacklm balanceattacklm-merge→attacklm build --merge-onlyattacklm-gguf→attacklm build --gguf-onlyattacklm-build→attacklm buildattacklm-infer→attacklm inferattacklm-demo→attacklm demoattacklm-eval→attacklm evalattacklm-collect-ref→attacklm eval --collect-refattacklm-score→attacklm eval --scoreattacklm-compare→attacklm eval --compareattacklm-golden→attacklm eval --goldenattacklm-pipeline→attacklm pipeline
- Deprecated wrapper code: Removed
_deprecated()helper,_DEPRECATED_MSGconstant, and all 19main_*wrapper functions fromsrc/attacklm/cli.py
Added
--compile+ QLoRA incompatibility guard:train_template.pynow exits with a clear error if--compileis used with default 4-bit QLoRA (BitsAndBytes NF4). torch.compile is incompatible with quantized models. Users are directed to use--use-galoreor--use-deepspeedfor full-parameter training with compilation.- 5 new tests in
test_memory_optimization.pyverifying the compile+QLoRA guard and compatibility with GaLore, DeepSpeed, and Unsloth
Changed
- All script references updated: 30+ references across 10 script files, 5 extractors, GUI, and pipeline config updated from hyphenated to subcommand form
- Documentation:
CONTRIBUTING.mdandEVALUATION.mdupdated with new command forms
v0.9.2
v0.9.1
v0.9.1 — DeepSpeed CUDA compatibility fix
Fixed
- DeepSpeed CUDA version mismatch: Auto-set
DS_SKIP_CUDA_CHECK=1to handle CUDA minor version mismatch (e.g., 13.3 vs 13.0). CUDA 13.x is ABI-compatible within the major version, so skipping the check is safe. This sets the env var automatically when--use-deepspeedis enabled. - Train-base dependencies: Added
deepspeedandlomo-optimto train-base dependencies.
See also
- Full changelog in CHANGELOG.md
v0.9.0
Memory optimization: DeepSpeed, torch.compile, LOMO
Added
- DeepSpeed ZeRO integration: Train models 3-5x larger than GPU VRAM using system RAM
--use-deepspeedflag with auto-generated ZeRO-3 + CPU offload config--deepspeed-stage {1,2,3}for ZeRO stage selection--deepspeed-configfor custom JSON configs--no-deepspeed-offloadfor GPU-only ZeRO- Pre-built config templates in
presets/deepspeed/(zero3_cpu_offload, zero3_gpu_only, zero2_cpu_offload)
- torch.compile:
--compileflag for 20-40% training speedup and 10-20% memory reduction--compile-mode {default,reduce-overhead,max-autotune}for tuning
- LOMO optimizer:
--use-lomofor full-parameter fine-tuning of 7B models on 8GB GPUs - GUI updated: Hardware tab now exposes DeepSpeed, torch.compile, and LOMO controls
- train_all.py: All new flags forwarded for multi-bucket training
Changed
- Tagline updated: Now lists DeepSpeed alongside QLoRA, GaLore, Q-GaLore, Spectrum, PiSSA
- README: Added DeepSpeed configuration section with hardware reference table, new workflows, and CLI flag documentation
v0.8.5
Comprehensive CLI documentation
Changed
- CLI Reference completely rewritten: Every command now has its own subsection with all flags documented, defaults listed, and practical examples
- Usage section overhauled: Replaced flat list with 4 end-to-end workflows (Quick Start, Maximum Quality, HPO→Deploy, Evolve→Train)
- Training Methods Explained: New table comparing QLoRA, GaLore, Q-GaLore, Spectrum, and PiSSA by VRAM usage and use case
- README grew from 274 to 443 lines with 24 sections and 36 code examples
v0.8.4
Documentation overhaul
Changed
- Tagline updated: Now lists all 5 training methods (QLoRA, GaLore, Q-GaLore, Spectrum, PiSSA) instead of just QLoRA
- GUI section expanded: Added dedicated Terminal GUI section with live monitor screenshot, preset list, and screen-by-screen breakdown
- AttackLM-Models README synced: Updated pair count (16,027 → 24,652), added missing defensive sources, updated all hyphenated commands to unified CLI format
v0.8.3
Training pair evolution
Added
- Training pair evolution: New
scripts/evolve_pairs.pywith 3 strategies to expand short training pairs into longer, richer examples- Evol-Instruct: Rewrites answers with deeper reasoning, edge cases, and detection artifacts (3-5x longer)
- Multi-turn Decomposition: Breaks Q&A into 3-5 turn conversations for better training flow
- Chain-of-Thought Injection: Adds explicit reasoning steps before final answers
- Quality filtering:
scripts/filter_evolved.pyvalidates evolved pairs (structure, length, provenance, dedup) --evolved-ratioflag: Mix evolved pairs into training at configurable ratio intrain_all.pyandtrain_template.pyscripts/evolved_mixer.py: Standalone mixer module for evolved pair integration
Changed
- Agent models upgraded: glm-5.1 → glm-5.2, minimax-m2.7 → minimax-m3, added kimi-k2.7-code
v0.8.1 — Zero-config dataset init
What's new
Zero-config init: attacklm init now downloads a pre-built dataset tarball (~3.8 MB) from GitHub releases by default. No git clone, no extractors, no manual setup.
uv pip install attacklm[all]
attacklm init --yes
attacklm balance
attacklm train -- --dataset data/datasets/balanced/train.jsonl --epochs 10 --trainNew flags
--from-source— build from upstream git repos (old behavior)--dataset-url URL— override download URL for mirrors
Changes
- Removed
gitpythondep, addedtqdmfor progress bars scripts/package_dataset.py— maintainer tool for creating dataset tarballs- 26/26 tests passing (8 new download tests)
Dataset
- 18 sources, 24,652 records, 3.8 MB compressed