soup-cli 0.71.8__tar.gz → 0.71.10__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.8 → soup_cli-0.71.10}/CHANGELOG.md +80 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/CONTRIBUTING.md +1 -1
- {soup_cli-0.71.8 → soup_cli-0.71.10}/PKG-INFO +16 -15
- {soup_cli-0.71.8 → soup_cli-0.71.10}/README.md +15 -14
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/adapters-and-governance.md +16 -9
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/commands.md +9 -2
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/evaluation.md +3 -2
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/training.md +31 -3
- {soup_cli-0.71.8 → soup_cli-0.71.10}/pyproject.toml +1 -1
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/__init__.py +1 -1
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cli.py +9 -0
- soup_cli-0.71.10/src/soup_cli/commands/_eval_v07110.py +259 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/edit.py +121 -22
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/eval.py +5 -0
- soup_cli-0.71.10/src/soup_cli/commands/ra_dit.py +126 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/serve.py +36 -7
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/steer.py +87 -28
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/train.py +17 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/config/schema.py +20 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/registry/store.py +3 -0
- soup_cli-0.71.10/src/soup_cli/trainer/raft.py +121 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/sft.py +94 -1
- soup_cli-0.71.10/src/soup_cli/trainer/unlearn.py +443 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/citation_faithful.py +54 -14
- soup_cli-0.71.10/src/soup_cli/utils/diagnose/citation.py +97 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/live.py +10 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/report.py +2 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/edit_diff.py +87 -18
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/edit_governor.py +258 -1
- soup_cli-0.71.10/src/soup_cli/utils/edit_kernels.py +399 -0
- soup_cli-0.71.10/src/soup_cli/utils/grace_codebook.py +462 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/knowledge_edit.py +115 -13
- soup_cli-0.71.10/src/soup_cli/utils/ra_dit_run.py +373 -0
- soup_cli-0.71.10/src/soup_cli/utils/raft.py +282 -0
- soup_cli-0.71.10/src/soup_cli/utils/steering.py +720 -0
- soup_cli-0.71.10/src/soup_cli/utils/unlearn_kernels.py +115 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/unlearning.py +16 -12
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0560.py +3 -1
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0610_part_a.py +26 -9
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0610_part_c.py +57 -11
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_followups.py +39 -19
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_part_c.py +11 -15
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_part_e.py +21 -7
- soup_cli-0.71.10/tests/test_v07110.py +1921 -0
- soup_cli-0.71.10/tests/test_v0719.py +946 -0
- soup_cli-0.71.8/src/soup_cli/trainer/unlearn.py +0 -90
- soup_cli-0.71.8/src/soup_cli/utils/grace_codebook.py +0 -102
- soup_cli-0.71.8/src/soup_cli/utils/steering.py +0 -234
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.dockerignore +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/FUNDING.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/pull_request_template.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/workflows/ci.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/workflows/docker.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/workflows/publish.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.github/workflows/recipe-validation.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.gitignore +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.mailmap +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/.pre-commit-config.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/AGENTS.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/CODEOWNERS +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/CODE_OF_CONDUCT.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/CONTRIBUTORS.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/Dockerfile +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/LICENSE +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/NOTICE +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/SECURITY.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docker-compose.yml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/README.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/backends-and-ops.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/data.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/models.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/peft-and-efficiency.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/performance-and-quantization.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/docs/serving-and-export.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/README.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/dpo_chat.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/dpo_example.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/grpo_reasoning.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/rlhf_step1_sft.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/rlhf_step2_reward.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/rlhf_step3_ppo.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/sft_basic.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/configs/vision_llama.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/data/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/data/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/data/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/data/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/synthetic_workflow.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/examples/synthetic_workflow.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/soup.png +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/soup_logo_svg.svg +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/__main__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/autopilot/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/autopilot/analyzer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/autopilot/decisions.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/autopilot/generate_config.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/pack.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/publish.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/run.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/schema.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/unpack.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/cans/verify.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/_eval_v0550.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/_eval_v0610.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/_eval_v0650.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/_webhook_cli.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/ab.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/active_sample.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/adapters.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/advise.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/agent.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/airgap.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/apple_adapter.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/attest.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/audit_log.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/autopilot.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/bench.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/bom.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/build.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/can.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/chat.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/compile_cmd.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/compile_tools.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/completions.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/cost.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/data.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/data_forge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/data_mix.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/data_score.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/delinearize_llama4.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/deploy.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/diagnose.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/diff.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/distill_prompt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/doctor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/drift_alarm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/env.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/expect.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/export.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/fetch.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/generate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/history.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/infer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/ingest.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/init.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/iterative_dpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/license_advisor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/llama.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/local_rl.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/lock.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/loop.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/merge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/migrate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/monitor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/plan.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/plugins.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/profile.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/prune_prompt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/push.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/quantize.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/quickstart.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/recipes.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/registry.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/runs.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/sweep.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/tokenizer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/tui.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/tunability.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/ui.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/commands/why.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/config/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/config/loader.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/augment.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/chat_templates.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/collators.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/formats.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/loader.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/loss_mask.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/providers/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/providers/_utils.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/providers/anthropic.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/providers/ollama.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/providers/vllm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/sft_format.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/code.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/conversation.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/preference.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/qa.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/reasoning.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/tool_calling.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/templates/verifiable.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/traces/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/traces/pair_builder.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/traces/parsers.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/traces/quality.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/data/validator.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/arena.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/calibrate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/custom.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/forgetting.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/gate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/human.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/judge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/leaderboard.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/eval/quant_check.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/experiment/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/experiment/tracker.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/migrate/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/migrate/axolotl.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/migrate/common.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/migrate/llamafactory.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/migrate/unsloth.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/callback.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/display.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/hf_push.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/plugin_callback.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/monitoring/trace_logger.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/plugins/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/py.typed +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/recipes/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/recipes/catalog.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/registry/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/registry/attach.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/registry/diff.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/registry/hashing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/audio.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/bco.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/chat.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/code.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/embedding.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/ipo.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/kto.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/longcontext.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/manifest.json +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/medical.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/moe.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/orpo.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/pretrain.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/reasoning.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/rlhf.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/simpo.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/tool-calling.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/templates/vision.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/bco.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/classifier.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/distill.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/dpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/embedding.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/grpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/ipo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/kto.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/mlx_dpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/mlx_grpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/mlx_routing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/mlx_sft.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/orpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/ppo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/preference.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/pretrain.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/prm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/reward_model.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/rewards.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/trainer/simpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/tui_app.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/app.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/plugins/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/static/app.js +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/static/index.html +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/static/logo.png +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/static/logo.svg +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/ui/static/style.css +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/_eval_text.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ab_test.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/activation_offload.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/active_sampler.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_bisect.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_branch.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_diff.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_merge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_pr.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_scan.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/adapter_sign.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/advanced_precision.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/advise.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/advise_history.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/agent_forge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/agent_rollout.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/airgap_bundle.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/annex_xi.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/anthropic_messages.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/apple_adapter.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/attest.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/audit_log.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/auto_quant.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/backend_detect.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/batch_probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/behavior_battery.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/bitnet.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/blame.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/block_expansion.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/bom.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/brain_rot.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/brain_rot_lang.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/build_dag.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/canary_discovery.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/canary_router.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/capability_suite.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/checklist_dsl.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/classifier.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/cmaes_merge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/compile_tools.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/completions.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/constants.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/convergence.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/crash.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/cross_doc_attn.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/curriculum.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/cut_ce.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/data_forge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/data_mix.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/data_pipeline.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/data_score.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/deepspeed.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/delinearize_llama4.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/demo_bundles.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/deploy_autopilot.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/deploy_measure.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/_common.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/badge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/contamination.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/format.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/memorization.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/refusal.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/diagnose/runner.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/distill.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/dpo_variants.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/drift_alarm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ebft_gdpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/echo_trap.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/encoding.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/energy.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/env_lock.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/errors.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/eval_design.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/eval_gate_hook.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/expectations.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/fetch_examples.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/flash_attn.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/fp8.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/freeze.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/fsdp.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/galore.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/gguf_quant.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/gpu.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/gpu_monitor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/graceful_save.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/grad_accum.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/gradient_ckpt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/grpo_long_context.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/grpo_variants.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/hardware_fit.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/harm_probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/hf.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/hf_space.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/hubs.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ingest_sources.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/integrations.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/interference.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/interference_live.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/irt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/iterative_dpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/jinja_analyzer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/kernel_picker.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/kv_cache.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/launcher.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/license_advisor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/license_matrix.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/liger.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/live_eval.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/llama_proxy.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/llama_server_timings.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/local_rl.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loftq_init.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/log_level.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/long_context.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/longlora.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loop_budget.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loop_daemon.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loop_iteration.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loop_stages.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/loop_state.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/lr_finder.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/lr_groups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/magpie.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/metrics.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/mii.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/minillm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/mix_proxy.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/mixed_precision.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/mlx.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/moe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/moe_quant.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/mole_routing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/multipack.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/multipack_sampler.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/multipack_trainer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/namespace_pin.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/neat_packing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ngram_spec.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/nlg_metrics.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ollama.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/onboarding.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/optimizer_zoo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/paths.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/peft_builder.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/peft_patches.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/peft_wiring.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/persona_hub.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/pipeline.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/preference_combine.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/prm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/probe_kernel.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/probe_pack.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/profiler.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/profiling.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/profiling_v0_43.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/prompt_compile.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/prompt_distill.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/prune_prompt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/qat.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/qr_url.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/quality.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/quant_menu.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ra_dit.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/reasoning_effort.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/reasoning_parser.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/recipe_dag.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/recipe_run.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/registry.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/relora.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/replay.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/repro_receipt.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/reward_hacking.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ring_attention.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/rl_checkpoint.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/run_cost.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/sae_diff.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/save_formats.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/server_tools.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/sglang.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/shortcuts.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/signing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/sleeper_probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/soup_lock.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/spec_pairing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/spike_recovery.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/sse_train_stream.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/strict_safetensors.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/structured_output.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/sweep_config.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/tail_latency.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/terraform_plan.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/tool_outputs.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/topology.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/tracing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/trackers.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/train_event_buffer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/trainer_plugins.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/trust_remote.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/truth_probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/tts.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/tunability.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/ui_env.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/uld.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/unlearning_eval.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/unsloth.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/v028_features.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/vector_bank.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/vllm.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/vscode_setup.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/warmup.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/webhooks.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/src/soup_cli/utils/why.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/templates/chat.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/templates/code.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/templates/medical.yaml +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/__init__.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/conftest.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/qa/v053_qa.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/qa/v0716_qa.md +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_adapters.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_advanced_peft.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_assistant_mask.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_audio.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_auto_tuning.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_autopilot.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_awq_gptq_export.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_batch_probe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_bco.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_bench.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_brain_rot_multilingual.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_bugfixes.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_callback.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_cans.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_chat.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_chat_template.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_cli.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_cli_subprocess.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_config.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_cost.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_crash_reporter.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_curriculum.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_data.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_data_augment.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_data_sample.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_data_split.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_data_tools.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_dataset_hub.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_dataset_registry.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_deepspeed.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_deploy_ollama.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_diff.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_display.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_doctor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_dpo_example.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_dpo_variants.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_embedding.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_errors.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_eval.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_eval_gate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_eval_platform.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_export.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_formats.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_fp8_recipe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_freeze_training.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_generate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_gpu.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_grpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_hf_integration.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_infer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_inference_advanced.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_init.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ipo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_jinja_analyzer.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_kto.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_loader.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_log_level.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_loss_watchdog.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_merge.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_migrate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_mlx_backend.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_moe.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_multi_adapter.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_multi_gpu.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_multipack_config.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_multipack_invariants.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_multipack_sampler.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_neat_packing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_neftune_rslora.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_onnx_tensorrt_export.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_orpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_packing.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_a_wave1.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_a_wave2.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_part_f_hardening.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_peft_methods.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_peft_patches.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_performance.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_pissa_init.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ppo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_preference_dispatcher.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_preference_multi.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_preference_multi_runtime.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_pretrain.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_profile.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_profiling.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_progress.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_push.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_qat.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_quality_filter.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_quant_check.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_quant_menu.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_quickstart.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_rank_pattern.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_recipes.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_recipes_v031.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_refusal_multilingual.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_registry.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_relora.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_replay.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_resume.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_rlvr.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_run_cost.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_runs.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_serve.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_server_generate.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_sglang_serve.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_simpo.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_smoke_train.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_speculative_decoding.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_sweep.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_synth_data_pro.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_templates_yaml.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_tensorboard.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_tool_calling.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_trace_to_pref.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_tracker.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_trainer_coverage_v035.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_trainer_init.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_training_intelligence.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_training_speed.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_trust_remote_code.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_tui.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ui.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ui_chat.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ui_config_builder.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ui_live_monitor.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_ui_metrics.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_unsloth.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0401_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0401_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0401_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0402_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0402_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0403_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0403_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0403_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0404_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0404_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0405_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0406_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0410_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0410_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0410_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0420.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0430_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0430_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0430_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0430_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0440_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0440_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0440_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0440_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0440_review_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0450.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0460_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0460_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0470_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0470_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0480_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0480_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0490.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0500_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0500_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0500_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0500_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0500_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0510.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0520.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0530.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v05310.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v05311.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0531_109.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0531_139.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0531_142.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0531_82.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0532.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0533.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0534.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0535.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0536.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0537.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0538.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0539.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0540.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0550.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0550_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0570_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0570_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0570_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0570_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0580.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0590.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0600_part_f.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0610_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0610_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0610_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0620_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0630_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0631_206.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0640_part_f.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0650_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_cli.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0660_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0670_part_f.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_followups.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0680_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0690_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0690_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0690_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0690_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0690_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_a.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_b.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_c.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_d.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_e.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0700_part_f.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0712.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0713.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0714.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0715.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0716.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0717.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_v0718.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_validator.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_vision.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_vllm_serve.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_why.py +0 -0
- {soup_cli-0.71.8 → soup_cli-0.71.10}/tests/test_windows_encoding.py +0 -0
|
@@ -12,6 +12,86 @@ reproducing 70+ versions of notes.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.71.10] - 2026-06-03
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **RAG family — live wiring** (closes #199, #200, #201, #202). The four
|
|
19
|
+
retrieval / steering surfaces that shipped schema-only in v0.62.0 are now
|
|
20
|
+
real, validated on SmolLM2-135M.
|
|
21
|
+
- **RAFT span-mask training is live** (#199). `data.format: raft` rows
|
|
22
|
+
(`{query, golden_doc, distractor_docs, answer}`) now train answer-only: the
|
|
23
|
+
prompt span is masked to `-100` and each document is labelled `[doc-N]` so
|
|
24
|
+
the model learns to cite the supporting document. Documents are shuffled
|
|
25
|
+
reproducibly (`data.raft_shuffle_seed`). Rows whose prompt fills
|
|
26
|
+
`max_length` (answer fully truncated) are dropped with a warning rather than
|
|
27
|
+
silently shrinking the effective dataset.
|
|
28
|
+
- **`soup ra-dit` — one-shot two-stage orchestrator** (#200). Trains the
|
|
29
|
+
retriever (stage 1, embedding/contrastive) then the generator (stage 2,
|
|
30
|
+
RAFT-SFT) in a single command, recording the trained retriever as the
|
|
31
|
+
generator's paired retriever. A `soup train` of a generator-stage config
|
|
32
|
+
with no retriever model set now auto-links the most-recent RA-DIT retriever
|
|
33
|
+
run from the Registry. `--plan-only` validates both configs without
|
|
34
|
+
training; `--retriever-model` overrides the auto-link.
|
|
35
|
+
- **`soup steer train` / `apply` + `soup serve --steer` are live** (#201).
|
|
36
|
+
Fit a CAA (contrastive activation addition), ITI (inference-time
|
|
37
|
+
intervention) or RepE (representation-engineering PCA) control vector from
|
|
38
|
+
`{positive, negative}` contrastive pairs, persist it as a safetensors +
|
|
39
|
+
config artifact, and apply it at decode time via a forward hook
|
|
40
|
+
(`soup serve --steer <name> --steer-strength <s>`).
|
|
41
|
+
- **`soup eval citation` + citation-span loss boost are live** (#202). Score
|
|
42
|
+
citation precision / recall / F1 over `{predicted, expected_ids}` or RAFT
|
|
43
|
+
rows (`--shuffle-seed` aligns the golden `[doc-N]` id with what the model
|
|
44
|
+
saw at train time). When `citation_faithful: true`, bracketed `[doc-id]`
|
|
45
|
+
spans in the answer get a boosted per-token loss weight. A new `citation`
|
|
46
|
+
failure mode is available in `soup diagnose`.
|
|
47
|
+
|
|
48
|
+
## [0.71.9] - 2026-06-03
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
- **Knowledge edit + unlearn — live wiring** (closes #193, #194, #196, #197,
|
|
52
|
+
#203). The v0.61.0 / v0.62.0 schema-only stubs are now live, validated on
|
|
53
|
+
SmolLM2-135M.
|
|
54
|
+
- **`soup edit set` (ROME / MEMIT / AlphaEdit) is live** (#194). New
|
|
55
|
+
`soup_cli/utils/edit_kernels.py` ships covariance-free rank-1 weight-edit
|
|
56
|
+
kernels: ROME (single-layer `W += δ·kᵀ/‖k‖²`), MEMIT (residual distributed
|
|
57
|
+
across a layer band), AlphaEdit (ROME update projected orthogonal to the
|
|
58
|
+
down-proj's top singular direction). `apply_edit` loads the model, optimises
|
|
59
|
+
the target residual, applies the rank-1 update, and optionally saves with
|
|
60
|
+
cwd-containment + symlink rejection. `--output`, `--device`, `--governor/
|
|
61
|
+
--no-governor` flags added. On a tiny model a ROME edit moved
|
|
62
|
+
`P("Lyon" | "The capital of France is")` from 0.0016 → 0.96.
|
|
63
|
+
- **`soup edit diff` live before/after generation** (#194). Pass
|
|
64
|
+
`--before-model` + `--after-model` (+ `--probes`) to generate completions
|
|
65
|
+
through both models and surface the probes whose output changed.
|
|
66
|
+
- **EditGovernor SQLite persistence + cross-process locking** (#196). New
|
|
67
|
+
`EditGovernorStore` (mirrors `namespace_pin.NamespacePinStore` —
|
|
68
|
+
$HOME/$CWD/$TMPDIR containment, TOCTOU symlink rejection, WAL +
|
|
69
|
+
busy_timeout, `fcntl`/`msvcrt` sidecar lock, POSIX 0600). `save_governor` /
|
|
70
|
+
`load_governor` / `default_governor_db_path` (env override
|
|
71
|
+
`SOUP_EDIT_GOVERNOR_DB`) persist per-base-model edit-count + verdict across
|
|
72
|
+
separate `soup edit set` runs.
|
|
73
|
+
- **`apply_edit` consults the EditGovernor automatically** (#197). When a
|
|
74
|
+
governor is supplied, `check_can_edit()` runs BEFORE the model load (refusing
|
|
75
|
+
on norm blowup / edit cap) and `record_edit()` runs AFTER with the measured
|
|
76
|
+
Frobenius delta.
|
|
77
|
+
- **Live GRACE codebook** (#203). `GraceCodebook` (epsilon-ball nearest-key
|
|
78
|
+
lookup), `apply_grace_edit` (captures a residual key + optimises a value +
|
|
79
|
+
appends to a codebook sidecar), `save_codebook` / `load_codebook` (atomic,
|
|
80
|
+
cwd-contained, symlink-rejected), `install_grace_hook` (decode-time residual
|
|
81
|
+
substitution). New `edited_model` / `grace_codebook` Registry artifact kinds.
|
|
82
|
+
- **`soup train --task unlearn` is live (NPO / SimNPO / RMU)** (#193). New
|
|
83
|
+
`soup_cli/utils/unlearn_kernels.py` (NPO `(2/β)·mean(-logσ(-β(πlp-reflp)))`,
|
|
84
|
+
length-normalised SimNPO, RMU representation steering) + a self-contained
|
|
85
|
+
`UnlearnTrainerWrapper` loop loading a LoRA policy, a frozen reference
|
|
86
|
+
(NPO/RMU), and forget/retain JSONL datasets. NPO/SimNPO forget loss
|
|
87
|
+
decreased on the tiny-model smoke. Warns when run without a retain set.
|
|
88
|
+
|
|
89
|
+
### Security
|
|
90
|
+
- `_save_edited_model` / `UnlearnTrainerWrapper` output dirs + `save_codebook`
|
|
91
|
+
/ `load_codebook` + `_load_unlearn_rows` enforce cwd-containment, raw-path
|
|
92
|
+
symlink rejection (TOCTOU), null-byte rejection, and file-size / per-line
|
|
93
|
+
caps. `apply_grace_edit` honours the governor for direct callers.
|
|
94
|
+
|
|
15
95
|
## [0.71.8] - 2026-06-03
|
|
16
96
|
|
|
17
97
|
### 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 (280 files, 13142 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.10
|
|
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,20 +183,21 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
183
183
|
|
|
184
184
|
## What's New
|
|
185
185
|
|
|
186
|
-
**v0.71.
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- **`
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
- **`soup
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
-
|
|
197
|
-
|
|
198
|
-
- **`soup
|
|
199
|
-
|
|
186
|
+
**v0.71.10 — RAG family (live).** The retrieval-augmented fine-tuning, steering, and citation
|
|
187
|
+
surfaces are now real, validated on SmolLM2-135M:
|
|
188
|
+
|
|
189
|
+
- **`data.format: raft`** — RAFT (retrieval-augmented fine-tuning): train on a query + golden
|
|
190
|
+
document mixed with distractors, answer-only loss, each doc labelled `[doc-N]` so the model
|
|
191
|
+
learns to cite the supporting source and ignore noise.
|
|
192
|
+
- **`soup ra-dit`** — one-shot two-stage orchestrator: trains the retriever then the generator
|
|
193
|
+
and records the trained retriever as the generator's paired retriever. A `soup train` of a
|
|
194
|
+
generator stage auto-links the latest RA-DIT retriever from the Registry.
|
|
195
|
+
- **`soup steer train --method caa|iti|repe` + `soup serve --steer <name>`** — fit a
|
|
196
|
+
contrastive-activation / inference-time-intervention / representation-engineering control
|
|
197
|
+
vector from `{positive, negative}` pairs and apply it at decode time via a forward hook.
|
|
198
|
+
- **`soup eval citation`** — score citation precision / recall / F1 over predictions or RAFT
|
|
199
|
+
rows; with `citation_faithful: true`, `[doc-id]` spans get a boosted per-token loss weight.
|
|
200
|
+
A new `citation` failure mode joins `soup diagnose`.
|
|
200
201
|
|
|
201
202
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
202
203
|
|
|
@@ -49,20 +49,21 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
49
49
|
|
|
50
50
|
## What's New
|
|
51
51
|
|
|
52
|
-
**v0.71.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **`
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- **`soup
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
- **`soup
|
|
65
|
-
|
|
52
|
+
**v0.71.10 — RAG family (live).** The retrieval-augmented fine-tuning, steering, and citation
|
|
53
|
+
surfaces are now real, validated on SmolLM2-135M:
|
|
54
|
+
|
|
55
|
+
- **`data.format: raft`** — RAFT (retrieval-augmented fine-tuning): train on a query + golden
|
|
56
|
+
document mixed with distractors, answer-only loss, each doc labelled `[doc-N]` so the model
|
|
57
|
+
learns to cite the supporting source and ignore noise.
|
|
58
|
+
- **`soup ra-dit`** — one-shot two-stage orchestrator: trains the retriever then the generator
|
|
59
|
+
and records the trained retriever as the generator's paired retriever. A `soup train` of a
|
|
60
|
+
generator stage auto-links the latest RA-DIT retriever from the Registry.
|
|
61
|
+
- **`soup steer train --method caa|iti|repe` + `soup serve --steer <name>`** — fit a
|
|
62
|
+
contrastive-activation / inference-time-intervention / representation-engineering control
|
|
63
|
+
vector from `{positive, negative}` pairs and apply it at decode time via a forward hook.
|
|
64
|
+
- **`soup eval citation`** — score citation precision / recall / F1 over predictions or RAFT
|
|
65
|
+
rows; with `citation_faithful: true`, `[doc-id]` spans get a boosted per-token loss weight.
|
|
66
|
+
A new `citation` failure mode joins `soup diagnose`.
|
|
66
67
|
|
|
67
68
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
68
69
|
|
|
@@ -139,21 +139,26 @@ State lives in `.soup/loop.yaml` (atomic write, cwd-contained, symlink-rejected)
|
|
|
139
139
|
Surgical factual patches WITHOUT a full fine-tuning loop. Hospital data team correcting a misattributed drug interaction, lab fixing a wrong historical date, security team responding to a hallucinated CVE — all one CLI invocation.
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
|
-
#
|
|
142
|
+
# Live edit: optimises a residual + applies a rank-1 weight update, then saves.
|
|
143
143
|
soup edit set \
|
|
144
|
-
--base
|
|
144
|
+
--base HuggingFaceTB/SmolLM2-135M \
|
|
145
145
|
--method rome \
|
|
146
|
-
--subject "
|
|
146
|
+
--subject "The capital of France is" \
|
|
147
147
|
--target "Lyon" \
|
|
148
|
-
--
|
|
148
|
+
--output ./edited --device cuda
|
|
149
|
+
|
|
150
|
+
# Plan-only mode validates the request + prints the resolved EditPlan + exits 0.
|
|
151
|
+
soup edit set --base ./model --method rome --subject "..." --target "..." --plan-only
|
|
149
152
|
|
|
150
|
-
# Diff what the model
|
|
151
|
-
soup edit diff
|
|
153
|
+
# Diff what the model says before vs after the edit (live generation).
|
|
154
|
+
soup edit diff before after \
|
|
155
|
+
--before-model ./base --after-model ./edited \
|
|
156
|
+
--probes probes.jsonl --output diff.json
|
|
152
157
|
```
|
|
153
158
|
|
|
154
|
-
|
|
159
|
+
The kernels are a covariance-free (`C = I`) variant of the ROME family — well-defined, tractable on a 4 GB box, and validated on SmolLM2-135M (a ROME edit moved `P("Lyon" | "The capital of France is")` from 0.0016 → 0.96). **ROME** edits a single layer; **MEMIT** distributes the residual across a layer band; **AlphaEdit** projects the update orthogonal to the down-proj's top singular direction.
|
|
155
160
|
|
|
156
|
-
The
|
|
161
|
+
The sequential edit governor is persisted (SQLite, cross-process-locked, `SOUP_EDIT_GOVERNOR_DB` override) so the per-base-model edit count + norm-blowup verdict survive across separate `soup edit set` runs. `soup edit set` consults it automatically: it refuses BEFORE the model load past the per-base cap or after a BLOWUP verdict, and records the measured `||ΔW||_F` after each edit. Pass `--no-governor` to opt out. `--registry-id <id>` attaches the edited model (or GRACE codebook) into the Registry lineage.
|
|
157
162
|
|
|
158
163
|
|
|
159
164
|
## Activation Steering (`soup steer`)
|
|
@@ -179,6 +184,8 @@ soup steer list
|
|
|
179
184
|
|
|
180
185
|
Steering names are validated against a strict regex (`^[A-Za-z0-9][A-Za-z0-9._\-]{0,127}$` — no path separators, no shell metacharacters); strength is bounded `|s| <= 10.0`. The trained vectors land in the Soup Registry under the `steering_vector` artifact kind so lineage is preserved.
|
|
181
186
|
|
|
187
|
+
As of v0.71.10 the fit and the decode hook are **live** (validated on SmolLM2-135M): `soup steer train` captures residual-stream activations (CAA / RepE) or per-head `o_proj`-input activations (ITI) on the contrastive pairs, computes the control vector, and persists `steering_vector.safetensors` + `steering_config.json`. `soup serve --steer <name>` installs a forward hook on the loaded model that adds `strength × vector` at decode time (transformers backend; `--steer` is rejected with a clear error on vLLM/SGLang). RepE / ITI need at least two contrastive pairs; CAA works from one.
|
|
188
|
+
|
|
182
189
|
|
|
183
190
|
## GRACE Codebook — Lifelong Knowledge Edits
|
|
184
191
|
|
|
@@ -197,7 +204,7 @@ training:
|
|
|
197
204
|
grace_codebook_dim: 768 # residual-stream width
|
|
198
205
|
```
|
|
199
206
|
|
|
200
|
-
`grace` joins the existing `rome` / `memit` / `alphaedit` allowlist on `soup edit set`; the
|
|
207
|
+
`grace` joins the existing `rome` / `memit` / `alphaedit` allowlist on `soup edit set`; the sequential edit governor still gates the call when the per-base-model edit count or norm-blowup verdict trips. GRACE is live: `soup edit set --method grace --output ./ckpt` captures the residual key at the subject's last token, optimises a replacement value, and appends a `(key, value)` triple to a `grace_codebook.json` sidecar (atomic, cwd-contained). At inference the codebook is applied via a forward hook that substitutes the residual whenever it falls within an epsilon ball of a stored key — so the base weights are never modified and thousands of edits survive without norm blowup.
|
|
201
208
|
|
|
202
209
|
|
|
203
210
|
## Model Registry & Lineage
|
|
@@ -168,8 +168,15 @@ soup can pack --entry-id <id> --out r.can --attest <statement.json> Embed in-to
|
|
|
168
168
|
soup audit-log tail / rotate Tail / rotate the per-command HIPAA/SOC2 audit log (~/.soup/audit.jsonl)
|
|
169
169
|
soup --no-audit-log <cmd> / SOUP_NO_AUDIT_LOG=1 Opt out of the per-command audit line
|
|
170
170
|
soup eval unlearning <run-id> --benchmark tofu|muse|wmdp Forget Quality + Model Utility + PrivLeak verdict
|
|
171
|
-
soup edit set --base <m> --method rome|memit|alphaedit --subject "..." --target "..."
|
|
172
|
-
soup edit diff <before-run> <after-run> --probes p.jsonl Knowledge-injection diff
|
|
171
|
+
soup edit set --base <m> --method rome|memit|alphaedit|grace --subject "..." --target "..." [--output <dir>] [--device cpu] [--governor/--no-governor] [--registry-id <id>] Live surgical knowledge edit (--plan-only available)
|
|
172
|
+
soup edit diff <before-run> <after-run> --probes p.jsonl [--before-model <m> --after-model <m>] Knowledge-injection diff (live before/after generation when both models given)
|
|
173
|
+
soup train --task unlearn NPO/SimNPO/RMU unlearning from data.forget_set (+ optional data.retain_set)
|
|
174
|
+
soup train # data.format='raft' Answer-only span-mask RAFT training (golden+distractor docs, [doc-N] citations); generator-stage configs auto-link the latest RA-DIT retriever
|
|
175
|
+
soup ra-dit --retriever-config <r.yaml> --generator-config <g.yaml> [--retriever-model <m>] [--plan-only] One-shot two-stage RA-DIT: train retriever → record pairing → train generator
|
|
176
|
+
soup eval citation <data> [--style bracket|inline|footnote] [--shuffle-seed N] [--output o.json] Citation precision/recall/F1 over predictions or RAFT rows
|
|
177
|
+
soup steer train --base <m> --method caa|iti|repe --name <id> --pairs <jsonl> Fit a CAA/ITI/RepE activation-steering vector from {positive, negative} pairs
|
|
178
|
+
soup steer apply --name <id> --strength <s> Preview a stored steering vector; soup steer list lists them
|
|
179
|
+
soup serve --steer <name> [--steer-strength <s>] Apply a steering vector at decode time via a forward hook (transformers backend)
|
|
173
180
|
soup ingest --source langfuse|langsmith|helicone|openpipe|otel|openai-stored --logs <jsonl> Universal trace importer (6 SaaS adapters → normalised JSONL)
|
|
174
181
|
soup prune-prompt --input <jsonl> --output <jsonl> --min-frequency 0.95 Detect + strip shared system-prompt prefix
|
|
175
182
|
soup prune-prompt ... --tokenizer <id-or-path> Tokenizer-aware prefix detection (decodes remaining ids, boundary-safe)
|
|
@@ -253,7 +253,7 @@ Default threshold 0.2 matches v0.43.0 KL-delta quant-check thresholds. Webhooks
|
|
|
253
253
|
|
|
254
254
|
## Diagnose (Post-Training Report Card)
|
|
255
255
|
|
|
256
|
-
`soup diagnose` scores
|
|
256
|
+
`soup diagnose` scores seven independent failure modes for a trained adapter and renders an OK / MINOR / MAJOR verdict per mode plus an overall headline — same taxonomy as Quant-Lobotomy. Useful for catching adapter regressions that a loss curve cannot distinguish from a healthy run.
|
|
257
257
|
|
|
258
258
|
```bash
|
|
259
259
|
# Neutral report (no model load — runs as a sanity check)
|
|
@@ -279,7 +279,7 @@ soup diagnose my-run-id --output diag.json --attach-to-registry abc123
|
|
|
279
279
|
a built-in probe set; `format` only fires when the dataset's own targets look like JSON;
|
|
280
280
|
`contamination` stays neutral unless a benchmark corpus is supplied. Validated on SmolLM2-135M.
|
|
281
281
|
|
|
282
|
-
**
|
|
282
|
+
**Seven failure-mode probes:**
|
|
283
283
|
|
|
284
284
|
| Mode | What it catches | Score range |
|
|
285
285
|
|------|-----------------|-------------|
|
|
@@ -289,6 +289,7 @@ a built-in probe set; `format` only fires when the dataset's own targets look li
|
|
|
289
289
|
| `mode_collapse` | Diversity collapse at T=0 and T=1 | pairwise n-gram Jaccard distance |
|
|
290
290
|
| `memorization` | Verbatim training-prefix echo on partial prompts | 1 − echo_rate |
|
|
291
291
|
| `contamination` | Training data overlapping public benchmarks | 1 − contamination_rate |
|
|
292
|
+
| `citation` | RAFT model stopped citing the supporting `[doc-N]` (v0.71.10) | fraction of answers citing the golden doc |
|
|
292
293
|
|
|
293
294
|
**Verdict pill colours:** OK (≥ 0.85) green / MINOR (≥ 0.60) amber / MAJOR (< 0.60) red. `soup diagnose` exits 2 when the overall verdict is MAJOR — wire into CI to fail the build on regression.
|
|
294
295
|
|
|
@@ -101,22 +101,27 @@ GDPR right-to-be-forgotten + CSAM/PII leak response, productized. Three method b
|
|
|
101
101
|
|
|
102
102
|
```yaml
|
|
103
103
|
# unlearn.yaml
|
|
104
|
-
base:
|
|
104
|
+
base: HuggingFaceTB/SmolLM2-135M
|
|
105
105
|
task: unlearn
|
|
106
106
|
data:
|
|
107
107
|
train: traces.jsonl
|
|
108
|
-
forget_set: gdpr_deletion_set.jsonl
|
|
109
|
-
retain_set: capability_anchors.jsonl
|
|
108
|
+
forget_set: gdpr_deletion_set.jsonl # rows to unlearn (messages / prompt+completion / text)
|
|
109
|
+
retain_set: capability_anchors.jsonl # optional — anchors general capability
|
|
110
110
|
training:
|
|
111
111
|
unlearn_method: npo # or simnpo / rmu
|
|
112
112
|
unlearn_alpha: 0.5 # retain-set weighting [0.0, 10.0]
|
|
113
113
|
```
|
|
114
114
|
|
|
115
115
|
```bash
|
|
116
|
+
# Run the unlearn loop (validated on SmolLM2-135M — NPO/SimNPO drive forget loss down).
|
|
117
|
+
soup train --config unlearn.yaml --yes
|
|
118
|
+
|
|
116
119
|
# Score the run on TOFU / MUSE / WMDP (OK / MINOR / MAJOR verdict).
|
|
117
120
|
soup eval unlearning <run-id> --benchmark tofu --evidence evidence.json --output report.json
|
|
118
121
|
```
|
|
119
122
|
|
|
123
|
+
`soup train --task unlearn` is live (v0.71.9): it loads a LoRA-wrapped policy, a frozen reference copy (NPO / RMU), and the forget / retain JSONL sets, then optimises the per-method loss — NPO's `(2/β)·mean(-logσ(-β·(π_logp − ref_logp)))` drives the policy's forget-set log-prob below the reference (= forgetting), while the retain set anchors capability. Run NPO/SimNPO **with** a `retain_set` — without one the policy has no utility anchor and Soup warns loudly.
|
|
124
|
+
|
|
120
125
|
Three orthogonal axes: **Forget Quality** (pre/post forget-loss delta), **Model Utility** (retain-accuracy preserved), **PrivLeak** (membership-inference AUC distance from 0.5). Bundled mini-fixtures for all three benchmarks ship in the box (v0.71.1 added MUSE + WMDP alongside the existing TOFU set), so `--benchmark muse|wmdp` runs without supplying evidence. The WMDP forget-set probes ship **redacted** (placeholder prompts + `REFUSED` responses) — Soup never bundles verbatim hazardous-knowledge content.
|
|
121
126
|
|
|
122
127
|
|
|
@@ -881,6 +886,19 @@ score = score_citations(
|
|
|
881
886
|
|
|
882
887
|
Citation-faithful FT is gated to `task in {sft, pretrain}` + `data.format='raft'` — misconfigured runs fail at config load with a named-field message.
|
|
883
888
|
|
|
889
|
+
Under the hood, a `format: raft` run trains **answer-only**: each row is composed into a prompt (golden + distractor docs, shuffled deterministically by `data.raft_shuffle_seed`, each labelled `[doc-N]`) followed by the answer; the prompt span is masked out of the loss and — when `citation_faithful: true` — the bracketed `[doc-id]` spans in the answer get a boosted per-token loss weight. Rows whose prompt fills `max_length` (answer fully truncated) are dropped with a warning rather than silently shrinking the dataset.
|
|
890
|
+
|
|
891
|
+
Score a trained model's citations from the CLI:
|
|
892
|
+
|
|
893
|
+
```bash
|
|
894
|
+
# {predicted, expected_ids} rows, OR RAFT rows scored against their own golden [doc-N]
|
|
895
|
+
soup eval citation preds.jsonl --style bracket
|
|
896
|
+
# RAFT rows: pass the train-time shuffle seed so the golden id lines up
|
|
897
|
+
soup eval citation raft.jsonl --shuffle-seed 0 --output citation.json
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
`soup diagnose` also gains a `citation` failure mode that flags a model that stopped citing the supporting document.
|
|
901
|
+
|
|
884
902
|
|
|
885
903
|
## RA-DIT — Retrieval-Augmented Dual Instruction Tuning
|
|
886
904
|
|
|
@@ -898,6 +916,16 @@ soup train
|
|
|
898
916
|
|
|
899
917
|
The schema enforces stage-task pairing — `ra_dit_stage: retriever` requires `task: embedding`; `ra_dit_stage: generator` requires `task: sft`. A misconfigured recipe fails at config load with a named-field message.
|
|
900
918
|
|
|
919
|
+
Run both stages in one command with `soup ra-dit`:
|
|
920
|
+
|
|
921
|
+
```bash
|
|
922
|
+
soup ra-dit --retriever-config retriever.yaml --generator-config generator.yaml
|
|
923
|
+
# preview the plan + the resolved retriever link without training:
|
|
924
|
+
soup ra-dit -r retriever.yaml -g generator.yaml --plan-only
|
|
925
|
+
```
|
|
926
|
+
|
|
927
|
+
It trains the retriever, then **records** that trained retriever as the generator's paired retriever (writing its output dir into the generator's `training.ra_dit_retriever_model`) and trains the generator RAFT-style. The recorded retriever is the one used at deploy/serve time — stage-2 does not fuse the retriever weights. A plain `soup train` of a generator-stage config with no retriever model set **auto-links** the most-recent RA-DIT retriever run from the Registry; pass `--retriever-model <m>` to override.
|
|
928
|
+
|
|
901
929
|
|
|
902
930
|
## Curriculum-Aware Training (BETA)
|
|
903
931
|
|
|
@@ -484,6 +484,15 @@ app.add_typer(
|
|
|
484
484
|
help="Iterative DPO loop driver (v0.70.0 Part E).",
|
|
485
485
|
)
|
|
486
486
|
|
|
487
|
+
# v0.71.10 #200 — `soup ra-dit` (two-stage RA-DIT orchestrator).
|
|
488
|
+
from soup_cli.commands import ra_dit as _ra_dit_cmd # noqa: E402
|
|
489
|
+
|
|
490
|
+
app.add_typer(
|
|
491
|
+
_ra_dit_cmd.app,
|
|
492
|
+
name="ra-dit",
|
|
493
|
+
help="RA-DIT two-stage orchestrator: retriever -> generator (v0.71.10).",
|
|
494
|
+
)
|
|
495
|
+
|
|
487
496
|
|
|
488
497
|
def _rewrite_advise_argv(argv: list) -> list:
|
|
489
498
|
"""Inject `run` between `advise` and a non-subcommand first argument.
|