soup-cli 0.71.7__tar.gz → 0.71.8__tar.gz
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.
- {soup_cli-0.71.7 → soup_cli-0.71.8}/CHANGELOG.md +46 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/CONTRIBUTING.md +1 -1
- {soup_cli-0.71.7 → soup_cli-0.71.8}/PKG-INFO +15 -17
- {soup_cli-0.71.7 → soup_cli-0.71.8}/README.md +14 -16
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/commands.md +7 -2
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/evaluation.md +15 -2
- {soup_cli-0.71.7 → soup_cli-0.71.8}/pyproject.toml +1 -1
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/__init__.py +1 -1
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cli.py +3 -2
- soup_cli-0.71.8/src/soup_cli/commands/probe.py +738 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/train.py +139 -0
- soup_cli-0.71.8/src/soup_cli/utils/harm_probe.py +149 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/hubs.py +93 -0
- soup_cli-0.71.8/src/soup_cli/utils/interference_live.py +163 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/live_eval.py +148 -0
- soup_cli-0.71.8/src/soup_cli/utils/probe_kernel.py +520 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/probe_pack.py +28 -8
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/sae_diff.py +108 -27
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/sleeper_probe.py +92 -27
- soup_cli-0.71.8/src/soup_cli/utils/truth_probe.py +152 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0717.py +2 -1
- soup_cli-0.71.8/tests/test_v0718.py +1545 -0
- soup_cli-0.71.7/src/soup_cli/commands/probe.py +0 -382
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.dockerignore +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/FUNDING.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/pull_request_template.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/workflows/ci.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/workflows/docker.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/workflows/publish.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.github/workflows/recipe-validation.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.gitignore +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.mailmap +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/.pre-commit-config.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/AGENTS.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/CODEOWNERS +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/CODE_OF_CONDUCT.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/CONTRIBUTORS.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/Dockerfile +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/LICENSE +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/NOTICE +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/SECURITY.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docker-compose.yml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/README.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/adapters-and-governance.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/backends-and-ops.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/data.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/models.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/peft-and-efficiency.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/performance-and-quantization.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/serving-and-export.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/docs/training.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/README.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/dpo_chat.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/dpo_example.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/grpo_reasoning.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/rlhf_step1_sft.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/rlhf_step2_reward.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/rlhf_step3_ppo.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/sft_basic.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/configs/vision_llama.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/data/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/data/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/data/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/data/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/synthetic_workflow.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/examples/synthetic_workflow.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/soup.png +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/soup_logo_svg.svg +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/__main__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/autopilot/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/autopilot/analyzer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/autopilot/decisions.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/autopilot/generate_config.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/pack.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/publish.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/run.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/schema.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/unpack.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/cans/verify.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/_eval_v0550.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/_eval_v0610.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/_eval_v0650.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/_webhook_cli.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/ab.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/active_sample.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/adapters.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/advise.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/agent.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/airgap.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/apple_adapter.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/attest.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/audit_log.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/autopilot.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/bench.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/bom.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/build.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/can.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/chat.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/compile_cmd.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/compile_tools.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/completions.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/cost.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/data.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/data_forge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/data_mix.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/data_score.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/delinearize_llama4.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/deploy.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/diagnose.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/diff.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/distill_prompt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/doctor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/drift_alarm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/edit.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/env.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/eval.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/expect.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/export.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/fetch.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/generate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/history.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/infer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/ingest.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/init.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/iterative_dpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/license_advisor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/llama.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/local_rl.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/lock.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/loop.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/merge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/migrate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/monitor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/plan.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/plugins.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/profile.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/prune_prompt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/push.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/quantize.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/quickstart.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/recipes.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/registry.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/runs.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/serve.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/steer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/sweep.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/tokenizer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/tui.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/tunability.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/ui.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/commands/why.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/config/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/config/loader.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/config/schema.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/augment.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/chat_templates.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/collators.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/formats.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/loader.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/loss_mask.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/providers/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/providers/_utils.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/providers/anthropic.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/providers/ollama.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/providers/vllm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/sft_format.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/code.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/conversation.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/preference.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/qa.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/reasoning.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/tool_calling.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/templates/verifiable.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/traces/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/traces/pair_builder.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/traces/parsers.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/traces/quality.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/data/validator.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/arena.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/calibrate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/custom.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/forgetting.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/gate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/human.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/judge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/leaderboard.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/eval/quant_check.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/experiment/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/experiment/tracker.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/migrate/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/migrate/axolotl.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/migrate/common.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/migrate/llamafactory.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/migrate/unsloth.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/callback.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/display.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/hf_push.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/plugin_callback.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/monitoring/trace_logger.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/plugins/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/py.typed +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/recipes/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/recipes/catalog.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/registry/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/registry/attach.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/registry/diff.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/registry/hashing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/registry/store.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/audio.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/bco.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/chat.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/code.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/embedding.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/ipo.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/kto.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/longcontext.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/manifest.json +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/medical.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/moe.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/orpo.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/pretrain.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/reasoning.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/rlhf.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/simpo.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/tool-calling.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/templates/vision.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/bco.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/classifier.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/distill.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/dpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/embedding.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/grpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/ipo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/kto.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/mlx_dpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/mlx_grpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/mlx_routing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/mlx_sft.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/orpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/ppo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/preference.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/pretrain.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/prm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/reward_model.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/rewards.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/sft.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/simpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/trainer/unlearn.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/tui_app.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/app.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/plugins/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/static/app.js +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/static/index.html +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/static/logo.png +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/static/logo.svg +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/ui/static/style.css +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/_eval_text.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ab_test.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/activation_offload.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/active_sampler.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_bisect.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_branch.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_diff.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_merge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_pr.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_scan.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/adapter_sign.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/advanced_precision.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/advise.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/advise_history.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/agent_forge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/agent_rollout.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/airgap_bundle.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/annex_xi.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/anthropic_messages.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/apple_adapter.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/attest.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/audit_log.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/auto_quant.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/backend_detect.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/batch_probe.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/behavior_battery.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/bitnet.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/blame.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/block_expansion.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/bom.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/brain_rot.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/brain_rot_lang.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/build_dag.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/canary_discovery.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/canary_router.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/capability_suite.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/checklist_dsl.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/citation_faithful.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/classifier.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/cmaes_merge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/compile_tools.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/completions.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/constants.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/convergence.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/crash.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/cross_doc_attn.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/curriculum.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/cut_ce.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/data_forge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/data_mix.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/data_pipeline.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/data_score.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/deepspeed.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/delinearize_llama4.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/demo_bundles.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/deploy_autopilot.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/deploy_measure.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/_common.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/badge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/contamination.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/format.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/live.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/memorization.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/refusal.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/report.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/diagnose/runner.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/distill.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/dpo_variants.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/drift_alarm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ebft_gdpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/echo_trap.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/edit_diff.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/edit_governor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/encoding.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/energy.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/env_lock.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/errors.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/eval_design.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/eval_gate_hook.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/expectations.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/fetch_examples.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/flash_attn.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/fp8.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/freeze.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/fsdp.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/galore.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/gguf_quant.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/gpu.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/gpu_monitor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/grace_codebook.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/graceful_save.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/grad_accum.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/gradient_ckpt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/grpo_long_context.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/grpo_variants.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/hardware_fit.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/hf.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/hf_space.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ingest_sources.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/integrations.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/interference.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/irt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/iterative_dpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/jinja_analyzer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/kernel_picker.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/knowledge_edit.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/kv_cache.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/launcher.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/license_advisor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/license_matrix.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/liger.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/llama_proxy.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/llama_server_timings.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/local_rl.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loftq_init.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/log_level.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/long_context.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/longlora.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loop_budget.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loop_daemon.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loop_iteration.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loop_stages.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/loop_state.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/lr_finder.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/lr_groups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/magpie.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/metrics.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/mii.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/minillm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/mix_proxy.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/mixed_precision.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/mlx.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/moe.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/moe_quant.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/mole_routing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/multipack.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/multipack_sampler.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/multipack_trainer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/namespace_pin.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/neat_packing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ngram_spec.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/nlg_metrics.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ollama.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/onboarding.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/optimizer_zoo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/paths.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/peft_builder.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/peft_patches.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/peft_wiring.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/persona_hub.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/pipeline.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/preference_combine.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/prm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/profiler.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/profiling.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/profiling_v0_43.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/prompt_compile.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/prompt_distill.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/prune_prompt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/qat.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/qr_url.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/quality.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/quant_menu.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ra_dit.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/reasoning_effort.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/reasoning_parser.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/recipe_dag.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/recipe_run.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/registry.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/relora.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/replay.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/repro_receipt.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/reward_hacking.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ring_attention.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/rl_checkpoint.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/run_cost.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/save_formats.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/server_tools.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/sglang.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/shortcuts.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/signing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/soup_lock.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/spec_pairing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/spike_recovery.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/sse_train_stream.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/steering.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/strict_safetensors.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/structured_output.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/sweep_config.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/tail_latency.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/terraform_plan.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/tool_outputs.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/topology.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/tracing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/trackers.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/train_event_buffer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/trainer_plugins.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/trust_remote.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/tts.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/tunability.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/ui_env.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/uld.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/unlearning.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/unlearning_eval.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/unsloth.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/v028_features.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/vector_bank.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/vllm.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/vscode_setup.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/warmup.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/webhooks.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/src/soup_cli/utils/why.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/templates/chat.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/templates/code.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/templates/medical.yaml +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/__init__.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/conftest.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/qa/v053_qa.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/qa/v0716_qa.md +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_adapters.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_advanced_peft.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_assistant_mask.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_audio.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_auto_tuning.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_autopilot.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_awq_gptq_export.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_batch_probe.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_bco.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_bench.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_brain_rot_multilingual.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_bugfixes.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_callback.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_cans.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_chat.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_chat_template.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_cli.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_cli_subprocess.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_config.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_cost.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_crash_reporter.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_curriculum.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_data.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_data_augment.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_data_sample.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_data_split.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_data_tools.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_dataset_hub.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_dataset_registry.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_deepspeed.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_deploy_ollama.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_diff.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_display.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_doctor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_dpo_example.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_dpo_variants.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_embedding.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_errors.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_eval.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_eval_gate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_eval_platform.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_export.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_formats.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_fp8_recipe.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_freeze_training.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_generate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_gpu.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_grpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_hf_integration.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_infer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_inference_advanced.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_init.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ipo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_jinja_analyzer.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_kto.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_loader.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_log_level.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_loss_watchdog.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_merge.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_migrate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_mlx_backend.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_moe.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_multi_adapter.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_multi_gpu.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_multipack_config.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_multipack_invariants.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_multipack_sampler.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_neat_packing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_neftune_rslora.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_onnx_tensorrt_export.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_orpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_packing.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_a_wave1.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_a_wave2.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_part_f_hardening.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_peft_methods.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_peft_patches.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_performance.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_pissa_init.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ppo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_preference_dispatcher.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_preference_multi.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_preference_multi_runtime.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_pretrain.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_profile.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_profiling.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_progress.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_push.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_qat.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_quality_filter.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_quant_check.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_quant_menu.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_quickstart.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_rank_pattern.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_recipes.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_recipes_v031.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_refusal_multilingual.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_registry.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_relora.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_replay.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_resume.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_rlvr.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_run_cost.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_runs.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_serve.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_server_generate.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_sglang_serve.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_simpo.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_smoke_train.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_speculative_decoding.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_sweep.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_synth_data_pro.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_templates_yaml.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_tensorboard.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_tool_calling.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_trace_to_pref.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_tracker.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_trainer_coverage_v035.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_trainer_init.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_training_intelligence.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_training_speed.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_trust_remote_code.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_tui.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ui.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ui_chat.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ui_config_builder.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ui_live_monitor.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_ui_metrics.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_unsloth.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0401_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0401_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0401_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0402_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0402_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0403_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0403_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0403_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0404_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0404_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0405_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0406_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0410_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0410_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0410_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0420.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0430_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0430_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0430_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0430_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0440_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0440_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0440_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0440_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0440_review_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0450.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0460_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0460_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0470_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0470_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0480_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0480_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0490.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0500_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0500_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0500_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0500_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0500_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0510.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0520.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0530.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v05310.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v05311.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0531_109.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0531_139.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0531_142.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0531_82.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0532.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0533.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0534.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0535.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0536.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0537.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0538.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0539.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0540.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0550.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0550_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0560.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0570_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0570_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0570_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0570_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0580.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0590.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0600_part_f.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0610_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0610_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0610_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0610_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0610_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0620_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0630_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0631_206.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0640_part_f.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0650_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_cli.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0660_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0670_part_f.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_followups.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0680_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0690_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0690_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0690_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0690_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0690_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_a.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_b.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_c.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_d.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_e.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0700_part_f.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0712.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0713.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0714.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0715.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_v0716.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_validator.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_vision.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_vllm_serve.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_why.py +0 -0
- {soup_cli-0.71.7 → soup_cli-0.71.8}/tests/test_windows_encoding.py +0 -0
|
@@ -12,6 +12,52 @@ reproducing 70+ versions of notes.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.71.8] - 2026-06-03
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **Probes & SAE — real weights + live downloads** (closes #215, #216, #217,
|
|
19
|
+
#218, #219). A new shared `soup_cli/utils/probe_kernel.py` provides the
|
|
20
|
+
linear-probe math (contrast-pair derivation, apply, flag-rate, verdict bands,
|
|
21
|
+
operator-supplied weight loading, deterministic synthetic fallback); every
|
|
22
|
+
heavy import (`numpy` / `torch` / `safetensors`) is lazy.
|
|
23
|
+
- **`soup probe sleeper --weights <w.npz|.npy|.safetensors>`** (#215) — load a
|
|
24
|
+
real calibrated probe direction instead of the synthetic fallback. Weights are
|
|
25
|
+
cwd-contained, symlink-rejected, `O_NOFOLLOW`-opened, `allow_pickle=False`,
|
|
26
|
+
and size-capped. `compute_contrast_probe(positive, negative)` derives a probe
|
|
27
|
+
from contrast-pair activations.
|
|
28
|
+
- **`soup probe sae-diff <repo> --auto-download`** (#216) — fetch an
|
|
29
|
+
allowlisted SAE from the HF Hub into `~/.soup/sae-cache/` (validated against
|
|
30
|
+
`HF_HUB_ALLOWLIST` BEFORE any network call) via a new SSRF-hardened
|
|
31
|
+
`soup_cli.utils.hubs.snapshot_download` (repo-id shape + home/cwd/tmp cache
|
|
32
|
+
containment + namespace-pin TOFU gate).
|
|
33
|
+
- **`soup probe truth` / `soup probe harm`** (#217) — TruthfulQA-style honesty
|
|
34
|
+
and HarmBench-style misuse activation probes (6 bundled bases each, 5% / 20%
|
|
35
|
+
verdict bands, `--weights` to skip the allowlist with a real probe). The
|
|
36
|
+
probe pack now ships truth + harm entries per base.
|
|
37
|
+
- **`soup probe interference --measure <eval_suite> --base-model <m> --adapter
|
|
38
|
+
name=path ...`** (#218) — auto-measure the N×N interference matrix by actually
|
|
39
|
+
loading the base + each LoRA adapter (PEFT multi-adapter), measuring loss for
|
|
40
|
+
each adapter alone (diagonal) and each co-loaded pair
|
|
41
|
+
(`add_weighted_adapter(combination_type="cat")`, off-diagonal). Exit 2 on a
|
|
42
|
+
MAJOR worst-pair.
|
|
43
|
+
- **`soup train --capture-activations <layer> --capture-prompts <jsonl>`** (#219)
|
|
44
|
+
— a post-training hook writes an SAE-diff-ready per-token activation snapshot
|
|
45
|
+
to `<output>/activations/activations.json`. `resolve_layer_module` resolves
|
|
46
|
+
the same `model.layers.N` path whether or not a LoRA adapter is loaded
|
|
47
|
+
(PEFT-wrapper fallback).
|
|
48
|
+
|
|
49
|
+
### Security
|
|
50
|
+
- Probe / SAE / capture file I/O is cwd-contained + `O_NOFOLLOW` (TOCTOU close)
|
|
51
|
+
+ size-capped; SAE weight loads use `allow_pickle=False`. SAE auto-download
|
|
52
|
+
validates the allowlist before any network call and rejects a glob result
|
|
53
|
+
that resolves outside the snapshot dir (symlink-escape guard).
|
|
54
|
+
|
|
55
|
+
### Notes
|
|
56
|
+
- #215 is partial: the operator-supplied / contrast-pair / synthetic paths ship
|
|
57
|
+
now, but the 6 large-base Anthropic-calibrated probe vectors remain
|
|
58
|
+
upstream-gated (no public calibrated artifact exists). Documented as a known
|
|
59
|
+
limitation.
|
|
60
|
+
|
|
15
61
|
## [0.71.7] - 2026-06-02
|
|
16
62
|
|
|
17
63
|
### Added
|
|
@@ -120,7 +120,7 @@ src/soup_cli/
|
|
|
120
120
|
templates/ - 17 built-in soup.yaml templates (YAML + manifest.json) with load_template loader (v0.39.0, +bco v0.40.0)
|
|
121
121
|
ui/ - Web UI (FastAPI + HTML/JS SPA)
|
|
122
122
|
|
|
123
|
-
tests/ - Test suite (
|
|
123
|
+
tests/ - Test suite (278 files, 12917 tests)
|
|
124
124
|
examples/ - Real-world config examples and datasets
|
|
125
125
|
```
|
|
126
126
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soup-cli
|
|
3
|
-
Version: 0.71.
|
|
3
|
+
Version: 0.71.8
|
|
4
4
|
Summary: Fine-tune LLMs in one command. No SSH, no config hell.
|
|
5
5
|
Project-URL: Homepage, https://github.com/MakazhanAlpamys/Soup
|
|
6
6
|
Project-URL: Repository, https://github.com/MakazhanAlpamys/Soup
|
|
@@ -183,22 +183,20 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
183
183
|
|
|
184
184
|
## What's New
|
|
185
185
|
|
|
186
|
-
**v0.71.
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- **`soup
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
- **`soup
|
|
193
|
-
|
|
194
|
-
- **`soup
|
|
195
|
-
|
|
196
|
-
- **`soup
|
|
197
|
-
|
|
198
|
-
- **`soup
|
|
199
|
-
|
|
200
|
-
- New shared `soup_cli/utils/live_eval.py` holds the model-loading primitives; heavy imports stay
|
|
201
|
-
lazy. Validated end-to-end on SmolLM2-135M (RTX 3050 4 GB).
|
|
186
|
+
**v0.71.8 — Probes & SAE.** The activation-probe surfaces ship real weights, live SAE downloads,
|
|
187
|
+
and an end-to-end capture → diff pipeline:
|
|
188
|
+
|
|
189
|
+
- **`soup probe truth` / `soup probe harm`** — TruthfulQA-style honesty and HarmBench-style misuse
|
|
190
|
+
activation probes (6 bundled bases each, 5% / 20% verdict bands). `--weights` loads a real
|
|
191
|
+
calibrated probe; without it the bundled deterministic fallback is used.
|
|
192
|
+
- **`soup probe sleeper --weights <w.npz|.npy|.safetensors>`** — load a real calibrated sleeper
|
|
193
|
+
probe direction instead of the synthetic fallback (cwd-contained, `allow_pickle=False`).
|
|
194
|
+
- **`soup probe sae-diff <repo> --auto-download`** — fetch an allowlisted SAE from the HF Hub into
|
|
195
|
+
`~/.soup/sae-cache/` (validated before any network call) and diff pre/post activations.
|
|
196
|
+
- **`soup probe interference --measure <eval.jsonl> --base-model <m> --adapter a=path ...`** —
|
|
197
|
+
auto-measure the N×N adapter-interference matrix by actually loading the base + each LoRA adapter.
|
|
198
|
+
- **`soup train --capture-activations <layer> --capture-prompts <jsonl>`** — a post-training hook
|
|
199
|
+
writes an SAE-diff-ready per-token activation snapshot. Validated end-to-end on SmolLM2-135M.
|
|
202
200
|
|
|
203
201
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
204
202
|
|
|
@@ -49,22 +49,20 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
49
49
|
|
|
50
50
|
## What's New
|
|
51
51
|
|
|
52
|
-
**v0.71.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **`soup
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- **`soup
|
|
59
|
-
|
|
60
|
-
- **`soup
|
|
61
|
-
|
|
62
|
-
- **`soup
|
|
63
|
-
|
|
64
|
-
- **`soup
|
|
65
|
-
|
|
66
|
-
- New shared `soup_cli/utils/live_eval.py` holds the model-loading primitives; heavy imports stay
|
|
67
|
-
lazy. Validated end-to-end on SmolLM2-135M (RTX 3050 4 GB).
|
|
52
|
+
**v0.71.8 — Probes & SAE.** The activation-probe surfaces ship real weights, live SAE downloads,
|
|
53
|
+
and an end-to-end capture → diff pipeline:
|
|
54
|
+
|
|
55
|
+
- **`soup probe truth` / `soup probe harm`** — TruthfulQA-style honesty and HarmBench-style misuse
|
|
56
|
+
activation probes (6 bundled bases each, 5% / 20% verdict bands). `--weights` loads a real
|
|
57
|
+
calibrated probe; without it the bundled deterministic fallback is used.
|
|
58
|
+
- **`soup probe sleeper --weights <w.npz|.npy|.safetensors>`** — load a real calibrated sleeper
|
|
59
|
+
probe direction instead of the synthetic fallback (cwd-contained, `allow_pickle=False`).
|
|
60
|
+
- **`soup probe sae-diff <repo> --auto-download`** — fetch an allowlisted SAE from the HF Hub into
|
|
61
|
+
`~/.soup/sae-cache/` (validated before any network call) and diff pre/post activations.
|
|
62
|
+
- **`soup probe interference --measure <eval.jsonl> --base-model <m> --adapter a=path ...`** —
|
|
63
|
+
auto-measure the N×N adapter-interference matrix by actually loading the base + each LoRA adapter.
|
|
64
|
+
- **`soup train --capture-activations <layer> --capture-prompts <jsonl>`** — a post-training hook
|
|
65
|
+
writes an SAE-diff-ready per-token activation snapshot. Validated end-to-end on SmolLM2-135M.
|
|
68
66
|
|
|
69
67
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
70
68
|
|
|
@@ -189,10 +189,15 @@ soup completions bash | zsh | fish Shell completion script
|
|
|
189
189
|
soup license-advisor --target b2c|defense|embedded Recommend license-clean base for deploy target
|
|
190
190
|
soup license-advisor ... --license <id> --mau N Per-license downstream-risk check (exit 3 on block)
|
|
191
191
|
soup probe sae-diff <sae> <pre.json> <post.json> [--top-k N] SAE feature diff between pre/post-FT activations (v0.66.0)
|
|
192
|
-
soup probe
|
|
192
|
+
soup probe sae-diff <repo> <pre.json> <post.json> --auto-download Fetch an allowlisted SAE into ~/.soup/sae-cache (v0.71.8)
|
|
193
|
+
soup probe sleeper <base> [--evidence ev.json] [--weights w.npz] [--output o.json] Sleeper-agent defection probe; --weights = real calibrated probe (v0.66.0; v0.71.8)
|
|
194
|
+
soup probe truth <base> [--evidence ev.json] [--weights w.npz] [--output o.json] TruthfulQA-style honesty probe (v0.71.8)
|
|
195
|
+
soup probe harm <base> [--evidence ev.json] [--weights w.npz] [--output o.json] HarmBench-style misuse probe (v0.71.8)
|
|
193
196
|
soup probe interference <losses.json> [--output o.json] Pairwise N×N adapter interference matrix (exit 2 on MAJOR; v0.66.0)
|
|
194
|
-
soup probe
|
|
197
|
+
soup probe interference --measure <eval.jsonl> --base-model <m> --adapter name=path ... [--device cpu] Auto-measure live interference (v0.71.8)
|
|
198
|
+
soup probe pack <base> [--output o.json] Per-base calibrated probe pack manifest (v0.66.0; +truth/harm v0.71.8)
|
|
195
199
|
soup probe pack --list List bundled probe-pack bases (v0.66.0)
|
|
200
|
+
soup train --capture-activations <layer> --capture-prompts <jsonl> Post-train SAE-diff-ready per-token activation snapshot (v0.71.8)
|
|
196
201
|
soup adapters blame ... --top-k 50 Live DataInf-style influence runner (v0.66.0, closes #171)
|
|
197
202
|
soup adapters merge ... --strategy cmaes --eval <s> --budget 1h CMA-ES evolutionary merge — live loop (v0.67.0 schema / v0.71.4 live)
|
|
198
203
|
soup adapters merge ... --canary <suite.json> [--strict-verdict] Live OK/MINOR/MAJOR canary verdict, exit 2 on MAJOR (v0.71.4)
|
|
@@ -37,16 +37,29 @@ soup adapters blame ./my-adapter --dataset ./train.jsonl --layer q_proj.7 \
|
|
|
37
37
|
|
|
38
38
|
# 3. Sleeper-agent defection probe: per-token defection rate via calibrated linear probe
|
|
39
39
|
soup probe sleeper meta-llama/Llama-3-8B --evidence activations.json
|
|
40
|
+
soup probe sleeper my/model --weights probe.npz --evidence activations.json # real calibrated probe (v0.71.8)
|
|
41
|
+
|
|
42
|
+
# 3b. Honesty + misuse probes (v0.71.8) — same shape, 5% / 20% verdict bands
|
|
43
|
+
soup probe truth meta-llama/Llama-3-8B --evidence activations.json
|
|
44
|
+
soup probe harm meta-llama/Llama-3-8B --evidence activations.json
|
|
40
45
|
|
|
41
46
|
# 4. Pairwise adapter interference matrix: which pairs can't be deployed together?
|
|
42
47
|
soup probe interference losses.json # exit 2 if worst-pair score ≥ 20%
|
|
48
|
+
# v0.71.8: auto-measure the matrix live instead of supplying losses.json
|
|
49
|
+
soup probe interference --measure eval.jsonl --base-model meta-llama/Llama-3-8B \
|
|
50
|
+
--adapter a=./adapter-a --adapter b=./adapter-b --device cpu
|
|
43
51
|
|
|
44
|
-
# 5. Probe pack: list/assemble calibrated probes per base
|
|
52
|
+
# 5. Probe pack: list/assemble calibrated probes per base (sleeper + truth + harm per base)
|
|
45
53
|
soup probe pack --list # list bundled bases
|
|
46
54
|
soup probe pack meta-llama/Llama-3-8B # render the per-base manifest
|
|
55
|
+
|
|
56
|
+
# 6. SAE auto-download + capture pipeline (v0.71.8)
|
|
57
|
+
soup train --config soup.yaml --capture-activations model.layers.5 \
|
|
58
|
+
--capture-prompts probes.jsonl # writes <output>/activations/activations.json
|
|
59
|
+
soup probe sae-diff google/gemma-scope-2b-pt-res pre.json post.json --auto-download
|
|
47
60
|
```
|
|
48
61
|
|
|
49
|
-
Every probe uses the OK / MINOR / MAJOR taxonomy from v0.26 (Quant-Lobotomy) / v0.56 (Diagnose) / v0.65 (Eval Depth). Sleeper
|
|
62
|
+
Every probe uses the OK / MINOR / MAJOR taxonomy from v0.26 (Quant-Lobotomy) / v0.56 (Diagnose) / v0.65 (Eval Depth). Sleeper / truth / harm / interference exit 2 on MAJOR for CI gating. **v0.71.8** ships real probe weights: `--weights <w.npz|.npy|.safetensors>` loads a calibrated direction (cwd-contained, `O_NOFOLLOW`, `allow_pickle=False`, size-capped); `compute_contrast_probe(positive, negative)` derives one from contrast-pair activations; the bundled specs fall back to a deterministic synthetic seed (the large-base Anthropic-calibrated vectors remain upstream-gated). `soup probe interference --measure` loads the base + each LoRA adapter via PEFT and measures loss per adapter alone (diagonal) and per co-loaded pair (`add_weighted_adapter(combination_type="cat")`, off-diagonal). `soup train --capture-activations` writes an SAE-diff-ready per-token snapshot (the `model.layers.N` path resolves whether or not a LoRA adapter is loaded). The blame runner closes the v0.57 `NotImplementedError` stub via a DataInf-style influence approximation: `cos(grad_row, grad_probe) × |grad_row|`. Operators supply a `probe_fn` returning `(row_grads, probe_grad)`, or the runner falls back to a deterministic synthetic probe so the surface always returns a real `BlameResult` (no exception leaks). SAE feature diff is pure-numpy; the safetensors loader is `O_NOFOLLOW`-protected (TOCTOU defence — closes the symlink swap window between containment check and read); `--auto-download` validates the `HF_HUB_ALLOWLIST` before any network call and rejects a glob result escaping the snapshot dir.
|
|
50
63
|
|
|
51
64
|
|
|
52
65
|
## Pre-flight Decision (`soup advise`)
|
|
@@ -410,8 +410,9 @@ app.add_typer(
|
|
|
410
410
|
_probe_cmd.app,
|
|
411
411
|
name="probe",
|
|
412
412
|
help=(
|
|
413
|
-
"Activation probes: sleeper-agent defection /
|
|
414
|
-
"/ SAE feature diff / probe pack (v0.66.0
|
|
413
|
+
"Activation probes: sleeper-agent defection / honesty / misuse / "
|
|
414
|
+
"pairwise interference / SAE feature diff / probe pack (v0.66.0, "
|
|
415
|
+
"truth+harm v0.71.8)."
|
|
415
416
|
),
|
|
416
417
|
)
|
|
417
418
|
|