9 Commits

Author SHA1 Message Date
Alexander Panfilov 238c702b06 Default filter_ascii to False to match legacy benchmark behavior (#3)
Pre-2026-03-20 the token filter defaulted to off (filter_ids=False, no
forbidden tokens). The subsequent split into filter_ascii/filter_special/
filter_retok introduced filter_ascii=True as the new default, silently
narrowing the optimization vocabulary by ~50% for Qwen and invalidating
comparisons against historical numbers (verified on claude_v63: avg loss
0.98 with filter vs 0.49 without, with ~12/20 samples matching bit-exact
to the legacy hmcGCG numbers once the filter is disabled). Revert default
to False so fresh runs reproduce the earlier leaderboard out of the box;
presets that want ASCII filtering can still opt in explicitly.

Assisted-by: Claude <noreply@anthropic.com>
2026-04-10 11:53:34 +01:00
Alexander Panfilov 8221f0afb8 Add leaderboard generation script (#2)
Add `claudini.leaderboard` module that scans benchmark result files and generates per-track, per model leaderboard JSONs ranking methods by average loss. Output: results/loss_leaderboard/<preset>/<model_tag>.json

Also: rename _build_input_spec -> build_input_spec in run_bench.py.

Assisted-by: Claude <noreply@anthropic.com>
Co-authored-by: Alexander Panfilov <apanfilov@g003.internal.cluster.is.localnet>
Co-authored-by: Peter Romov <peter@romov.com>
v0.1
2026-04-06 16:55:32 +01:00
Peter Romov 59106bdf3c SecAlign-70B support: configs, quantization, multi-GPU (#1)
- **PEFT adapter merging.** `model_loader.py` auto-detects PEFT adapters (e.g. `facebook/Meta-SecAlign-8B`), merges on CPU in bf16, and caches the merged model to disk. No config flags needed.

- **Configurable quantization.** `quantization:` field in YAML or `--quantization` on CLI, accepting `nf4`, `fp4`, or `int8`. Replaces the old `load_in_4bit` boolean.

- **Multi-GPU sharding.** `device_map:` in configs or `--device-map` on CLI. Config value is now correctly read from YAML presets (was previously ignored).

- **CLI overrides.** New `--model`, `--device-map`, `--quantization` flags to override preset values from the command line.

- **SecAlign injection presets.** Configs for prompt injection on Meta-SecAlign-8B and 70B (default + Optuna-tuned), using new `AlpacaInjectionSource` — generates 3-role prompts from AlpacaFarm data with trusted/untrusted separation.

- **Fixes.** `BenchmarkRunner.summarize()` crash when all runs are skipped. System prompt suppression now works correctly (`""` suppresses model defaults, `None` omits the turn).

Co-authored-by: Peter Romov <peter@romov.com>
Co-authored-by: Alexander Panfilov <39771221+kotekjedi@users.noreply.github.com>
2026-04-06 13:36:08 +00:00
Peter Romov 48eb0f155c Replace teaser with Pareto front evolution plot
Assisted-by: Claude <noreply@anthropic.com>
2026-03-27 00:20:39 +00:00
Peter Romov 99e80657a5 Remove empty claude_demo method directory
Assisted-by: Claude <noreply@anthropic.com>
2026-03-26 17:37:18 +00:00
Peter Romov 69c04a2b9e Add autoresearch skill, update configs and README
Add .claude/skills/claudini/SKILL.md to drive the autoresearch loop
via /claudini slash command. Update CLAUDE.md with skill docs. Replace
PROMPT.txt with the skill-based workflow. Rewrite README to feature
the autoresearch loop prominently. Add easy_1e16 and easy_1e17 preset
configs and update safeguard configs.

Assisted-by: Claude <noreply@anthropic.com>
2026-03-26 17:19:04 +00:00
Peter Romov 4c938fd325 Update arxiv link and citation (arXiv:2603.24511)
Assisted-by: Claude <noreply@anthropic.com>
2026-03-26 10:05:29 +00:00
Peter Romov 63974ddfee Add unrolled methods (claude_oss_v53, claude_v63) with README
Rename claude_v53 to claude_oss_v53 to match safeguard track naming
convention. Add README documenting what unrolled methods are and how
to create them.
2026-03-25 18:27:52 +00:00
Peter Romov 5b6058b3c4 Initial commit
Co-Authored-By: Alexander Panfilov <sasha_pusha@mail.de>
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-25 02:09:26 +00:00