soup-cli 0.71.27__tar.gz → 0.71.29__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.27 → soup_cli-0.71.29}/CHANGELOG.md +58 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/CONTRIBUTING.md +2 -2
- {soup_cli-0.71.27 → soup_cli-0.71.29}/CONTRIBUTORS.md +2 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/PKG-INFO +19 -18
- {soup_cli-0.71.27 → soup_cli-0.71.29}/README.md +14 -17
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/commands.md +38 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/peft-and-efficiency.md +51 -0
- soup_cli-0.71.29/docs/superpowers/plans/2026-07-05-soup-shrink-depth-prune.md +607 -0
- soup_cli-0.71.29/docs/superpowers/specs/2026-07-05-soup-shrink-depth-prune-design.md +218 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/pyproject.toml +7 -3
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/__init__.py +1 -1
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cli.py +21 -0
- soup_cli-0.71.29/src/soup_cli/commands/mcp.py +62 -0
- soup_cli-0.71.29/src/soup_cli/commands/shrink.py +656 -0
- soup_cli-0.71.29/src/soup_cli/mcp_server/__init__.py +9 -0
- soup_cli-0.71.29/src/soup_cli/mcp_server/registry.py +924 -0
- soup_cli-0.71.29/src/soup_cli/mcp_server/server.py +82 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/registry/store.py +2 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/bco.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/dpo.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/grpo.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/ipo.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/kto.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/orpo.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/simpo.py +6 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/live_eval.py +9 -2
- soup_cli-0.71.29/src/soup_cli/utils/shrink.py +341 -0
- soup_cli-0.71.29/tests/test_trainer_init.py +1230 -0
- soup_cli-0.71.29/tests/test_v07128.py +938 -0
- soup_cli-0.71.29/tests/test_v07129.py +1267 -0
- soup_cli-0.71.27/tests/test_trainer_init.py +0 -469
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.dockerignore +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/FUNDING.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/pull_request_template.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/workflows/ci.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/workflows/docker.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/workflows/publish.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.github/workflows/recipe-validation.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.gitignore +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.mailmap +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/.pre-commit-config.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/AGENTS.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/CODEOWNERS +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/CODE_OF_CONDUCT.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/Dockerfile +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/LICENSE +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/NOTICE +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/SECURITY.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docker-compose.yml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/README.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/adapters-and-governance.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/backends-and-ops.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/data.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/evaluation.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/models.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/performance-and-quantization.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/serving-and-export.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/docs/training.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/README.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/dpo_chat.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/dpo_example.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/grpo_reasoning.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/rlhf_step1_sft.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/rlhf_step2_reward.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/rlhf_step3_ppo.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/sft_basic.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/configs/vision_llama.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/data/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/data/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/data/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/data/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/reward_hacking/rewards.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/synthetic_workflow.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/examples/synthetic_workflow.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/soup.png +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/soup_logo_svg.svg +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/__main__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/autopilot/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/autopilot/analyzer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/autopilot/decisions.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/autopilot/generate_config.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/pack.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/publish.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/run.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/schema.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/unpack.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cans/verify.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cloud/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/cloud/modal.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0550.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0610.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v0650.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/_eval_v07110.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/_webhook_cli.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/ab.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/active_sample.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/adapters.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/advise.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/agent.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/airgap.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/apple_adapter.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/attest.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/audit_log.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/autopilot.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/bench.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/bom.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/build.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/can.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/chat.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/compile_cmd.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/compile_tools.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/completions.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/cost.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/data.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/data_doctor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/data_forge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/data_mix.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/data_score.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/delinearize_llama4.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/deploy.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/diagnose.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/distill_prompt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/doctor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/drift_alarm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/edit.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/env.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/eval.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/expect.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/export.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/fetch.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/generate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/history.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/infer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/ingest.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/init.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/iterative_dpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/license_advisor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/llama.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/local_rl.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/lock.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/loop.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/merge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/merge_sharded_fsdp_weights.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/migrate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/monitor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/plan.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/plugins.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/profile.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/prune_prompt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/push.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/quantize.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/quickstart.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/ra_dit.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/recipes.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/registry.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/runs.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/serve.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/ship.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/spectrum.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/steer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/sweep.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/tokenizer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/train.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/tui.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/tunability.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/ui.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/commands/why.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/config/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/config/loader.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/config/schema.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/alpaca_tiny.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/elephant.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/harmbench.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/jailbreakbench.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/syceval.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/behavior/xstest.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/chat_preferences.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/dpo_sample.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/reasoning_math.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/muse_demo.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/tofu_demo.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/_fixtures/unlearning/wmdp_demo.jsonl +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/augment.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/chat_templates.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/collators.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/formats.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/loader.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/loss_mask.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/providers/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/providers/_utils.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/providers/anthropic.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/providers/ollama.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/providers/vllm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/sft_format.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/code.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/conversation.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/preference.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/qa.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/reasoning.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/tool_calling.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/templates/verifiable.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/traces/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/traces/pair_builder.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/traces/parsers.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/traces/quality.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/data/validator.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/arena.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/benchmarks_v0_43.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/calibrate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/checkpoint_intelligence.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/custom.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/forgetting.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/gate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/human.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/judge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/leaderboard.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/eval/quant_check.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/experiment/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/experiment/tracker.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/migrate/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/migrate/axolotl.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/migrate/common.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/migrate/llamafactory.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/migrate/unsloth.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/callback.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/curriculum_callback.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/display.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/grpo_stability_callback.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/hf_push.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/plugin_callback.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/monitoring/trace_logger.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/plugins/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/py.typed +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/recipes/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/recipes/catalog.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/registry/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/registry/attach.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/registry/diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/registry/hashing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/audio.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/bco.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/chat.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/code.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/embedding.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/llama-3.1-8b-lora.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/qwen2.5-7b-dpo.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/fetch_examples/zero3-cpu-offload.json +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/ipo.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/kto.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/longcontext.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/manifest.json +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/medical.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/moe.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/orpo.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/pretrain.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/reasoning.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/rlhf.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/simpo.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/tool-calling.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/templates/vision.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/bitnet.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/classifier.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/distill.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/embedding.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_dpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_grpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_routing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/mlx_sft.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/mole_routing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/ppo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/preference.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/pretrain.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/prm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/raft.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/reward_model.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/rewards.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/sft.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/tts.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/trainer/unlearn.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/tui_app.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/app.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/plugins/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/static/app.js +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/static/index.html +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/static/logo.png +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/static/logo.svg +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/ui/static/style.css +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/_eval_text.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ab_test.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/activation_offload.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/active_sampler.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_bisect.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_branch.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_merge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_pr.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_scan.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/adapter_sign.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/advanced_precision.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/advise.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/advise_history.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/agent_forge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/agent_rollout.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/agent_sandbox.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/airgap_bundle.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/annex_xi.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/anthropic_messages.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/apple_adapter.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/attest.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/audit_log.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/auto_quant.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/backend_detect.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/batch_probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/behavior_battery.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/bitnet.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/blame.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/block_expansion.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/bom.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/brain_rot.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/brain_rot_lang.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/build_dag.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/canary_discovery.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/canary_router.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/capability_suite.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/checklist_dsl.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/checkpoint_trigger.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/citation_faithful.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/classifier.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/cmaes_merge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/compile_tools.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/completions.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/constants.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/convergence.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/crash.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/cross_doc_attn.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/curriculum.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/curriculum_dynamic.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/cut_ce.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_doctor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_forge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_lint.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_mix.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_pipeline.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/data_score.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/deepspeed.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/delinearize_llama4.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/demo_bundles.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/deploy_autopilot.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/deploy_measure.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/_common.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/badge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/citation.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/contamination.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/forgetting.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/format.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/live.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/memorization.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/mode_collapse.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/refusal.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/report.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/diagnose/runner.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/distill.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/dpo_variants.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/drift_alarm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ebft_gdpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/echo_trap.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/edit_diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/edit_governor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/edit_kernels.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/encoding.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/energy.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/env_lock.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/errors.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/eval_design.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/eval_gate_hook.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/eval_lock_coverage.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/expectations.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/fetch_examples.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/flash_attn.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/fp8.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/freeze.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/fsdp.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/fsdp_consolidate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/galore.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/gguf_quant.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/gpu.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/gpu_monitor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/grace_codebook.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/graceful_save.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/grad_accum.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/gradient_ckpt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/grpo_long_context.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/grpo_variants.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/hardware_fit.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/harm_probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/hf.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/hf_space.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/hubs.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ingest_sources.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/integrations.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/interference.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/interference_live.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/irt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/iterative_dpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/jinja_analyzer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/kernel_picker.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/knowledge_edit.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/kv_cache.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/launcher.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/license_advisor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/license_matrix.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/liger.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/llama_proxy.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/llama_server_timings.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/local_rl.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/local_rl_scheduler.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loftq_init.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/log_level.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/long_context.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/longlora.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loop_budget.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loop_daemon.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loop_iteration.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loop_stages.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/loop_state.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/lr_finder.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/lr_groups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/magpie.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/metrics.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mii.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/minillm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mix_proxy.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mixed_precision.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mlx.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mod.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/moe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/moe_quant.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/mole_routing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/multipack.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/multipack_sampler.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/multipack_trainer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/namespace_pin.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/neat_packing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ngram_spec.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/nlg_metrics.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ollama.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/onboarding.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/optimizer_zoo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/paths.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/peft_builder.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/peft_patches.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/peft_wiring.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/persona_hub.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/pipeline.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/preference_combine.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/prm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/probe_kernel.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/probe_pack.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/profiler.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/profiling.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/profiling_v0_43.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/prompt_compile.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/prompt_distill.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/prune_prompt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/qat.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/qr_url.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/quality.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/quant_menu.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ra_dit.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ra_dit_run.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/raft.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/reasoning_effort.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/reasoning_parser.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/recipe_dag.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/recipe_run.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/registry.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/relora.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/replay.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/repro_receipt.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/reward_hack_control.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/reward_hacking.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ring_attention.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/rl_checkpoint.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/rl_signal_buffer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/run_cost.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/sae_diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/save_formats.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/server_tools.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/sglang.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ship_verdict.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/shortcuts.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/signing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/sleeper_probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/soup_lock.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/spec_pairing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/spectrum_scan.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/spike_recovery.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/sse_train_stream.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/steering.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/strict_safetensors.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/structured_output.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/sweep_config.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tail_latency.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/terraform_plan.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tool_outputs.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/topology.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tracing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/trackers.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/train_event_buffer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/trainer_plugins.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/trust_remote.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/truth_probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tts.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tts_codec.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/tunability.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/ui_env.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/uld.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/unlearn_kernels.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/unlearning.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/unlearning_eval.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/unsloth.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/v028_features.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/vector_bank.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/vllm.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/vscode_setup.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/warmup.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/webhooks.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/src/soup_cli/utils/why.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/templates/chat.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/templates/code.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/templates/medical.yaml +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/__init__.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/conftest.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/qa/v053_qa.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/qa/v07114_qa.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/qa/v0716_qa.md +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_adapters.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_advanced_peft.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_assistant_mask.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_audio.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_auto_tuning.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_autopilot.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_awq_gptq_export.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_batch_probe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_bco.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_bench.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_brain_rot_multilingual.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_bugfixes.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_build_dag.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_callback.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_cans.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_chat.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_chat_template.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_cli.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_cli_subprocess.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_code_review_critical.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_code_review_deferred.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_code_review_high.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_code_review_medium_low.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_code_review_recurring.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_config.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_cost.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_crash_reporter.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_curriculum.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_data.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_data_augment.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_data_sample.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_data_split.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_data_tools.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_dataset_hub.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_dataset_registry.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_deepspeed.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_deploy_ollama.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_diff.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_display.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_doctor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_dpo_example.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_dpo_variants.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_embedding.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_errors.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_eval.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_eval_gate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_eval_platform.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_export.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_formats.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_fp8_recipe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_freeze_training.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_generate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_gpu.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_grpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_hf_integration.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_infer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_inference_advanced.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_init.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ipo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_jinja_analyzer.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_kto.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_loader.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_log_level.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_loss_watchdog.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_merge.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_migrate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_mlx_backend.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_moe.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_multi_adapter.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_multi_gpu.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_multipack_config.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_multipack_invariants.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_multipack_sampler.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_neat_packing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_neftune_rslora.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_onnx_tensorrt_export.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_orpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_packing.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_a_wave1.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_a_wave2.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_part_f_hardening.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_peft_methods.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_peft_patches.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_performance.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_pissa_init.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ppo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_preference_dispatcher.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_preference_multi.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_preference_multi_runtime.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_pretrain.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_profile.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_profiling.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_progress.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_push.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_qat.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_quality_filter.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_quant_check.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_quant_menu.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_quickstart.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_rank_pattern.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_recipes.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_recipes_v031.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_refusal_multilingual.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_registry.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_relora.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_replay.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_resume.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_rlvr.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_run_cost.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_runs.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_serve.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_server_generate.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_sglang_serve.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_simpo.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_smoke_train.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_speculative_decoding.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_sweep.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_synth_data_pro.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_templates_yaml.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_tensorboard.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_tool_calling.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_trace_to_pref.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_tracker.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_trainer_coverage_v035.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_training_intelligence.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_training_speed.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_trust_remote_code.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_tui.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ui.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ui_chat.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ui_config_builder.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ui_live_monitor.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_ui_metrics.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_unsloth.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0401_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0401_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0401_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0402_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0402_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0403_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0403_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0403_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0404_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0404_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0405_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0406_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0410_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0410_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0410_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0420.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0430_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0430_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0430_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0430_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0440_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0440_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0440_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0440_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0440_review_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0450.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0460_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0460_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0470_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0470_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0480_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0480_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0490.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0500_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0500_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0500_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0500_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0500_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0510.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0520.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0530.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v05310.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v05311.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0531_109.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0531_139.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0531_142.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0531_82.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0532.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0533.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0534.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0535.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0536.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0537.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0538.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0539.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0540.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0550.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0550_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0560.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0570_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0570_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0570_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0570_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0580.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0590.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0600_part_f.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0610_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0610_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0610_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0610_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0610_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0620_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0630_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0631_206.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0640_part_f.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0650_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_cli.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0660_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0670_part_f.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_followups.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0680_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0690_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0690_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0690_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0690_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0690_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_a.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_b.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_c.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_d.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_e.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0700_part_f.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07110.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07111.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07112.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07113.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07114.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07115.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07116.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07117.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07118.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07119.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0712.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07120.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07121.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07122.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07123.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07124.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07125.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07126.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v07127.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0713.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0714.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0715.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0716.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0717.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0718.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_v0719.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_validator.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_vision.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_vllm_serve.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_warmup.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_why.py +0 -0
- {soup_cli-0.71.27 → soup_cli-0.71.29}/tests/test_windows_encoding.py +0 -0
|
@@ -12,6 +12,64 @@ reproducing 70+ versions of notes.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.71.29] - 2026-07-05
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
- **`soup shrink`** — depth-prune a model + optional distill-heal
|
|
19
|
+
("The Unreasonable Ineffectiveness of the Deeper Layers", arXiv:2403.17887).
|
|
20
|
+
Ranks decoder layers by the angular distance of the residual stream across a
|
|
21
|
+
contiguous block over a calibration set, drops the least-important block
|
|
22
|
+
(first and last layer always protected), optionally *heals* by distilling the
|
|
23
|
+
original model into the pruned student, and emits a single dense smaller model
|
|
24
|
+
plus a one-screen **SHIP / DON'T SHIP** perplexity verdict.
|
|
25
|
+
`soup shrink --model <id|path> [--drop-ratio 0.25 | --drop-layers N] --calib
|
|
26
|
+
<calib.jsonl> [--heal <heal.jsonl> --heal-steps N] [--tolerance 0.10]
|
|
27
|
+
[-o <dir>] [--device cpu] [--attach-to-registry <id>] [--plan-only]`.
|
|
28
|
+
Exit codes: 0 = SHIP, 2 = DON'T SHIP, 1 = error. The heal runs as an isolated
|
|
29
|
+
`soup train` subprocess (LoRA-student logit distillation) and the adapter is
|
|
30
|
+
fused back so the shipped artifact stays a single dense model. Arch allowlist
|
|
31
|
+
v1: Llama / Qwen / SmolLM. Validated live on SmolLM2-135M (drop 25 %: 30 -> 22
|
|
32
|
+
layers, ppl x2.98 unhealed; drop 4 + heal: ppl x1.35, recovered).
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
- `soup shrink` contains `--calib` / `--heal` / `--output-dir` (and every
|
|
36
|
+
derived write path: `<out>/model`, `<out>/heal_adapter`, the fuse staging dir)
|
|
37
|
+
under cwd with `os.path.realpath` + `commonpath` + O_NOFOLLOW + symlink
|
|
38
|
+
rejection, re-validating derived paths right before each write (TOCTOU). The
|
|
39
|
+
heal subprocess uses an argv list (no shell) with a timeout; its config is
|
|
40
|
+
schema-validated before spawn; subprocess output is C0/ESC-stripped before it
|
|
41
|
+
reaches the terminal. `--model` defaults `trust_remote_code=False` with a
|
|
42
|
+
probe + warn.
|
|
43
|
+
|
|
44
|
+
## [0.71.28] - 2026-07-04
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
- **MCP server (`soup mcp serve`)** — drive Soup from any Model Context Protocol
|
|
48
|
+
client (Claude Code / Cursor / Cline / Continue) over stdio. No fine-tuning
|
|
49
|
+
CLI ships an MCP server. Exposes 14 read-only tools as JSON — `advise`,
|
|
50
|
+
`data_inspect` / `data_validate` / `data_score` / `data_doctor`,
|
|
51
|
+
`recipes_search` / `recipes_show`, `runs_list` / `runs_show`,
|
|
52
|
+
`registry_list` / `registry_show`, `profile`, `diagnose_evidence`,
|
|
53
|
+
`ship_evidence` — plus two **plan-only** mutating tools (`train_start`,
|
|
54
|
+
`export`) gated behind `--allow-mutating` (they render the exact command that
|
|
55
|
+
would run; they never execute). The official `mcp` SDK is behind a new
|
|
56
|
+
`[mcp]` extra (`pip install 'soup-cli[mcp]'`), lazy-imported so the core CLI
|
|
57
|
+
stays light. Security: stdio-only (no network listener); every path argument
|
|
58
|
+
re-enters cwd-containment + symlink rejection; output is control-char
|
|
59
|
+
sanitized; errors are path-free; string / size / int bounds enforced.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
- The DPO / IPO / KTO / BCO trainers now apply configured vocabulary expansion
|
|
63
|
+
(`data.add_new_tokens` / `data.new_special_tokens`) via the shared
|
|
64
|
+
`apply_vocab_expansion()` helper during setup, consistent with the SFT path —
|
|
65
|
+
they previously ignored it. Closes #292
|
|
66
|
+
([#293](https://github.com/MakazhanAlpamys/Soup/pull/293) by [@CODING-DARSH](https://github.com/CODING-DARSH)).
|
|
67
|
+
- The ORPO / SimPO / GRPO trainers now also apply configured vocabulary
|
|
68
|
+
expansion via the shared `apply_vocab_expansion()` helper — completing
|
|
69
|
+
consistent vocab-expansion behavior across every SFT/preference/RL trainer.
|
|
70
|
+
Closes #294
|
|
71
|
+
([#295](https://github.com/MakazhanAlpamys/Soup/pull/295) by [@CODING-DARSH](https://github.com/CODING-DARSH)).
|
|
72
|
+
|
|
15
73
|
## [0.71.27] - 2026-07-03
|
|
16
74
|
|
|
17
75
|
### 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 (306 files, 15224 tests)
|
|
124
124
|
examples/ - Real-world config examples and datasets
|
|
125
125
|
```
|
|
126
126
|
|
|
@@ -150,7 +150,7 @@ 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 (306 files)
|
|
154
154
|
|
|
155
155
|
> A representative sample of the suite below. The full table lives in
|
|
156
156
|
> [`.claude/CLAUDE.md`](.claude/CLAUDE.md); run `pytest tests/ -v` for the complete list.
|
|
@@ -48,6 +48,8 @@ Listed by first contribution. PR numbers link the work.
|
|
|
48
48
|
- Harden judge-URL validation against hostname prefix bypass (`startswith` → `urlparse`) in `eval/gate.py` ([#288](https://github.com/MakazhanAlpamys/Soup/pull/288))
|
|
49
49
|
- Apply configured vocabulary expansion (`data.add_new_tokens` / `new_special_tokens`) during SFT trainer init ([#287](https://github.com/MakazhanAlpamys/Soup/pull/287))
|
|
50
50
|
- Reuse the shared vocab-expansion helper in the vision + audio SFT paths ([#291](https://github.com/MakazhanAlpamys/Soup/pull/291))
|
|
51
|
+
- Honor configured vocab expansion in the DPO / IPO / KTO / BCO trainers ([#293](https://github.com/MakazhanAlpamys/Soup/pull/293))
|
|
52
|
+
- Honor configured vocab expansion in the ORPO / SimPO / GRPO trainers ([#295](https://github.com/MakazhanAlpamys/Soup/pull/295))
|
|
51
53
|
|
|
52
54
|
---
|
|
53
55
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: soup-cli
|
|
3
|
-
Version: 0.71.
|
|
3
|
+
Version: 0.71.29
|
|
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
|
|
@@ -29,6 +29,7 @@ Requires-Dist: bitsandbytes>=0.41.0; extra == 'all'
|
|
|
29
29
|
Requires-Dist: datasets>=2.14.0; extra == 'all'
|
|
30
30
|
Requires-Dist: datasketch>=1.6.0; extra == 'all'
|
|
31
31
|
Requires-Dist: fastapi>=0.104.0; extra == 'all'
|
|
32
|
+
Requires-Dist: mcp>=1.2.0; extra == 'all'
|
|
32
33
|
Requires-Dist: peft>=0.7.0; extra == 'all'
|
|
33
34
|
Requires-Dist: torch>=2.0.0; extra == 'all'
|
|
34
35
|
Requires-Dist: transformers<5.0.0,>=4.36.0; extra == 'all'
|
|
@@ -60,6 +61,7 @@ Requires-Dist: bitsandbytes>=0.41.0; extra == 'dev'
|
|
|
60
61
|
Requires-Dist: cryptography>=41.0.0; extra == 'dev'
|
|
61
62
|
Requires-Dist: datasets>=2.14.0; extra == 'dev'
|
|
62
63
|
Requires-Dist: httpx>=0.24.0; extra == 'dev'
|
|
64
|
+
Requires-Dist: mcp>=1.2.0; extra == 'dev'
|
|
63
65
|
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
64
66
|
Requires-Dist: peft>=0.7.0; extra == 'dev'
|
|
65
67
|
Requires-Dist: pre-commit>=3.5.0; extra == 'dev'
|
|
@@ -80,6 +82,8 @@ Provides-Extra: gptq
|
|
|
80
82
|
Requires-Dist: auto-gptq>=0.7.0; extra == 'gptq'
|
|
81
83
|
Provides-Extra: liger
|
|
82
84
|
Requires-Dist: liger-kernel>=0.3.0; extra == 'liger'
|
|
85
|
+
Provides-Extra: mcp
|
|
86
|
+
Requires-Dist: mcp>=1.2.0; extra == 'mcp'
|
|
83
87
|
Provides-Extra: mix
|
|
84
88
|
Requires-Dist: scikit-optimize>=0.9.0; extra == 'mix'
|
|
85
89
|
Provides-Extra: mlx
|
|
@@ -189,25 +193,22 @@ infrastructure instead of improving models. Soup fixes that.
|
|
|
189
193
|
|
|
190
194
|
## What's New
|
|
191
195
|
|
|
192
|
-
**v0.71.
|
|
193
|
-
|
|
194
|
-
- **
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
- **Found real bugs on a real tokenizer.** Live-validated against
|
|
205
|
-
`HuggingFaceTB/SmolLM2-135M-Instruct` on Windows + RTX 3050 — the smoke pass itself caught
|
|
206
|
-
two genuine template-handling bugs before release.
|
|
196
|
+
**v0.71.29 — Make your model smaller, locally: `soup shrink`.** Depth-prune the least-important layers, then distill-heal — with a binary SHIP / DON'T-SHIP verdict. Based on "The Unreasonable Ineffectiveness of the Deeper Layers" (arXiv:2403.17887).
|
|
197
|
+
|
|
198
|
+
- **Importance-ranked depth pruning.** One forward pass per calibration prompt scores each
|
|
199
|
+
contiguous layer block by the angular distance of the residual stream across it; the
|
|
200
|
+
least-important block is dropped (the first and last layer are always protected).
|
|
201
|
+
- **Distill-heal, Minitron-style.** `--heal` distills the original model into the pruned
|
|
202
|
+
student (LoRA logit-KD) as an isolated `soup train` run, then fuses the adapter back so you
|
|
203
|
+
ship a single dense smaller model — not a base + adapter.
|
|
204
|
+
- **A verdict, not a dashboard.** Every run ends in **SHIP** or **DON'T SHIP** on a
|
|
205
|
+
before/after perplexity ratio (`exit 0 = SHIP`, `2 = DON'T`, `1 = error`), so it drops into CI.
|
|
206
|
+
- **Runs on a laptop GPU.** Live-validated on Windows + RTX 3050 with SmolLM2-135M: drop 25 %
|
|
207
|
+
(30 → 22 layers, 21 % params) and drop-4 + CPU heal (perplexity recovered to ×1.35).
|
|
207
208
|
|
|
208
209
|
```bash
|
|
209
|
-
soup
|
|
210
|
-
|
|
210
|
+
soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
|
|
211
|
+
--calib calib.jsonl --heal heal.jsonl --heal-steps 200 -o shrunk --device cpu
|
|
211
212
|
```
|
|
212
213
|
|
|
213
214
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
@@ -49,25 +49,22 @@ 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
|
-
- **Found real bugs on a real tokenizer.** Live-validated against
|
|
65
|
-
`HuggingFaceTB/SmolLM2-135M-Instruct` on Windows + RTX 3050 — the smoke pass itself caught
|
|
66
|
-
two genuine template-handling bugs before release.
|
|
52
|
+
**v0.71.29 — Make your model smaller, locally: `soup shrink`.** Depth-prune the least-important layers, then distill-heal — with a binary SHIP / DON'T-SHIP verdict. Based on "The Unreasonable Ineffectiveness of the Deeper Layers" (arXiv:2403.17887).
|
|
53
|
+
|
|
54
|
+
- **Importance-ranked depth pruning.** One forward pass per calibration prompt scores each
|
|
55
|
+
contiguous layer block by the angular distance of the residual stream across it; the
|
|
56
|
+
least-important block is dropped (the first and last layer are always protected).
|
|
57
|
+
- **Distill-heal, Minitron-style.** `--heal` distills the original model into the pruned
|
|
58
|
+
student (LoRA logit-KD) as an isolated `soup train` run, then fuses the adapter back so you
|
|
59
|
+
ship a single dense smaller model — not a base + adapter.
|
|
60
|
+
- **A verdict, not a dashboard.** Every run ends in **SHIP** or **DON'T SHIP** on a
|
|
61
|
+
before/after perplexity ratio (`exit 0 = SHIP`, `2 = DON'T`, `1 = error`), so it drops into CI.
|
|
62
|
+
- **Runs on a laptop GPU.** Live-validated on Windows + RTX 3050 with SmolLM2-135M: drop 25 %
|
|
63
|
+
(30 → 22 layers, 21 % params) and drop-4 + CPU heal (perplexity recovered to ×1.35).
|
|
67
64
|
|
|
68
65
|
```bash
|
|
69
|
-
soup
|
|
70
|
-
|
|
66
|
+
soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
|
|
67
|
+
--calib calib.jsonl --heal heal.jsonl --heal-steps 200 -o shrunk --device cpu
|
|
71
68
|
```
|
|
72
69
|
|
|
73
70
|
Full history: [CHANGELOG.md](CHANGELOG.md) · [GitHub Releases](https://github.com/MakazhanAlpamys/Soup/releases).
|
|
@@ -156,6 +156,11 @@ soup ship --base <m> --adapter <lora> --task-eval t.jsonl SHIP / DON'T-SHIP ver
|
|
|
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
158
|
soup ship ... --general-suite mmlu,gsm8k --baseline base.json lm-eval leg-2 + recorded base scores
|
|
159
|
+
soup mcp serve MCP server over stdio (drive Soup from Claude Code / Cursor / Cline; requires [mcp] extra) (v0.71.28)
|
|
160
|
+
soup mcp serve --allow-mutating Also expose plan-only train_start / export tools (never execute) (v0.71.28)
|
|
161
|
+
soup shrink --model <id|path> --drop-ratio 0.25 --calib c.jsonl -o shrunk Depth-prune least-important layer block + SHIP/DON'T-SHIP ppl verdict (exit 0/2/1) (v0.71.29)
|
|
162
|
+
soup shrink ... --drop-layers N --heal h.jsonl --heal-steps 200 --device cpu Drop N layers + distill-heal (fuse LoRA back to one dense model)
|
|
163
|
+
soup shrink ... --tolerance 0.10 --plan-only [--attach-to-registry <id>] Ppl-regression tolerance / print importance table only / registry attach
|
|
159
164
|
soup tui Full-screen Textual dashboard (requires [tui] extra)
|
|
160
165
|
soup train --config soup.yaml --profile Record torch.profiler trace to <output>/profiles/
|
|
161
166
|
soup --log-level quiet|normal|verbose|debug Global logging tier (Rich-formatted)
|
|
@@ -267,4 +272,37 @@ soup version [--full] [--json] Show version (--full: system info,
|
|
|
267
272
|
soup --verbose <command> Full traceback on errors
|
|
268
273
|
```
|
|
269
274
|
|
|
275
|
+
## Fine-tune from your coding agent (MCP)
|
|
276
|
+
|
|
277
|
+
`soup mcp serve` runs a [Model Context Protocol](https://modelcontextprotocol.io)
|
|
278
|
+
server over **stdio**, so any MCP client — Claude Code, Cursor, Cline, Continue —
|
|
279
|
+
can drive Soup conversationally. Install the extra first:
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
pip install 'soup-cli[mcp]'
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
Register it with your client. For **Claude Code** (`.mcp.json` in the repo) or
|
|
286
|
+
the **Claude Desktop** config (`claude_desktop_config.json`):
|
|
287
|
+
|
|
288
|
+
```json
|
|
289
|
+
{
|
|
290
|
+
"mcpServers": {
|
|
291
|
+
"soup": { "command": "soup", "args": ["mcp", "serve"] }
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
The server exposes 14 read-only tools — `advise`, `data_inspect`,
|
|
297
|
+
`data_validate`, `data_score`, `data_doctor`, `recipes_search`, `recipes_show`,
|
|
298
|
+
`runs_list`, `runs_show`, `registry_list`, `registry_show`, `profile`,
|
|
299
|
+
`diagnose_evidence`, `ship_evidence` — each returning JSON. Two **plan-only**
|
|
300
|
+
mutating tools (`train_start`, `export`) are gated behind `--allow-mutating`
|
|
301
|
+
(`"args": ["mcp", "serve", "--allow-mutating"]`); even then they only render the
|
|
302
|
+
exact command that would run — they never execute training or export.
|
|
303
|
+
|
|
304
|
+
**Security:** stdio only (no network listener); every path argument stays under
|
|
305
|
+
the working directory and rejects symlinks; tool output is control-char
|
|
306
|
+
sanitized; error messages never leak filesystem paths.
|
|
307
|
+
|
|
270
308
|
|
|
@@ -24,6 +24,57 @@
|
|
|
24
24
|
- [Training Stability & Auto-Tuning](#training-stability--auto-tuning)
|
|
25
25
|
- [Training Intelligence (Forgetting + Checkpoint Quality)](#training-intelligence-forgetting--checkpoint-quality)
|
|
26
26
|
- [GaLore (Memory-Efficient Full-Parameter Training)](#galore-memory-efficient-full-parameter-training)
|
|
27
|
+
- [Depth Pruning + Distill-Heal (`soup shrink`)](#depth-pruning--distill-heal-soup-shrink)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Depth Pruning + Distill-Heal (`soup shrink`)
|
|
32
|
+
|
|
33
|
+
`soup shrink` makes a model smaller by dropping its least-important **contiguous
|
|
34
|
+
block of decoder layers**, then optionally *healing* the loss with knowledge
|
|
35
|
+
distillation. It implements "The Unreasonable Ineffectiveness of the Deeper
|
|
36
|
+
Layers" (Gromov et al., arXiv:2403.17887), with a Minitron-style distillation
|
|
37
|
+
heal instead of the paper's plain LoRA fine-tune.
|
|
38
|
+
|
|
39
|
+
**How it ranks layers.** For each candidate block `[L, L+n)`, one forward pass
|
|
40
|
+
per calibration prompt (`output_hidden_states=True`) measures the **angular
|
|
41
|
+
distance** of the residual stream entering (`hidden_states[L]`) vs leaving
|
|
42
|
+
(`hidden_states[L+n]`) the block, averaged over every non-pad token across the
|
|
43
|
+
calibration set. The block with the *lowest* distance transforms the residual
|
|
44
|
+
stream least, so it is the safest to drop. The first and last decoder layers are
|
|
45
|
+
always protected (they carry the most transformation).
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# See the importance table + chosen block without writing anything:
|
|
49
|
+
soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
|
|
50
|
+
--calib calib.jsonl --device cpu --plan-only
|
|
51
|
+
|
|
52
|
+
# Prune 25% + heal (distill the original into the pruned student, fuse to one
|
|
53
|
+
# dense model) + get a SHIP/DON'T-SHIP perplexity verdict:
|
|
54
|
+
soup shrink --model HuggingFaceTB/SmolLM2-135M-Instruct --drop-ratio 0.25 \
|
|
55
|
+
--calib calib.jsonl --heal heal.jsonl --heal-steps 200 \
|
|
56
|
+
--tolerance 0.10 -o shrunk --device cpu --attach-to-registry <id>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
- **`--drop-ratio F` / `--drop-layers N`** (exactly one) — how many contiguous
|
|
60
|
+
layers to drop; the *position* is chosen automatically by the importance scan.
|
|
61
|
+
- **`--calib <jsonl>`** — calibration prompts (`{"text": ...}` / `{"prompt":
|
|
62
|
+
...}` / chat `messages`). Must stay under cwd.
|
|
63
|
+
- **`--heal <jsonl> --heal-steps N`** — distill the full-depth original into the
|
|
64
|
+
pruned student (LoRA logit-KD) as an isolated `soup train` subprocess, then
|
|
65
|
+
fuse the adapter back into the pruned base so the output is a single dense
|
|
66
|
+
model. Heal keeps the teacher resident (~2× model memory); with `--device
|
|
67
|
+
cpu` the heal runs on CPU (validated ≤ 3 B on a 4 GB card).
|
|
68
|
+
- **`--tolerance F`** — ship if the perplexity regression stays within `F`
|
|
69
|
+
(default `0.10` = 10 %). Exit code `0 = SHIP`, `2 = DON'T SHIP`, `1 = error`.
|
|
70
|
+
- **`-o <dir>`** — the shrunk model lands in `<dir>/model`; the verdict in
|
|
71
|
+
`<dir>/shrink_report.json`.
|
|
72
|
+
|
|
73
|
+
**Arch support (v1):** Llama / Qwen / SmolLM. Others are a friendly reject.
|
|
74
|
+
The importance pass loads the model, so live-validated on ≤ 3 B; larger models
|
|
75
|
+
work but are unvalidated on the reference hardware. Perplexity is an unweighted
|
|
76
|
+
mean of per-example perplexities — valid for the before/after *ratio* the
|
|
77
|
+
verdict uses, not directly comparable to `soup eval` absolute numbers.
|
|
27
78
|
|
|
28
79
|
---
|
|
29
80
|
|