Skip to content

Releases: Veedubin/AttackLM

AttackLM v0.13.0 — Docs sync with attacklm-dataset audit-bugfixes

Choose a tag to compare

@Veedubin Veedubin released this 11 Jul 07:00

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.md audit 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.md test count badge: 368+504+ (was stale from a prior session).
  • README.md test count in testing section: 1824 test files.
  • README.md added "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.md new [Unreleased] — 2026-07-10 entry pointing at the upstream fixes.
  • __version__ bumped from 0.12.30.13.0 for 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

v0.9.4

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:16

v0.9.4 — Minor bug fix release

Fixed

  • Test fix: Updated test_cli_main_init_dispatches for removed main_init wrapper

See also

  • Full changelog in CHANGELOG.md

v0.9.3

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:16

[0.9.3] — 2026-07-04 — Remove deprecated hyphenated commands, --compile + QLoRA guard

Removed

  • Deprecated hyphenated commands: All 22 attacklm-* console scripts removed from pyproject.toml and cli.py after the v0.8.x deprecation window. Use attacklm <subcommand> instead.
    • attacklm-trainattacklm train
    • attacklm-train-allattacklm train --all
    • attacklm-train-loraattacklm train
    • attacklm-hpoattacklm train --hpo
    • attacklm-extractattacklm init --extract-only
    • attacklm-bucketsattacklm init --buckets-only
    • attacklm-attributeattacklm init --attribute-only
    • attacklm-cloneattacklm init --clone-only
    • attacklm-initattacklm init
    • attacklm-balanceattacklm balance
    • attacklm-mergeattacklm build --merge-only
    • attacklm-ggufattacklm build --gguf-only
    • attacklm-buildattacklm build
    • attacklm-inferattacklm infer
    • attacklm-demoattacklm demo
    • attacklm-evalattacklm eval
    • attacklm-collect-refattacklm eval --collect-ref
    • attacklm-scoreattacklm eval --score
    • attacklm-compareattacklm eval --compare
    • attacklm-goldenattacklm eval --golden
    • attacklm-pipelineattacklm pipeline
  • Deprecated wrapper code: Removed _deprecated() helper, _DEPRECATED_MSG constant, and all 19 main_* wrapper functions from src/attacklm/cli.py

Added

  • --compile + QLoRA incompatibility guard: train_template.py now exits with a clear error if --compile is used with default 4-bit QLoRA (BitsAndBytes NF4). torch.compile is incompatible with quantized models. Users are directed to use --use-galore or --use-deepspeed for full-parameter training with compilation.
  • 5 new tests in test_memory_optimization.py verifying 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.md and EVALUATION.md updated with new command forms

v0.9.2

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:16

v0.9.2 — Python 3.13 compatibility fix

Fixed

  • Python 3.13 UnboundLocalError: Removed duplicate import os that was causing an unbound local error in Python 3.13.

See also

  • Full changelog in CHANGELOG.md

v0.9.1

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:15

v0.9.1 — DeepSpeed CUDA compatibility fix

Fixed

  • DeepSpeed CUDA version mismatch: Auto-set DS_SKIP_CUDA_CHECK=1 to 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-deepspeed is enabled.
  • Train-base dependencies: Added deepspeed and lomo-optim to train-base dependencies.

See also

  • Full changelog in CHANGELOG.md

v0.9.0

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:15

Memory optimization: DeepSpeed, torch.compile, LOMO

Added

  • DeepSpeed ZeRO integration: Train models 3-5x larger than GPU VRAM using system RAM
    • --use-deepspeed flag with auto-generated ZeRO-3 + CPU offload config
    • --deepspeed-stage {1,2,3} for ZeRO stage selection
    • --deepspeed-config for custom JSON configs
    • --no-deepspeed-offload for GPU-only ZeRO
    • Pre-built config templates in presets/deepspeed/ (zero3_cpu_offload, zero3_gpu_only, zero2_cpu_offload)
  • torch.compile: --compile flag for 20-40% training speedup and 10-20% memory reduction
    • --compile-mode {default,reduce-overhead,max-autotune} for tuning
  • LOMO optimizer: --use-lomo for 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

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:15

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

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:15

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

Choose a tag to compare

@Veedubin Veedubin released this 05 Jul 06:15

Training pair evolution

Added

  • Training pair evolution: New scripts/evolve_pairs.py with 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.py validates evolved pairs (structure, length, provenance, dedup)
  • --evolved-ratio flag: Mix evolved pairs into training at configurable ratio in train_all.py and train_template.py
  • scripts/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

Choose a tag to compare

@Veedubin Veedubin released this 01 Jul 01:09

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 --train

New flags

  • --from-source — build from upstream git repos (old behavior)
  • --dataset-url URL — override download URL for mirrors

Changes

  • Removed gitpython dep, added tqdm for 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