soup-cli 0.71.30__tar.gz → 0.71.31__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.30 → soup_cli-0.71.31}/.gitignore +4 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/CHANGELOG.md +32 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/CONTRIBUTING.md +5 -6
- {soup_cli-0.71.30 → soup_cli-0.71.31}/PKG-INFO +21 -19
- {soup_cli-0.71.30 → soup_cli-0.71.31}/README.md +20 -18
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/commands.md +4 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/data.md +9 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/evaluation.md +5 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/serving-and-export.md +2 -2
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/training.md +28 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/pyproject.toml +1 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/__init__.py +1 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/data.py +328 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/ship.py +32 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/train.py +4 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/config/schema.py +88 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/judge.py +234 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/recipes/catalog.py +36 -0
- soup_cli-0.71.31/src/soup_cli/trainer/online_dpo.py +432 -0
- soup_cli-0.71.31/src/soup_cli/utils/best_of_n.py +113 -0
- soup_cli-0.71.31/src/soup_cli/utils/evolve.py +120 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ship_verdict.py +3 -4
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_recipes.py +3 -2
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07124.py +2 -2
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07125.py +8 -5
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07128.py +2 -1
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07130.py +2 -2
- soup_cli-0.71.31/tests/test_v07131.py +1207 -0
- soup_cli-0.71.30/docs/superpowers/plans/2026-07-05-prm-guided-grpo.md +0 -133
- soup_cli-0.71.30/docs/superpowers/plans/2026-07-05-soup-shrink-depth-prune.md +0 -607
- soup_cli-0.71.30/docs/superpowers/specs/2026-07-05-prm-guided-grpo-design.md +0 -152
- soup_cli-0.71.30/docs/superpowers/specs/2026-07-05-soup-shrink-depth-prune-design.md +0 -218
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.dockerignore +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/FUNDING.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/pull_request_template.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/workflows/ci.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/workflows/docker.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/workflows/publish.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.github/workflows/recipe-validation.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.mailmap +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/.pre-commit-config.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/AGENTS.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/CODEOWNERS +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/CODE_OF_CONDUCT.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/CONTRIBUTORS.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/Dockerfile +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/LICENSE +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/NOTICE +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/SECURITY.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docker-compose.yml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/README.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/adapters-and-governance.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/backends-and-ops.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/models.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/peft-and-efficiency.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/docs/performance-and-quantization.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/README.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/dpo_chat.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/dpo_example.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/grpo_reasoning.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/rlhf_step1_sft.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/rlhf_step2_reward.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/rlhf_step3_ppo.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/sft_basic.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/configs/vision_llama.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/data/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/data/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/data/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/data/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/reward_hacking/rewards.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/synthetic_workflow.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/examples/synthetic_workflow.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/soup.png +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/soup_logo_svg.svg +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/__main__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/autopilot/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/autopilot/analyzer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/autopilot/decisions.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/autopilot/generate_config.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/pack.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/publish.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/run.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/schema.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/unpack.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cans/verify.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cli.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cloud/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/cloud/modal.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/_eval_v0550.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/_eval_v0610.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/_eval_v0650.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/_eval_v07110.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/_webhook_cli.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/ab.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/active_sample.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/adapters.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/advise.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/agent.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/airgap.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/apple_adapter.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/attest.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/audit_log.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/autopilot.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/bench.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/bom.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/build.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/can.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/chat.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/compile_cmd.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/compile_tools.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/completions.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/cost.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/data_doctor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/data_forge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/data_mix.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/data_score.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/delinearize_llama4.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/deploy.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/diagnose.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/distill_prompt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/doctor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/drift_alarm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/edit.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/env.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/eval.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/expect.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/export.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/fetch.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/generate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/history.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/infer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/ingest.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/init.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/iterative_dpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/license_advisor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/llama.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/local_rl.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/lock.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/loop.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/mcp.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/merge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/migrate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/monitor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/plan.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/plugins.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/profile.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/prune_prompt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/push.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/quantize.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/quickstart.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/ra_dit.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/recipes.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/registry.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/runs.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/serve.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/shrink.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/spectrum.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/steer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/sweep.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/tokenizer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/tui.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/tunability.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/ui.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/commands/why.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/config/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/config/loader.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/augment.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/chat_templates.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/collators.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/formats.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/loader.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/loss_mask.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/providers/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/providers/_utils.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/providers/anthropic.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/providers/ollama.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/providers/vllm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/sft_format.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/code.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/conversation.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/preference.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/qa.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/reasoning.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/tool_calling.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/templates/verifiable.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/traces/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/traces/pair_builder.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/traces/parsers.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/traces/quality.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/data/validator.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/envs/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/envs/_common.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/envs/calculator.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/envs/guess_number.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/envs/retrieval_qa.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/arena.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/calibrate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/custom.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/forgetting.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/gate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/human.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/leaderboard.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/eval/quant_check.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/experiment/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/experiment/tracker.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/mcp_server/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/mcp_server/registry.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/mcp_server/server.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/migrate/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/migrate/axolotl.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/migrate/common.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/migrate/llamafactory.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/migrate/unsloth.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/callback.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/display.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/hf_push.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/plugin_callback.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/monitoring/trace_logger.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/plugins/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/py.typed +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/recipes/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/registry/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/registry/attach.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/registry/diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/registry/hashing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/registry/store.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/audio.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/bco.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/chat.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/code.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/embedding.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/ipo.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/kto.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/longcontext.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/manifest.json +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/medical.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/moe.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/orpo.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/pretrain.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/reasoning.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/rlhf.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/simpo.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/tool-calling.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/templates/vision.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/bco.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/bitnet.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/classifier.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/distill.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/dpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/embedding.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/grpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/ipo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/kto.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/mlx_dpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/mlx_grpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/mlx_routing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/mlx_sft.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/mole_routing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/orpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/ppo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/preference.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/pretrain.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/prm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/raft.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/reward_model.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/rewards.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/sft.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/simpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/tts.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/trainer/unlearn.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/tui_app.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/app.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/plugins/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/static/app.js +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/static/index.html +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/static/logo.png +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/static/logo.svg +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/ui/static/style.css +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/_eval_text.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ab_test.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/activation_offload.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/active_sampler.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_bisect.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_branch.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_merge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_pr.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_scan.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/adapter_sign.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/advanced_precision.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/advise.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/advise_history.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/agent_forge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/agent_rollout.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/agent_sandbox.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/airgap_bundle.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/annex_xi.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/anthropic_messages.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/apple_adapter.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/attest.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/audit_log.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/auto_quant.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/backend_detect.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/batch_probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/behavior_battery.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/bitnet.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/blame.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/block_expansion.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/bom.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/brain_rot.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/brain_rot_lang.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/build_dag.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/canary_discovery.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/canary_router.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/capability_suite.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/checklist_dsl.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/citation_faithful.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/classifier.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/cmaes_merge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/compile_tools.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/completions.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/constants.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/convergence.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/crash.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/cross_doc_attn.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/curriculum.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/cut_ce.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_doctor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_forge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_lint.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_mix.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_pipeline.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/data_score.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/deepspeed.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/delinearize_llama4.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/demo_bundles.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/deploy_autopilot.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/deploy_measure.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/_common.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/badge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/citation.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/contamination.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/format.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/live.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/memorization.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/refusal.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/report.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/diagnose/runner.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/distill.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/dpo_variants.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/drift_alarm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ebft_gdpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/echo_trap.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/edit_diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/edit_governor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/edit_kernels.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/encoding.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/energy.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/env_lock.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/errors.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/eval_design.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/eval_gate_hook.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/expectations.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/fetch_examples.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/flash_attn.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/fp8.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/freeze.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/fsdp.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/galore.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/gguf_quant.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/gpu.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/gpu_monitor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/grace_codebook.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/graceful_save.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/grad_accum.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/gradient_ckpt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/grpo_long_context.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/grpo_variants.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/hardware_fit.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/harm_probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/hf.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/hf_space.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/hubs.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ingest_sources.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/integrations.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/interference.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/interference_live.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/irt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/iterative_dpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/jinja_analyzer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/kernel_picker.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/knowledge_edit.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/kv_cache.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/launcher.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/license_advisor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/license_matrix.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/liger.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/live_eval.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/llama_proxy.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/llama_server_timings.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/local_rl.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/local_rl_scheduler.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loftq_init.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/log_level.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/long_context.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/longlora.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loop_budget.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loop_daemon.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loop_iteration.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loop_stages.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/loop_state.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/lr_finder.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/lr_groups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/magpie.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/metrics.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mii.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/minillm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mix_proxy.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mixed_precision.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mlx.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mod.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/moe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/moe_quant.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/mole_routing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/multipack.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/multipack_sampler.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/multipack_trainer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/namespace_pin.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/neat_packing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ngram_spec.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/nlg_metrics.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ollama.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/onboarding.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/optimizer_zoo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/paths.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/peft_builder.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/peft_patches.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/peft_wiring.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/persona_hub.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/pipeline.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/preference_combine.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/prm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/prm_reward.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/probe_kernel.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/probe_pack.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/profiler.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/profiling.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/profiling_v0_43.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/prompt_compile.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/prompt_distill.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/prune_prompt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/qat.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/qr_url.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/quality.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/quant_menu.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ra_dit.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ra_dit_run.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/raft.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/reasoning_effort.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/reasoning_parser.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/recipe_dag.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/recipe_run.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/registry.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/relora.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/replay.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/repro_receipt.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/reward_hack_control.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/reward_hacking.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ring_attention.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/rl_checkpoint.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/rl_signal_buffer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/run_cost.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/sae_diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/save_formats.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/server_tools.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/sglang.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/shortcuts.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/shrink.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/signing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/sleeper_probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/soup_lock.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/spec_pairing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/spectrum_scan.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/spike_recovery.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/sse_train_stream.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/steering.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/strict_safetensors.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/structured_output.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/sweep_config.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tail_latency.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/terraform_plan.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tool_outputs.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/topology.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tracing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/trackers.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/train_event_buffer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/trainer_plugins.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/trust_remote.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/truth_probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tts.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tts_codec.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/tunability.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/ui_env.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/uld.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/unlearn_kernels.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/unlearning.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/unlearning_eval.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/unsloth.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/v028_features.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/vector_bank.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/vllm.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/vscode_setup.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/warmup.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/webhooks.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/src/soup_cli/utils/why.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/templates/chat.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/templates/code.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/templates/medical.yaml +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/__init__.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/conftest.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/qa/v053_qa.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/qa/v07114_qa.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/qa/v0716_qa.md +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_adapters.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_advanced_peft.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_assistant_mask.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_audio.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_auto_tuning.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_autopilot.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_awq_gptq_export.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_batch_probe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_bco.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_bench.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_brain_rot_multilingual.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_bugfixes.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_build_dag.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_callback.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_cans.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_chat.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_chat_template.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_cli.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_cli_subprocess.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_code_review_critical.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_code_review_deferred.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_code_review_high.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_code_review_medium_low.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_code_review_recurring.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_config.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_cost.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_crash_reporter.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_curriculum.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_data.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_data_augment.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_data_sample.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_data_split.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_data_tools.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_dataset_hub.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_dataset_registry.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_deepspeed.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_deploy_ollama.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_diff.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_display.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_doctor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_dpo_example.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_dpo_variants.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_embedding.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_errors.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_eval.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_eval_gate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_eval_platform.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_export.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_formats.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_fp8_recipe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_freeze_training.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_generate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_gpu.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_grpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_hf_integration.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_infer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_inference_advanced.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_init.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ipo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_jinja_analyzer.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_kto.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_loader.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_log_level.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_loss_watchdog.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_merge.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_migrate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_mlx_backend.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_moe.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_multi_adapter.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_multi_gpu.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_multipack_config.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_multipack_invariants.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_multipack_sampler.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_neat_packing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_neftune_rslora.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_onnx_tensorrt_export.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_orpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_packing.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_a_wave1.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_a_wave2.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_part_f_hardening.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_peft_methods.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_peft_patches.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_performance.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_pissa_init.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ppo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_preference_dispatcher.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_preference_multi.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_preference_multi_runtime.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_pretrain.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_profile.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_profiling.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_progress.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_push.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_qat.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_quality_filter.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_quant_check.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_quant_menu.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_quickstart.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_rank_pattern.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_recipes_v031.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_refusal_multilingual.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_registry.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_relora.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_replay.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_resume.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_rlvr.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_run_cost.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_runs.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_serve.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_server_generate.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_sglang_serve.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_simpo.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_smoke_train.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_speculative_decoding.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_sweep.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_synth_data_pro.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_templates_yaml.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_tensorboard.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_tool_calling.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_trace_to_pref.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_tracker.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_trainer_coverage_v035.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_trainer_init.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_training_intelligence.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_training_speed.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_trust_remote_code.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_tui.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ui.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ui_chat.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ui_config_builder.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ui_live_monitor.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_ui_metrics.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_unsloth.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0401_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0401_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0401_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0402_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0402_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0403_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0403_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0403_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0404_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0404_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0405_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0406_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0410_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0410_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0410_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0420.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0430_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0430_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0430_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0430_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0440_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0440_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0440_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0440_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0440_review_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0450.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0460_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0460_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0470_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0470_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0480_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0480_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0490.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0500_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0500_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0500_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0500_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0500_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0510.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0520.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0530.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v05310.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v05311.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0531_109.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0531_139.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0531_142.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0531_82.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0532.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0533.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0534.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0535.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0536.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0537.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0538.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0539.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0540.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0550.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0550_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0560.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0570_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0570_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0570_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0570_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0580.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0590.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0600_part_f.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0610_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0610_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0610_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0610_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0610_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0620_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0630_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0631_206.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0640_part_f.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0650_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_cli.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0660_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0670_part_f.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_followups.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0680_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0690_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0690_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0690_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0690_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0690_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_a.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_b.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_c.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_d.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_e.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0700_part_f.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07110.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07111.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07112.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07113.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07114.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07115.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07116.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07117.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07118.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07119.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0712.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07120.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07121.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07122.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07123.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07126.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07127.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v07129.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0713.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0714.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0715.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0716.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0717.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0718.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_v0719.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_validator.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_vision.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_vllm_serve.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_warmup.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_why.py +0 -0
- {soup_cli-0.71.30 → soup_cli-0.71.31}/tests/test_windows_encoding.py +0 -0
|
@@ -40,9 +40,12 @@ report.xml
|
|
|
40
40
|
.env
|
|
41
41
|
*.key
|
|
42
42
|
|
|
43
|
-
# Internal plan +
|
|
43
|
+
# Internal plan + local dev instructions (not for repo)
|
|
44
44
|
.claude/
|
|
45
45
|
.coverage
|
|
46
46
|
|
|
47
|
+
# Internal brainstorming plans + design specs (local-only, not for repo)
|
|
48
|
+
docs/superpowers/
|
|
49
|
+
|
|
47
50
|
# Local scratch / temp scripts at repo root (e.g. _smoke.py, _scratch.py) — never committed
|
|
48
51
|
/_*.py
|
|
@@ -12,6 +12,38 @@ reproducing 70+ versions of notes.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.71.31] - 2026-07-06
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **Judge-in-the-loop suite** — put an LLM judge in the loop across the workflow:
|
|
19
|
+
- **`task='online_dpo'`** — Online DPO training (wraps TRL `OnlineDPOTrainer`):
|
|
20
|
+
the model generates two completions per prompt on-policy each step and a
|
|
21
|
+
*judge* (a pairwise LLM judge over the existing ollama/openai-compatible
|
|
22
|
+
backend) OR a `reward_model` picks the winner. Config:
|
|
23
|
+
`training.online_dpo_judge: "ollama://model"` (or set `reward_model` —
|
|
24
|
+
exactly one), `online_dpo_loss_type: sigmoid|ipo`, `online_dpo_max_new_tokens`;
|
|
25
|
+
`beta` reuses `dpo_beta`. Transformers + text only. Recipe:
|
|
26
|
+
`online-dpo-smollm2-135m`. Adapts to the installed TRL: on trl 0.19.x the
|
|
27
|
+
judge is a swap-debiased *pairwise* comparison; on trl 1.x (which removed
|
|
28
|
+
pairwise judges) the same `JudgeEvaluator` is used as a *pointwise*
|
|
29
|
+
reward function — a documented per-version behaviour difference.
|
|
30
|
+
- **`soup data best-of-n`** — Best-of-N rejection sampling (BOND-lite): sample
|
|
31
|
+
N completions from `--base` locally, a `--judge` scores each pointwise, and
|
|
32
|
+
the winner is written as an SFT chat row (with provenance). `--emit-pairs`
|
|
33
|
+
also writes winner-vs-loser DPO pairs.
|
|
34
|
+
- **`soup data evolve`** — Evol-Instruct instruction evolution (WizardLM depth
|
|
35
|
+
/ breadth) over an ollama/vllm provider, completing the synthetic-data suite
|
|
36
|
+
(Magpie / Forge / Persona / evolve).
|
|
37
|
+
- **`soup ship --task-mode pairwise`** — a true pairwise judge win-rate as the
|
|
38
|
+
ship leg-1 task-win (base = 0.5 coin-flip, tuned = its win-rate; swap-debiased),
|
|
39
|
+
fusing with the catastrophic-forgetting guard into one SHIP / DON'T-SHIP verdict.
|
|
40
|
+
|
|
41
|
+
### Security
|
|
42
|
+
- `soup data best-of-n` / `evolve` write outputs via atomic `mkstemp` + `os.replace`
|
|
43
|
+
(re-validated cwd containment), closing the TOCTOU symlink-swap window between the
|
|
44
|
+
containment check and the write. All judge/provider URLs are SSRF-validated; model
|
|
45
|
+
loads probe `trust_remote_code`.
|
|
46
|
+
|
|
15
47
|
## [0.71.30] - 2026-07-05
|
|
16
48
|
|
|
17
49
|
### Added
|
|
@@ -110,17 +110,17 @@ src/soup_cli/
|
|
|
110
110
|
experiment/ - SQLite experiment tracking
|
|
111
111
|
eval/ - Eval platform (custom tasks, LLM judge, human eval, leaderboard)
|
|
112
112
|
migrate/ - Config migration (LLaMA-Factory, Axolotl, Unsloth)
|
|
113
|
-
recipes/ - Ready-made configs for popular models (
|
|
113
|
+
recipes/ - Ready-made configs for popular models (138 recipes)
|
|
114
114
|
autopilot/ - Zero-config decision engine (v0.25.0)
|
|
115
115
|
registry/ - Model Registry (hashing, store, diff, attach) (v0.26.0 + v0.33.0)
|
|
116
116
|
cans/ - Shareable .can artifact format + run/publish orchestrator (v0.26.0 + v0.33.0)
|
|
117
117
|
data/traces/ - Trace-to-Preference harvester (v0.26.0)
|
|
118
118
|
data/collators.py - CrossDocCollator for sample packing (v0.33.0)
|
|
119
|
-
utils/ - GPU, errors, MoE, GaLore, QAT, Unsloth, vLLM, SGLang, Liger, FlashAttn, FSDP, Ring Attention, long-context, quality, curriculum, freeze, dataset-registry, mlx, peft_builder, paths, topology, launcher, mii, pipeline, cut_ce, fp8, gradient_ckpt, kernel_picker, cross_doc_attn, activation_offload, hf, spec_pairing, structured_output, metrics, tracing, auto_quant, lr_finder, grad_accum, mixed_precision, warmup, spike_recovery, convergence, v028_features, multipack_sampler, multipack, neat_packing, jinja_analyzer, quant_menu, relora, peft_patches, peft_wiring, dpo_variants, optimizer_zoo, lr_groups, loftq_init, block_expansion, tts, classifier, distill, bitnet, ebft_gdpo, moe_quant, reasoning_effort, gguf_quant, kv_cache, advanced_precision, save_formats, deploy_measure, advise, advise_history, adapter_diff, adapter_merge, blame, adapter_branch, unlearning, unlearning_eval, knowledge_edit, edit_governor, edit_diff, ra_dit, steering, citation_faithful, grace_codebook, ingest_sources, prune_prompt, active_sampler, ab_test, drift_alarm, tunability, terraform_plan, env_lock, hardware_fit, completions, license_advisor, behavior_battery, capability_suite, checklist_dsl, irt, sae_diff, sleeper_probe, interference, probe_pack, cmaes_merge, vector_bank, mole_routing, adapter_pr, soup_lock, adapter_bisect, prompt_compile, prompt_distill, compile_tools, apple_adapter, local_rl, build_dag, expectations, magpie, persona_hub, brain_rot, reward_hacking, uld, minillm, rl_checkpoint, iterative_dpo, echo_trap, mod, local_rl_scheduler, spectrum_scan, ship_verdict, reward_hack_control, data_doctor, data_lint, shrink
|
|
119
|
+
utils/ - GPU, errors, MoE, GaLore, QAT, Unsloth, vLLM, SGLang, Liger, FlashAttn, FSDP, Ring Attention, long-context, quality, curriculum, freeze, dataset-registry, mlx, peft_builder, paths, topology, launcher, mii, pipeline, cut_ce, fp8, gradient_ckpt, kernel_picker, cross_doc_attn, activation_offload, hf, spec_pairing, structured_output, metrics, tracing, auto_quant, lr_finder, grad_accum, mixed_precision, warmup, spike_recovery, convergence, v028_features, multipack_sampler, multipack, neat_packing, jinja_analyzer, quant_menu, relora, peft_patches, peft_wiring, dpo_variants, optimizer_zoo, lr_groups, loftq_init, block_expansion, tts, classifier, distill, bitnet, ebft_gdpo, moe_quant, reasoning_effort, gguf_quant, kv_cache, advanced_precision, save_formats, deploy_measure, advise, advise_history, adapter_diff, adapter_merge, blame, adapter_branch, unlearning, unlearning_eval, knowledge_edit, edit_governor, edit_diff, ra_dit, steering, citation_faithful, grace_codebook, ingest_sources, prune_prompt, active_sampler, ab_test, drift_alarm, tunability, terraform_plan, env_lock, hardware_fit, completions, license_advisor, behavior_battery, capability_suite, checklist_dsl, irt, sae_diff, sleeper_probe, interference, probe_pack, cmaes_merge, vector_bank, mole_routing, adapter_pr, soup_lock, adapter_bisect, prompt_compile, prompt_distill, compile_tools, apple_adapter, local_rl, build_dag, expectations, magpie, persona_hub, brain_rot, reward_hacking, uld, minillm, rl_checkpoint, iterative_dpo, echo_trap, mod, local_rl_scheduler, spectrum_scan, ship_verdict, reward_hack_control, data_doctor, data_lint, shrink, best_of_n, evolve
|
|
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 (308 files, 15421 tests)
|
|
124
124
|
examples/ - Real-world config examples and datasets
|
|
125
125
|
```
|
|
126
126
|
|
|
@@ -150,10 +150,9 @@ pytest tests/test_data.py::test_detect_alpaca_format -v
|
|
|
150
150
|
pytest tests/ --cov=soup_cli --cov-report=html
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
### Test Files (
|
|
153
|
+
### Test Files (307 files)
|
|
154
154
|
|
|
155
|
-
> A representative sample of the suite below.
|
|
156
|
-
> [`.claude/CLAUDE.md`](.claude/CLAUDE.md); run `pytest tests/ -v` for the complete list.
|
|
155
|
+
> A representative sample of the suite below. Run `pytest tests/ -v` for the complete list.
|
|
157
156
|
|
|
158
157
|
|
|
159
158
|
| File | Covers |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soup-cli
|
|
3
|
-
Version: 0.71.
|
|
3
|
+
Version: 0.71.31
|
|
4
4
|
Summary: Fine-tune and post-train 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
|
|
@@ -193,27 +193,29 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
193
193
|
|
|
194
194
|
## What's New
|
|
195
195
|
|
|
196
|
-
**v0.71.
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
-
|
|
209
|
-
|
|
210
|
-
|
|
196
|
+
**v0.71.31 — Judge-in-the-loop suite.** Put an LLM judge in the loop across the whole workflow: train against a judge, mine winners from a base model, grow instruction diversity, and decide SHIP with a true pairwise judge win-rate.
|
|
197
|
+
|
|
198
|
+
- **`task='online_dpo'`.** Online DPO (wraps TRL `OnlineDPOTrainer`): the model generates two
|
|
199
|
+
completions per prompt on-policy each step and a *judge* (a pairwise LLM judge over your local
|
|
200
|
+
ollama / OpenAI-compatible endpoint) — or a `reward_model` — picks the winner. Set
|
|
201
|
+
`training.online_dpo_judge: "ollama://llama3.1"` (or `reward_model`, exactly one).
|
|
202
|
+
- **`soup data best-of-n`.** Best-of-N rejection sampling: sample N completions from `--base`
|
|
203
|
+
locally, a `--judge` scores each, and the winner becomes an SFT row (`--emit-pairs` also writes
|
|
204
|
+
winner-vs-loser DPO pairs).
|
|
205
|
+
- **`soup data evolve`.** WizardLM Evol-Instruct (depth / breadth) over an ollama / vllm provider —
|
|
206
|
+
completing the synthetic-data suite (Magpie / Forge / Persona / evolve).
|
|
207
|
+
- **`soup ship --task-mode pairwise` (#284).** A true swap-debiased judge win-rate as the ship
|
|
208
|
+
leg-1 task-win, fused with the catastrophic-forgetting guard into one SHIP / DON'T-SHIP verdict.
|
|
209
|
+
- **Proof-of-mechanism, honestly.** Live-validated on SmolLM2-135M: online-DPO trains with a
|
|
210
|
+
synthetic judge (`rewards/*` + `objective/kl` logged), best-of-N samples + picks, evolve loops.
|
|
211
|
+
Not a production RLHF claim (scale help wanted: #286).
|
|
211
212
|
|
|
212
213
|
```yaml
|
|
213
|
-
task:
|
|
214
|
+
task: online_dpo
|
|
214
215
|
training:
|
|
215
|
-
|
|
216
|
-
|
|
216
|
+
online_dpo_judge: "ollama://llama3.1" # a pairwise judge (or set reward_model)
|
|
217
|
+
online_dpo_loss_type: sigmoid # sigmoid | ipo
|
|
218
|
+
online_dpo_max_new_tokens: 64
|
|
217
219
|
```
|
|
218
220
|
|
|
219
221
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
@@ -49,27 +49,29 @@ 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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
**v0.71.31 — Judge-in-the-loop suite.** Put an LLM judge in the loop across the whole workflow: train against a judge, mine winners from a base model, grow instruction diversity, and decide SHIP with a true pairwise judge win-rate.
|
|
53
|
+
|
|
54
|
+
- **`task='online_dpo'`.** Online DPO (wraps TRL `OnlineDPOTrainer`): the model generates two
|
|
55
|
+
completions per prompt on-policy each step and a *judge* (a pairwise LLM judge over your local
|
|
56
|
+
ollama / OpenAI-compatible endpoint) — or a `reward_model` — picks the winner. Set
|
|
57
|
+
`training.online_dpo_judge: "ollama://llama3.1"` (or `reward_model`, exactly one).
|
|
58
|
+
- **`soup data best-of-n`.** Best-of-N rejection sampling: sample N completions from `--base`
|
|
59
|
+
locally, a `--judge` scores each, and the winner becomes an SFT row (`--emit-pairs` also writes
|
|
60
|
+
winner-vs-loser DPO pairs).
|
|
61
|
+
- **`soup data evolve`.** WizardLM Evol-Instruct (depth / breadth) over an ollama / vllm provider —
|
|
62
|
+
completing the synthetic-data suite (Magpie / Forge / Persona / evolve).
|
|
63
|
+
- **`soup ship --task-mode pairwise` (#284).** A true swap-debiased judge win-rate as the ship
|
|
64
|
+
leg-1 task-win, fused with the catastrophic-forgetting guard into one SHIP / DON'T-SHIP verdict.
|
|
65
|
+
- **Proof-of-mechanism, honestly.** Live-validated on SmolLM2-135M: online-DPO trains with a
|
|
66
|
+
synthetic judge (`rewards/*` + `objective/kl` logged), best-of-N samples + picks, evolve loops.
|
|
67
|
+
Not a production RLHF claim (scale help wanted: #286).
|
|
67
68
|
|
|
68
69
|
```yaml
|
|
69
|
-
task:
|
|
70
|
+
task: online_dpo
|
|
70
71
|
training:
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
online_dpo_judge: "ollama://llama3.1" # a pairwise judge (or set reward_model)
|
|
73
|
+
online_dpo_loss_type: sigmoid # sigmoid | ipo
|
|
74
|
+
online_dpo_max_new_tokens: 64
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
@@ -133,7 +133,7 @@ soup migrate --from llamafactory config.yaml Import config from LLaMA-Factory
|
|
|
133
133
|
soup migrate --from axolotl config.yml Import config from Axolotl
|
|
134
134
|
soup migrate --from unsloth notebook.ipynb Import config from Unsloth notebook
|
|
135
135
|
soup migrate --from llamafactory c.yaml --dry-run Preview without writing
|
|
136
|
-
soup recipes list List all
|
|
136
|
+
soup recipes list List all 138 ready-made recipes
|
|
137
137
|
soup recipes show llama3.1-8b-sft Print recipe YAML
|
|
138
138
|
soup recipes use llama3.1-8b-sft Copy recipe to soup.yaml
|
|
139
139
|
soup recipes search "reasoning" Search by keyword/task/size
|
|
@@ -155,6 +155,7 @@ soup why [run_id] Explain training anomalies (heuris
|
|
|
155
155
|
soup ship --base <m> --adapter <lora> --task-eval t.jsonl SHIP / DON'T-SHIP verdict: task win AND no forgetting (exit 0=SHIP / 2=DON'T / 1=error) (v0.71.25)
|
|
156
156
|
soup ship --evidence ev.json [--output v.json] Decide offline from pre-computed scores (no model load)
|
|
157
157
|
soup ship ... --task-mode judge_score --judge-model ollama://llama3.1 Leg-1 via LLM-as-a-judge
|
|
158
|
+
soup ship ... --task-mode pairwise --judge-model ollama://llama3.1 Leg-1 via swap-debiased judge win-rate (base=0.5) (v0.71.31)
|
|
158
159
|
soup ship ... --general-suite mmlu,gsm8k --baseline base.json lm-eval leg-2 + recorded base scores
|
|
159
160
|
soup mcp serve MCP server over stdio (drive Soup from Claude Code / Cursor / Cline; requires [mcp] extra) (v0.71.28)
|
|
160
161
|
soup mcp serve --allow-mutating Also expose plan-only train_start / export tools (never execute) (v0.71.28)
|
|
@@ -250,6 +251,8 @@ soup local-rl train --db <path> --model <id> [--scheduler-dir <dir>] [--hour H]
|
|
|
250
251
|
soup build <manifest.yaml> [--dry-run] [--output-dir <dir>] dbt-for-SFT DAG: validate + plan + live materialise (v0.69.0; live v0.71.6)
|
|
251
252
|
soup expect <data.jsonl> <suite.yaml> Expectations suite: PII / token-length / refusal / judge (v0.69.0)
|
|
252
253
|
soup data gen-magpie --base <m> --provider ollama|vllm --target N --output <jsonl> [--base-url <url>] [--quality-filter] Magpie synthetic generator — live (v0.69.0; live v0.71.6)
|
|
254
|
+
soup data best-of-n --base <m> --prompts <jsonl> --n 8 --judge <url> -o <sft.jsonl> [--emit-pairs <dpo.jsonl>] Best-of-N rejection sampling: sample N locally, judge picks winner -> SFT (+ DPO) rows (v0.71.31)
|
|
255
|
+
soup data evolve --input <seeds.jsonl> --provider ollama|vllm --model <m> --strategy depth|breadth --rounds N -o <jsonl> Evol-Instruct (WizardLM) instruction evolution (v0.71.31)
|
|
253
256
|
soup data persona-mix --prompts <jsonl> --n N --output <jsonl> Persona-Hub diversity sampler (v0.69.0)
|
|
254
257
|
soup data brain-rot <data.jsonl> [--strict] Brain-rot detector — arXiv 2510.13928 (v0.69.0)
|
|
255
258
|
soup iterative-dpo --base-model <m> --reward-model <rm> --prompts <p.jsonl> --output-dir <out> --rounds N --pairs-per-round N [--plan-only] Iterative DPO loop driver — LIVE sample→score→pair→train (v0.70.0; live v0.71.11)
|
|
@@ -62,6 +62,15 @@ soup data persona-mix --prompts prompts.jsonl --n 500 --output mixed.jsonl
|
|
|
62
62
|
|
|
63
63
|
# Brain-rot detector (arXiv 2510.13928) — refuses to train on excessive slop
|
|
64
64
|
soup data brain-rot data.jsonl --strict --max-major-fraction 0.10
|
|
65
|
+
|
|
66
|
+
# Best-of-N rejection sampling (v0.71.31) — sample N locally, a judge picks the winner
|
|
67
|
+
soup data best-of-n --base HuggingFaceTB/SmolLM2-135M-Instruct \
|
|
68
|
+
--prompts prompts.jsonl --n 8 --judge ollama://llama3.1 \
|
|
69
|
+
-o best_of_n.jsonl --emit-pairs pairs.jsonl
|
|
70
|
+
|
|
71
|
+
# Evol-Instruct (WizardLM depth/breadth, v0.71.31) — grow instruction diversity
|
|
72
|
+
soup data evolve --input seeds.jsonl --provider ollama --model llama3.1 \
|
|
73
|
+
--strategy depth --rounds 2 -o evolved.jsonl
|
|
65
74
|
```
|
|
66
75
|
|
|
67
76
|
Every command applies the project-wide TOCTOU policy (`os.lstat + S_ISLNK` symlink rejection before any open) and cwd containment via the shared `paths.enforce_under_cwd_and_no_symlink` helper. All five are LIVE: `soup build` materialises with five built-in transforms (`identity` / `drop_empty` / `lowercase` / `strip` / `dedup_exact`) and SQLite-tracked incremental re-transform (v0.71.6); `soup data gen-magpie` harvests via raw completion against `--provider ollama|vllm` (loopback-only; `anthropic` rejected — no raw-completion endpoint, v0.71.6).
|
|
@@ -330,6 +330,11 @@ soup ship --base HuggingFaceTB/SmolLM2-135M-Instruct --adapter ./out \
|
|
|
330
330
|
soup ship --base <m> --adapter ./out --task-eval tasks.jsonl \
|
|
331
331
|
--task-mode judge_score --judge-model ollama://llama3.1
|
|
332
332
|
|
|
333
|
+
# Leg-1 via a true pairwise judge win-rate (v0.71.31 #284) — the judge picks
|
|
334
|
+
# base vs tuned per prompt (swap-debiased); base = 0.5 coin-flip, won <=> winrate > 0.5
|
|
335
|
+
soup ship --base <m> --adapter ./out --task-eval tasks.jsonl \
|
|
336
|
+
--task-mode pairwise --judge-model ollama://llama3.1
|
|
337
|
+
|
|
333
338
|
# Leg-2 via lm-eval benchmarks, base scores supplied by --baseline
|
|
334
339
|
soup ship --base <m> --tuned ./out --task-eval tasks.jsonl \
|
|
335
340
|
--general-suite mmlu,hellaswag --baseline registry://abc123
|
|
@@ -418,7 +418,7 @@ soup ui
|
|
|
418
418
|
|
|
419
419
|
**Pages:**
|
|
420
420
|
- **Dashboard** — view all experiment runs, loss charts, system info, multi-run comparison
|
|
421
|
-
- **New Training** — create configs from templates or
|
|
421
|
+
- **New Training** — create configs from templates or 138 ready-made recipes, validate, start training with live SSE log streaming and progress bar
|
|
422
422
|
- **Data Explorer** — browse and inspect datasets (JSONL, JSON, CSV, Parquet)
|
|
423
423
|
- **Model Chat** — chat with streaming responses, configurable temperature/top_p/max_tokens, system prompt, adapter selection, markdown rendering, chat export
|
|
424
424
|
|
|
@@ -427,7 +427,7 @@ soup ui
|
|
|
427
427
|
- **Enhanced Metrics** — 2x2 chart grid (loss, LR, grad_norm, throughput) + GPU memory chart, eval results table
|
|
428
428
|
- **Multi-Run Compare** — overlay loss curves from up to 5 runs side-by-side
|
|
429
429
|
- **Chat Upgrade** — SSE streaming via proxy, typing indicator, cancel button, markdown renderer (bold, italic, code blocks), chat export as JSON
|
|
430
|
-
- **Config Builder** — recipe dropdown (
|
|
430
|
+
- **Config Builder** — recipe dropdown (138 recipes), config schema API for dynamic form generation
|
|
431
431
|
|
|
432
432
|
**Security:** The Web UI generates a random auth token at startup (printed to console). All mutating endpoints (start/stop training, delete runs, inspect data, validate config) require `Authorization: Bearer <token>` header. CORS is restricted to the served origin. Data inspection is sandboxed to the working directory.
|
|
433
433
|
|
|
@@ -401,6 +401,34 @@ advantages). Not a production reward-model claim; scale validation is help-wante
|
|
|
401
401
|
(#286).
|
|
402
402
|
|
|
403
403
|
|
|
404
|
+
## Online DPO (`task='online_dpo'`) — judge in the loop (v0.71.31)
|
|
405
|
+
|
|
406
|
+
Unlike offline DPO (static `prompt/chosen/rejected` rows), **Online DPO** generates
|
|
407
|
+
two completions per prompt **on-policy** each step and asks a *judge* — or a
|
|
408
|
+
*reward model* — which is better; the winner becomes `chosen`, the loser
|
|
409
|
+
`rejected`. The judge closes the loop. Wraps TRL `OnlineDPOTrainer`; data is
|
|
410
|
+
prompt-only (like GRPO). Transformers + text only.
|
|
411
|
+
|
|
412
|
+
```yaml
|
|
413
|
+
base: HuggingFaceTB/SmolLM2-135M-Instruct
|
|
414
|
+
task: online_dpo
|
|
415
|
+
data:
|
|
416
|
+
train: ./data/prompts.jsonl # prompt-only (or any format — prompts are extracted)
|
|
417
|
+
training:
|
|
418
|
+
online_dpo_judge: "ollama://llama3.1" # a pairwise judge (ollama://|https://|http://localhost)
|
|
419
|
+
# OR: reward_model: ./my-reward-model # exactly one of judge / reward_model
|
|
420
|
+
online_dpo_loss_type: sigmoid # sigmoid | ipo
|
|
421
|
+
online_dpo_max_new_tokens: 64
|
|
422
|
+
dpo_beta: 0.1
|
|
423
|
+
lora: { r: 8, alpha: 16, target_modules: auto }
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
The judge is Soup's own OpenAI-compatible `JudgeEvaluator` adapted to TRL's
|
|
427
|
+
`BasePairwiseJudge` (swap-debiased: a winner is only recorded when both A,B and
|
|
428
|
+
B,A orders agree). Recipe: `online-dpo-smollm2-135m`. Proof-of-mechanism was
|
|
429
|
+
validated on SmolLM2-135M with a synthetic judge (not a production RLHF claim; #286).
|
|
430
|
+
|
|
431
|
+
|
|
404
432
|
## Weighted Multi-Objective Preference Loss
|
|
405
433
|
|
|
406
434
|
Mix DPO / SimPO / ORPO / IPO terms in one training run by setting
|