@r1z4x/tezgah 1.0.0
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.
- package/CHANGELOG.md +738 -0
- package/LICENSE +21 -0
- package/MANIFEST +753 -0
- package/README.de.md +169 -0
- package/README.es.md +168 -0
- package/README.fr.md +166 -0
- package/README.md +161 -0
- package/README.tr.md +163 -0
- package/agents/tezgah-reviewer.md +70 -0
- package/bin/codegen +337 -0
- package/bin/consult +797 -0
- package/bin/tezgah-adhd +50 -0
- package/bin/tezgah-agents +45 -0
- package/bin/tezgah-capture +66 -0
- package/bin/tezgah-context +96 -0
- package/bin/tezgah-decisions +213 -0
- package/bin/tezgah-design +953 -0
- package/bin/tezgah-docs +1199 -0
- package/bin/tezgah-doctor +497 -0
- package/bin/tezgah-dsh +37 -0
- package/bin/tezgah-dsh.cmd +70 -0
- package/bin/tezgah-gate +75 -0
- package/bin/tezgah-import-ai-research +439 -0
- package/bin/tezgah-index +32 -0
- package/bin/tezgah-lessons +148 -0
- package/bin/tezgah-mcp +322 -0
- package/bin/tezgah-migrate +324 -0
- package/bin/tezgah-pony +50 -0
- package/bin/tezgah-research +772 -0
- package/bin/tezgah-rollback +93 -0
- package/bin/tezgah-route +124 -0
- package/bin/tezgah-setup +5798 -0
- package/bin/tezgah-status +383 -0
- package/bin/tezgah-task +607 -0
- package/bin/tezgah-taste +423 -0
- package/bin/tezgah-triage +485 -0
- package/bin/tezgah.js +36 -0
- package/commands/adhd.md +21 -0
- package/commands/ponytail.md +21 -0
- package/docs/README.md +112 -0
- package/docs/architecture.md +226 -0
- package/docs/citations-baseline.json +59 -0
- package/docs/clarity-baseline.json +116 -0
- package/docs/contract.md +416 -0
- package/docs/environment.md +141 -0
- package/docs/evidence.md +831 -0
- package/docs/feature-audit.md +139 -0
- package/docs/gate.md +407 -0
- package/docs/glossary.md +201 -0
- package/docs/hosts.md +400 -0
- package/docs/index.json +471 -0
- package/docs/judge.md +193 -0
- package/docs/layers.md +189 -0
- package/docs/models.md +160 -0
- package/docs/operations.md +666 -0
- package/docs/research.md +809 -0
- package/docs/results/paired-outcome-2026-10.jsonl +254 -0
- package/docs/results/paired-outcome-2026-10.md +204 -0
- package/docs/skills.md +236 -0
- package/docs/status-line.md +315 -0
- package/docs/testing.md +287 -0
- package/docs/vision.md +117 -0
- package/hooks/hooks.json +33 -0
- package/hooks/projects-auto-init.py +98 -0
- package/hooks/projects-posttooluse.py +149 -0
- package/hooks/projects-pretooluse.py +40 -0
- package/hooks/projects-stop.py +60 -0
- package/hooks/tezgah_agents.py +817 -0
- package/hooks/tezgah_apps.py +266 -0
- package/hooks/tezgah_attest.py +255 -0
- package/hooks/tezgah_clarity.py +171 -0
- package/hooks/tezgah_components.py +140 -0
- package/hooks/tezgah_context.py +2953 -0
- package/hooks/tezgah_embed.py +765 -0
- package/hooks/tezgah_gate.py +2736 -0
- package/hooks/tezgah_guard.py +177 -0
- package/hooks/tezgah_index.py +124 -0
- package/hooks/tezgah_integrity.py +5141 -0
- package/hooks/tezgah_judge.py +487 -0
- package/hooks/tezgah_lang.py +230 -0
- package/hooks/tezgah_lessons.py +210 -0
- package/hooks/tezgah_models.py +855 -0
- package/hooks/tezgah_paths.py +1132 -0
- package/hooks/tezgah_policy.py +1039 -0
- package/hooks/tezgah_rank.py +77 -0
- package/hooks/tezgah_replay.py +1109 -0
- package/hooks/tezgah_research.py +5176 -0
- package/hooks/tezgah_shapes.py +305 -0
- package/hooks/tezgah_skill_pick.py +227 -0
- package/hooks/tezgah_snapshot.py +490 -0
- package/hooks/tezgah_stopspec.py +320 -0
- package/hooks/tezgah_task.py +458 -0
- package/hooks/tezgah_taste.py +201 -0
- package/hooks/tezgah_untrusted.py +112 -0
- package/hooks/tezgah_update.py +430 -0
- package/hosts/codex/hook.py +268 -0
- package/hosts/codex/hooks.json +26 -0
- package/hosts/cursor/hook.py +461 -0
- package/hosts/cursor/hooks.json +44 -0
- package/hosts/dsh/hooks.json +21 -0
- package/hosts/dsh/statusline/lib/client.js +138 -0
- package/hosts/dsh/statusline/lib/index.js +104 -0
- package/hosts/dsh/statusline/package.json +28 -0
- package/hosts/omp/hook.py +277 -0
- package/hosts/omp/tezgah-hook.ts.in +701 -0
- package/hosts/opencode/plugins/tezgah.js +2742 -0
- package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
- package/output-styles/tezgah.md +142 -0
- package/package.json +32 -0
- package/packaging/build.sh +342 -0
- package/packaging/install.ps1 +166 -0
- package/packaging/install.sh +56 -0
- package/packaging/upgrade.sh +142 -0
- package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
- package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
- package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
- package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
- package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
- package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
- package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
- package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
- package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
- package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
- package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
- package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
- package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
- package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
- package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
- package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
- package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
- package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
- package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
- package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
- package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
- package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
- package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
- package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
- package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
- package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
- package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
- package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
- package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
- package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
- package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
- package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
- package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
- package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
- package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
- package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
- package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
- package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
- package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
- package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
- package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
- package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
- package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
- package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
- package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
- package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
- package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
- package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
- package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
- package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
- package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
- package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
- package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
- package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
- package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
- package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
- package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
- package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
- package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
- package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
- package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
- package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
- package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
- package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
- package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
- package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
- package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
- package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
- package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
- package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
- package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
- package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
- package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
- package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
- package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
- package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
- package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
- package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
- package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
- package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
- package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
- package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
- package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
- package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
- package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
- package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
- package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
- package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
- package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
- package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
- package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
- package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
- package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
- package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
- package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
- package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
- package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
- package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
- package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
- package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
- package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
- package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
- package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
- package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
- package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
- package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
- package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
- package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
- package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
- package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
- package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
- package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
- package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
- package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
- package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
- package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
- package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
- package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
- package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
- package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
- package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
- package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
- package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
- package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
- package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
- package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
- package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
- package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
- package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
- package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
- package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
- package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
- package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
- package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
- package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
- package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
- package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
- package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
- package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
- package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
- package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
- package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
- package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
- package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
- package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
- package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
- package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
- package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
- package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
- package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
- package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
- package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
- package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
- package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
- package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
- package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
- package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
- package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
- package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
- package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
- package/skills/ai-research/SKILL.md +101 -0
- package/skills/ai-research/SOURCE +38 -0
- package/skills/ai-research/index/1-frame.md +18 -0
- package/skills/ai-research/index/2-data.md +21 -0
- package/skills/ai-research/index/3-train.md +48 -0
- package/skills/ai-research/index/4-measure.md +25 -0
- package/skills/ai-research/index/5-run.md +23 -0
- package/skills/ai-research/index/6-write.md +35 -0
- package/skills/ai-research/library.json +3456 -0
- package/skills/analyze-app/EVALS.md +82 -0
- package/skills/analyze-app/SKILL.md +188 -0
- package/skills/design-contract/EVALS.md +80 -0
- package/skills/design-contract/SKILL.md +171 -0
- package/skills/design-library/EVALS.md +85 -0
- package/skills/design-library/INDEX.md +59 -0
- package/skills/design-library/SKILL.md +58 -0
- package/skills/design-library/SOURCE +131 -0
- package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
- package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
- package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
- package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
- package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
- package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
- package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
- package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
- package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
- package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
- package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
- package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
- package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
- package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
- package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
- package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
- package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
- package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
- package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
- package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
- package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
- package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
- package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
- package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
- package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
- package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
- package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
- package/skills/feature-audit/EVALS.md +83 -0
- package/skills/feature-audit/SKILL.md +326 -0
- package/skills/harness/EVALS.md +81 -0
- package/skills/harness/SKILL.md +88 -0
- package/skills/i-have-adhd/EVALS.md +80 -0
- package/skills/i-have-adhd/SKILL.md +183 -0
- package/skills/no-ai-slop/EVALS.md +89 -0
- package/skills/no-ai-slop/SKILL.md +209 -0
- package/skills/no-ai-slop/eval.md +52 -0
- package/skills/plan-add/EVALS.md +79 -0
- package/skills/plan-add/SKILL.md +179 -0
- package/skills/plan-add/render_table.py +72 -0
- package/skills/plan-status/EVALS.md +78 -0
- package/skills/plan-status/SKILL.md +52 -0
- package/skills/plan-sync/EVALS.md +80 -0
- package/skills/plan-sync/SKILL.md +69 -0
- package/skills/pm-frameworks/SKILL.md +33 -0
- package/skills/pm-frameworks/SOURCE +39 -0
- package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
- package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
- package/skills/ponytail/EVALS.md +80 -0
- package/skills/ponytail/SKILL.md +124 -0
- package/skills/product-analysis/EVALS.md +103 -0
- package/skills/product-analysis/SKILL.md +361 -0
- package/skills/research/EVALS.md +104 -0
- package/skills/research/SKILL.md +570 -0
- package/skills/rl-env/SKILL.md +53 -0
- package/skills/rl-env/SOURCE +41 -0
- package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
- package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
- package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
- package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
- package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
- package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
- package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
- package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
- package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
- package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
- package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
- package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
- package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
- package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
- package/skills/tezgah-contract/EVALS.md +78 -0
- package/skills/tezgah-contract/SKILL.md +792 -0
- package/statusline.py +129 -0
- package/workflows/graph-impact.js +153 -0
- package/workflows/graph-map.js +158 -0
- package/workflows/graph-review.js +170 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
<!-- vendored from orchestra-research/AI-research-SKILLs@773a52944ba4747a18bd4ae9ade53fff041adcbc 06-post-training/openrlhf/references/multi-node-training.md; MIT (c) Orchestra Research -->
|
|
2
|
+
# Multi-Node Training
|
|
3
|
+
|
|
4
|
+
Complete guide to distributed Ray cluster training with OpenRLHF across multiple machines.
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
OpenRLHF uses Ray for distributed scheduling, allowing Actor, Critic, Reward, and Reference models to span multiple nodes. Supports fault tolerance through checkpointing and automatic task rescheduling.
|
|
9
|
+
|
|
10
|
+
## Ray Cluster Setup
|
|
11
|
+
|
|
12
|
+
### 1. Start Head Node (Master Machine)
|
|
13
|
+
|
|
14
|
+
**In Docker container**:
|
|
15
|
+
```bash
|
|
16
|
+
# Launch container on master node
|
|
17
|
+
docker run --runtime=nvidia -it --rm --shm-size="10g" \
|
|
18
|
+
--cap-add=SYS_ADMIN -v $PWD:/openrlhf \
|
|
19
|
+
nvcr.io/nvidia/pytorch:25.02-py3 bash
|
|
20
|
+
|
|
21
|
+
# Start Ray head node
|
|
22
|
+
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Output**:
|
|
26
|
+
```
|
|
27
|
+
Ray runtime started.
|
|
28
|
+
Dashboard: http://0.0.0.0:8265
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. Connect Worker Nodes
|
|
32
|
+
|
|
33
|
+
**On each worker machine**:
|
|
34
|
+
```bash
|
|
35
|
+
# Launch container
|
|
36
|
+
docker run --runtime=nvidia -it --rm --shm-size="10g" \
|
|
37
|
+
--cap-add=SYS_ADMIN -v $PWD:/openrlhf \
|
|
38
|
+
nvcr.io/nvidia/pytorch:25.02-py3 bash
|
|
39
|
+
|
|
40
|
+
# Connect to head node
|
|
41
|
+
ray start --address {MASTER-NODE-IP}:6379 --num-gpus 8
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Replace `{MASTER-NODE-IP}`** with head node's IP address.
|
|
45
|
+
|
|
46
|
+
### 3. Verify Cluster
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# On head node
|
|
50
|
+
ray status
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Output**:
|
|
54
|
+
```
|
|
55
|
+
Nodes: 4
|
|
56
|
+
- 1 head node (8 GPUs)
|
|
57
|
+
- 3 worker nodes (8 GPUs each)
|
|
58
|
+
Total GPUs: 32
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Distributed Training Configuration
|
|
62
|
+
|
|
63
|
+
### Multi-Node PPO Training
|
|
64
|
+
|
|
65
|
+
**4-node cluster (32 GPUs)** - 70B model:
|
|
66
|
+
```bash
|
|
67
|
+
ray job submit --address="http://127.0.0.1:8265" \
|
|
68
|
+
--runtime-env-json='{"working_dir": "/openrlhf"}' \
|
|
69
|
+
-- python3 -m openrlhf.cli.train_ppo_ray \
|
|
70
|
+
--ref_num_nodes 1 --ref_num_gpus_per_node 8 \
|
|
71
|
+
--reward_num_nodes 1 --reward_num_gpus_per_node 8 \
|
|
72
|
+
--critic_num_nodes 1 --critic_num_gpus_per_node 8 \
|
|
73
|
+
--actor_num_nodes 1 --actor_num_gpus_per_node 8 \
|
|
74
|
+
--vllm_num_engines 2 --vllm_tensor_parallel_size 4 \
|
|
75
|
+
--pretrain meta-llama/Llama-2-70b-hf \
|
|
76
|
+
--reward_pretrain ./reward-model-70b \
|
|
77
|
+
--save_path ./output/llama-70b-ppo \
|
|
78
|
+
--ckpt_path ./checkpoints/llama-70b-ppo \
|
|
79
|
+
--save_steps 100 --logging_steps 1 \
|
|
80
|
+
--micro_train_batch_size 2 --train_batch_size 128 \
|
|
81
|
+
--micro_rollout_batch_size 4 --rollout_batch_size 1024 \
|
|
82
|
+
--max_epochs 1 --prompt_max_len 1024 --generate_max_len 1024 \
|
|
83
|
+
--zero_stage 3 --bf16 \
|
|
84
|
+
--actor_learning_rate 5e-7 --critic_learning_rate 9e-6 \
|
|
85
|
+
--init_kl_coef 0.01 --normalize_reward \
|
|
86
|
+
--gradient_checkpointing --flash_attn
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**GPU allocation**:
|
|
90
|
+
- **Node 1**: Reference model (8 GPUs)
|
|
91
|
+
- **Node 2**: Reward model (8 GPUs)
|
|
92
|
+
- **Node 3**: Critic model (8 GPUs)
|
|
93
|
+
- **Node 4**: Actor model (8 GPUs)
|
|
94
|
+
|
|
95
|
+
### Model Distribution Arguments
|
|
96
|
+
|
|
97
|
+
**Per-model configuration**:
|
|
98
|
+
```bash
|
|
99
|
+
# Actor model
|
|
100
|
+
--actor_num_nodes 2 # 2 nodes for actor
|
|
101
|
+
--actor_num_gpus_per_node 8 # 8 GPUs per node = 16 GPUs total
|
|
102
|
+
|
|
103
|
+
# Critic model
|
|
104
|
+
--critic_num_nodes 1
|
|
105
|
+
--critic_num_gpus_per_node 8
|
|
106
|
+
|
|
107
|
+
# Reward model
|
|
108
|
+
--reward_num_nodes 1
|
|
109
|
+
--reward_num_gpus_per_node 8
|
|
110
|
+
|
|
111
|
+
# Reference model
|
|
112
|
+
--ref_num_nodes 1
|
|
113
|
+
--ref_num_gpus_per_node 8
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Hybrid Engine (Colocated Models)
|
|
117
|
+
|
|
118
|
+
**Share GPUs across models**:
|
|
119
|
+
```bash
|
|
120
|
+
# Colocate all models on same GPUs
|
|
121
|
+
--colocate_all_models
|
|
122
|
+
|
|
123
|
+
# Or colocate specific pairs
|
|
124
|
+
--colocate_actor_ref # Actor + Reference
|
|
125
|
+
--colocate_critic_reward # Critic + Reward
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Example (2-node, 16 GPUs)**:
|
|
129
|
+
```bash
|
|
130
|
+
ray job submit --address="http://127.0.0.1:8265" \
|
|
131
|
+
-- python3 -m openrlhf.cli.train_ppo_ray \
|
|
132
|
+
--colocate_all_models \
|
|
133
|
+
--vllm_enable_sleep --deepspeed_enable_sleep \
|
|
134
|
+
--actor_num_nodes 2 --actor_num_gpus_per_node 8 \
|
|
135
|
+
--critic_num_nodes 0 --critic_num_gpus_per_node 0 \
|
|
136
|
+
--reward_num_nodes 0 --reward_num_gpus_per_node 0 \
|
|
137
|
+
--ref_num_nodes 0 --ref_num_gpus_per_node 0 \
|
|
138
|
+
--vllm_num_engines 4 --vllm_tensor_parallel_size 4 \
|
|
139
|
+
# ... other args
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Result**: All models share 16 GPUs via sleep/wake cycles.
|
|
143
|
+
|
|
144
|
+
## vLLM Configuration
|
|
145
|
+
|
|
146
|
+
### Tensor Parallelism
|
|
147
|
+
|
|
148
|
+
**Multi-GPU per engine**:
|
|
149
|
+
```bash
|
|
150
|
+
--vllm_num_engines 4 # 4 engines
|
|
151
|
+
--vllm_tensor_parallel_size 4 # 4 GPUs each = 16 GPUs total
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### GPU Memory Management
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
--vllm_gpu_memory_utilization 0.5 # Use 50% GPU for vLLM
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Calculation**:
|
|
161
|
+
- A100 80GB × 0.5 = 40GB for vLLM
|
|
162
|
+
- Remaining 40GB for other models (if colocated)
|
|
163
|
+
|
|
164
|
+
## Checkpointing
|
|
165
|
+
|
|
166
|
+
### Enable Checkpointing
|
|
167
|
+
|
|
168
|
+
**Basic checkpointing**:
|
|
169
|
+
```bash
|
|
170
|
+
--save_path ./output/model # Final save path
|
|
171
|
+
--ckpt_path ./checkpoints/model # Checkpoint directory
|
|
172
|
+
--save_steps 100 # Save every 100 steps
|
|
173
|
+
--save_value_network # Also save critic
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**HuggingFace format**:
|
|
177
|
+
```bash
|
|
178
|
+
--save_hf_ckpt # Save as HuggingFace model (easier loading)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**DeepSpeed universal checkpoint**:
|
|
182
|
+
```bash
|
|
183
|
+
--use_ds_universal_ckpt # Compatible across ZeRO stages
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Checkpoint Content
|
|
187
|
+
|
|
188
|
+
**Saved state**:
|
|
189
|
+
```python
|
|
190
|
+
{
|
|
191
|
+
"global_step": 1000,
|
|
192
|
+
"episode": 10,
|
|
193
|
+
"data_loader_state_dict": {...},
|
|
194
|
+
"actor_model": {...}, # DeepSpeed checkpoint
|
|
195
|
+
"critic_model": {...} # If --save_value_network
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Files created**:
|
|
200
|
+
```
|
|
201
|
+
checkpoints/llama-70b-ppo/
|
|
202
|
+
├── global_step_1000/
|
|
203
|
+
│ ├── actor/
|
|
204
|
+
│ │ ├── mp_rank_00_model_states.pt
|
|
205
|
+
│ │ ├── zero_pp_rank_0_mp_rank_00optim_states.pt
|
|
206
|
+
│ │ └── ...
|
|
207
|
+
│ └── critic/ (if --save_value_network)
|
|
208
|
+
│ └── ...
|
|
209
|
+
└── hf_ckpt/ (if --save_hf_ckpt)
|
|
210
|
+
├── config.json
|
|
211
|
+
├── pytorch_model.bin
|
|
212
|
+
└── ...
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Resume Training
|
|
216
|
+
|
|
217
|
+
**From checkpoint**:
|
|
218
|
+
```bash
|
|
219
|
+
ray job submit --address="http://127.0.0.1:8265" \
|
|
220
|
+
-- python3 -m openrlhf.cli.train_ppo_ray \
|
|
221
|
+
--load_checkpoint # Enable resume
|
|
222
|
+
--ckpt_path ./checkpoints/llama-70b-ppo # Checkpoint dir
|
|
223
|
+
# ... other args (must match original)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**Resume logic**:
|
|
227
|
+
1. `PPOTrainer.fit()` checks for existing checkpoints
|
|
228
|
+
2. Loads latest checkpoint from `ckpt_path`
|
|
229
|
+
3. Restores `global_step`, `episode`, dataloader state
|
|
230
|
+
4. Continues training from that point
|
|
231
|
+
|
|
232
|
+
## Fault Tolerance
|
|
233
|
+
|
|
234
|
+
### Automatic Task Rescheduling
|
|
235
|
+
|
|
236
|
+
**Ray's built-in fault tolerance**:
|
|
237
|
+
- If worker node fails → Ray reschedules tasks on available nodes
|
|
238
|
+
- Requires sufficient resources on remaining nodes
|
|
239
|
+
- May need to reinitialize some components
|
|
240
|
+
|
|
241
|
+
### DeepSpeed Sleep Mode Protection
|
|
242
|
+
|
|
243
|
+
**Prevents OOM-related failures**:
|
|
244
|
+
```bash
|
|
245
|
+
--deepspeed_enable_sleep # Offload to CPU when not training
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Sleep/wake cycle**:
|
|
249
|
+
1. Model offloaded to CPU after training
|
|
250
|
+
2. Frees GPU memory for other components
|
|
251
|
+
3. Reloaded from CPU before next training step
|
|
252
|
+
4. Synchronized via Ray barriers
|
|
253
|
+
|
|
254
|
+
**OOM prevention**:
|
|
255
|
+
- Models don't compete for GPU memory
|
|
256
|
+
- Sequential loading prevents concurrent OOM
|
|
257
|
+
- Barriers ensure synchronization
|
|
258
|
+
|
|
259
|
+
### Checkpoint-Based Recovery
|
|
260
|
+
|
|
261
|
+
**Recover from catastrophic failure**:
|
|
262
|
+
1. Training interrupted (node crash, OOM, etc.)
|
|
263
|
+
2. Restart Ray cluster
|
|
264
|
+
3. Resume with `--load_checkpoint`
|
|
265
|
+
4. Training continues from last saved step
|
|
266
|
+
|
|
267
|
+
**Best practice**:
|
|
268
|
+
```bash
|
|
269
|
+
--save_steps 100 # Frequent checkpointing (every 100 steps)
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Monitoring
|
|
273
|
+
|
|
274
|
+
### Ray Dashboard
|
|
275
|
+
|
|
276
|
+
**Access dashboard**:
|
|
277
|
+
```
|
|
278
|
+
http://{HEAD-NODE-IP}:8265
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Monitor**:
|
|
282
|
+
- Node status (active, idle, failed)
|
|
283
|
+
- GPU utilization per node
|
|
284
|
+
- Task scheduling (which models on which nodes)
|
|
285
|
+
- Resource usage (memory, CPU, GPU)
|
|
286
|
+
|
|
287
|
+
### Weights & Biases Integration
|
|
288
|
+
|
|
289
|
+
**Enable W&B logging**:
|
|
290
|
+
```bash
|
|
291
|
+
--use_wandb {your-wandb-token}
|
|
292
|
+
--wandb_org your-org
|
|
293
|
+
--wandb_project llama-70b-ppo
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Metrics logged**:
|
|
297
|
+
- Training loss per step
|
|
298
|
+
- Reward scores
|
|
299
|
+
- KL divergence
|
|
300
|
+
- GPU utilization per node
|
|
301
|
+
|
|
302
|
+
## Performance Optimization
|
|
303
|
+
|
|
304
|
+
### InfiniBand for Multi-Node
|
|
305
|
+
|
|
306
|
+
**For nodes with InfiniBand**:
|
|
307
|
+
```bash
|
|
308
|
+
# Set environment variable before starting Ray
|
|
309
|
+
export NCCL_IB_HCA=mlx5_0 # InfiniBand device
|
|
310
|
+
export NCCL_SOCKET_IFNAME=ib0
|
|
311
|
+
export NCCL_IB_DISABLE=0
|
|
312
|
+
|
|
313
|
+
ray start --head --node-ip-address 0.0.0.0 --num-gpus 8
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Performance gain**: 2-3× faster multi-node communication
|
|
317
|
+
|
|
318
|
+
### Gradient Checkpointing
|
|
319
|
+
|
|
320
|
+
**Reduce memory, enable larger models**:
|
|
321
|
+
```bash
|
|
322
|
+
--gradient_checkpointing # Trade compute for memory
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Flash Attention 2
|
|
326
|
+
|
|
327
|
+
**Faster attention, lower memory**:
|
|
328
|
+
```bash
|
|
329
|
+
--flash_attn # Requires FlashAttention installed
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Packing Samples
|
|
333
|
+
|
|
334
|
+
**Improve GPU utilization**:
|
|
335
|
+
```bash
|
|
336
|
+
--packing_samples # Pack multiple samples per batch
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
## Troubleshooting
|
|
340
|
+
|
|
341
|
+
### Ray Connection Issues
|
|
342
|
+
|
|
343
|
+
**Symptom**: Worker nodes can't connect to head
|
|
344
|
+
|
|
345
|
+
**Solution**: Check firewall/network
|
|
346
|
+
```bash
|
|
347
|
+
# On head node, ensure ports open
|
|
348
|
+
# Default ports: 6379 (Redis), 8265 (Dashboard), 10001-10100 (workers)
|
|
349
|
+
|
|
350
|
+
# Test connection from worker
|
|
351
|
+
telnet {HEAD-NODE-IP} 6379
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Node Failures During Training
|
|
355
|
+
|
|
356
|
+
**Symptom**: Ray reports node failure
|
|
357
|
+
|
|
358
|
+
**Solution 1** - Resume from checkpoint:
|
|
359
|
+
```bash
|
|
360
|
+
# Fix failed node or remove from cluster
|
|
361
|
+
ray stop # On failed node
|
|
362
|
+
# Then resume training with --load_checkpoint
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Solution 2** - Adjust resources:
|
|
366
|
+
```bash
|
|
367
|
+
# Reduce nodes if some failed
|
|
368
|
+
--actor_num_nodes 1 # Instead of 2
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### OOM on Multi-Node
|
|
372
|
+
|
|
373
|
+
**Symptom**: OOM despite multi-node setup
|
|
374
|
+
|
|
375
|
+
**Solution 1** - Reduce batch sizes:
|
|
376
|
+
```bash
|
|
377
|
+
--micro_train_batch_size 1 # Reduce from 2
|
|
378
|
+
--micro_rollout_batch_size 2 # Reduce from 4
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
**Solution 2** - Enable sleep modes:
|
|
382
|
+
```bash
|
|
383
|
+
--vllm_enable_sleep
|
|
384
|
+
--deepspeed_enable_sleep
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Solution 3** - Increase ZeRO stage:
|
|
388
|
+
```bash
|
|
389
|
+
--zero_stage 3 # Maximum sharding
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Checkpoint Loading Fails
|
|
393
|
+
|
|
394
|
+
**Symptom**: `FileNotFoundError` when resuming
|
|
395
|
+
|
|
396
|
+
**Check checkpoint path**:
|
|
397
|
+
```bash
|
|
398
|
+
ls -la ./checkpoints/llama-70b-ppo/
|
|
399
|
+
# Verify global_step_* directories exist
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
**Solution**: Ensure `--ckpt_path` matches save location
|
|
403
|
+
```bash
|
|
404
|
+
--ckpt_path ./checkpoints/llama-70b-ppo # Same as during save
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
## Complete Multi-Node Example
|
|
408
|
+
|
|
409
|
+
### 8-node cluster (64 GPUs) - 70B model
|
|
410
|
+
|
|
411
|
+
**Head node (Node 1)**:
|
|
412
|
+
```bash
|
|
413
|
+
ray start --head --node-ip-address 10.0.0.1 --num-gpus 8
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
**Worker nodes (Nodes 2-8)**:
|
|
417
|
+
```bash
|
|
418
|
+
ray start --address 10.0.0.1:6379 --num-gpus 8
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Submit job**:
|
|
422
|
+
```bash
|
|
423
|
+
ray job submit --address="http://10.0.0.1:8265" \
|
|
424
|
+
--runtime-env-json='{"working_dir": "/openrlhf"}' \
|
|
425
|
+
-- python3 -m openrlhf.cli.train_ppo_ray \
|
|
426
|
+
--ref_num_nodes 2 --ref_num_gpus_per_node 8 \
|
|
427
|
+
--reward_num_nodes 2 --reward_num_gpus_per_node 8 \
|
|
428
|
+
--critic_num_nodes 2 --critic_num_gpus_per_node 8 \
|
|
429
|
+
--actor_num_nodes 2 --actor_num_gpus_per_node 8 \
|
|
430
|
+
--vllm_num_engines 4 --vllm_tensor_parallel_size 4 \
|
|
431
|
+
--pretrain meta-llama/Llama-2-70b-hf \
|
|
432
|
+
--reward_pretrain ./reward-70b \
|
|
433
|
+
--save_path ./output/llama-70b-ppo \
|
|
434
|
+
--ckpt_path ./checkpoints/llama-70b-ppo \
|
|
435
|
+
--save_steps 100 --save_hf_ckpt \
|
|
436
|
+
--micro_train_batch_size 1 --train_batch_size 128 \
|
|
437
|
+
--micro_rollout_batch_size 2 --rollout_batch_size 1024 \
|
|
438
|
+
--max_epochs 1 --bf16 --zero_stage 3 \
|
|
439
|
+
--actor_learning_rate 5e-7 --critic_learning_rate 9e-6 \
|
|
440
|
+
--gradient_checkpointing --flash_attn --packing_samples \
|
|
441
|
+
--use_wandb {token} --wandb_project llama-70b-ppo
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
**GPU allocation**:
|
|
445
|
+
- Reference: 16 GPUs (2 nodes × 8)
|
|
446
|
+
- Reward: 16 GPUs (2 nodes × 8)
|
|
447
|
+
- Critic: 16 GPUs (2 nodes × 8)
|
|
448
|
+
- Actor: 16 GPUs (2 nodes × 8)
|
|
449
|
+
- **Total**: 64 GPUs
|
|
450
|
+
|
|
451
|
+
## References
|
|
452
|
+
|
|
453
|
+
- Ray Docs: https://docs.ray.io/
|
|
454
|
+
- OpenRLHF: https://github.com/OpenRLHF/OpenRLHF
|
|
455
|
+
- DeepSpeed ZeRO: https://www.deepspeed.ai/tutorials/zero/
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: simpo-training
|
|
3
|
+
description: Simple Preference Optimization for LLM alignment. Reference-free alternative to DPO with better performance (+6.4 points on AlpacaEval 2.0). No reference model needed, more efficient than DPO. Use for preference alignment when want simpler, faster training than DPO/PPO.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Orchestra Research
|
|
6
|
+
license: MIT
|
|
7
|
+
tags: [Post-Training, SimPO, Preference Optimization, Alignment, DPO Alternative, Reference-Free, LLM Alignment, Efficient Training]
|
|
8
|
+
dependencies: [torch, transformers, datasets, trl, accelerate]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# SimPO - Simple Preference Optimization
|
|
12
|
+
|
|
13
|
+
## Quick start
|
|
14
|
+
|
|
15
|
+
SimPO is a reference-free preference optimization method that outperforms DPO without needing a reference model.
|
|
16
|
+
|
|
17
|
+
**Installation**:
|
|
18
|
+
```bash
|
|
19
|
+
# Create environment
|
|
20
|
+
conda create -n simpo python=3.10 && conda activate simpo
|
|
21
|
+
|
|
22
|
+
# Install PyTorch 2.2.2
|
|
23
|
+
# Visit: https://pytorch.org/get-started/locally/
|
|
24
|
+
|
|
25
|
+
# Install alignment-handbook
|
|
26
|
+
git clone https://github.com/huggingface/alignment-handbook.git
|
|
27
|
+
cd alignment-handbook
|
|
28
|
+
python -m pip install .
|
|
29
|
+
|
|
30
|
+
# Install Flash Attention 2
|
|
31
|
+
python -m pip install flash-attn --no-build-isolation
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Training** (Mistral 7B):
|
|
35
|
+
```bash
|
|
36
|
+
ACCELERATE_LOG_LEVEL=info accelerate launch \
|
|
37
|
+
--config_file accelerate_configs/deepspeed_zero3.yaml \
|
|
38
|
+
scripts/run_simpo.py \
|
|
39
|
+
training_configs/mistral-7b-base-simpo.yaml
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Common workflows
|
|
43
|
+
|
|
44
|
+
### Workflow 1: Train from base model (Mistral 7B)
|
|
45
|
+
|
|
46
|
+
**Config** (`mistral-7b-base-simpo.yaml`):
|
|
47
|
+
```yaml
|
|
48
|
+
# Model
|
|
49
|
+
model_name_or_path: mistralai/Mistral-7B-v0.1
|
|
50
|
+
torch_dtype: bfloat16
|
|
51
|
+
|
|
52
|
+
# Dataset
|
|
53
|
+
dataset_mixer:
|
|
54
|
+
HuggingFaceH4/ultrafeedback_binarized: 1.0
|
|
55
|
+
dataset_splits:
|
|
56
|
+
- train_prefs
|
|
57
|
+
- test_prefs
|
|
58
|
+
|
|
59
|
+
# SimPO hyperparameters
|
|
60
|
+
beta: 2.0 # Reward scaling (2.0-10.0)
|
|
61
|
+
gamma_beta_ratio: 0.5 # Target margin (0-1)
|
|
62
|
+
loss_type: sigmoid # sigmoid or hinge
|
|
63
|
+
sft_weight: 0.0 # Optional SFT regularization
|
|
64
|
+
|
|
65
|
+
# Training
|
|
66
|
+
learning_rate: 5e-7 # Critical: 3e-7 to 1e-6
|
|
67
|
+
num_train_epochs: 1
|
|
68
|
+
per_device_train_batch_size: 1
|
|
69
|
+
gradient_accumulation_steps: 8
|
|
70
|
+
|
|
71
|
+
# Output
|
|
72
|
+
output_dir: ./outputs/mistral-7b-simpo
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Launch training**:
|
|
76
|
+
```bash
|
|
77
|
+
accelerate launch --config_file accelerate_configs/deepspeed_zero3.yaml \
|
|
78
|
+
scripts/run_simpo.py training_configs/mistral-7b-base-simpo.yaml
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Workflow 2: Fine-tune instruct model (Llama 3 8B)
|
|
82
|
+
|
|
83
|
+
**Config** (`llama3-8b-instruct-simpo.yaml`):
|
|
84
|
+
```yaml
|
|
85
|
+
model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
|
|
86
|
+
|
|
87
|
+
dataset_mixer:
|
|
88
|
+
argilla/ultrafeedback-binarized-preferences-cleaned: 1.0
|
|
89
|
+
|
|
90
|
+
beta: 2.5
|
|
91
|
+
gamma_beta_ratio: 0.5
|
|
92
|
+
learning_rate: 5e-7
|
|
93
|
+
sft_weight: 0.1 # Add SFT loss to preserve capabilities
|
|
94
|
+
|
|
95
|
+
num_train_epochs: 1
|
|
96
|
+
per_device_train_batch_size: 2
|
|
97
|
+
gradient_accumulation_steps: 4
|
|
98
|
+
output_dir: ./outputs/llama3-8b-simpo
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Launch**:
|
|
102
|
+
```bash
|
|
103
|
+
accelerate launch --config_file accelerate_configs/deepspeed_zero3.yaml \
|
|
104
|
+
scripts/run_simpo.py training_configs/llama3-8b-instruct-simpo.yaml
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Workflow 3: Reasoning-intensive tasks (lower LR)
|
|
108
|
+
|
|
109
|
+
**For math/code tasks**:
|
|
110
|
+
```yaml
|
|
111
|
+
model_name_or_path: deepseek-ai/deepseek-math-7b-base
|
|
112
|
+
|
|
113
|
+
dataset_mixer:
|
|
114
|
+
argilla/distilabel-math-preference-dpo: 1.0
|
|
115
|
+
|
|
116
|
+
beta: 5.0 # Higher for stronger signal
|
|
117
|
+
gamma_beta_ratio: 0.7 # Larger margin
|
|
118
|
+
learning_rate: 3e-7 # Lower LR for reasoning
|
|
119
|
+
sft_weight: 0.0
|
|
120
|
+
|
|
121
|
+
num_train_epochs: 1
|
|
122
|
+
per_device_train_batch_size: 1
|
|
123
|
+
gradient_accumulation_steps: 16
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## When to use vs alternatives
|
|
127
|
+
|
|
128
|
+
**Use SimPO when**:
|
|
129
|
+
- Want simpler training than DPO (no reference model)
|
|
130
|
+
- Have preference data (chosen/rejected pairs)
|
|
131
|
+
- Need better performance than DPO
|
|
132
|
+
- Limited compute resources
|
|
133
|
+
- Single-node training sufficient
|
|
134
|
+
|
|
135
|
+
**Algorithm selection**:
|
|
136
|
+
- **SimPO**: Simplest, best performance, no reference model
|
|
137
|
+
- **DPO**: Need reference model baseline, more conservative
|
|
138
|
+
- **PPO**: Maximum control, need reward model, complex setup
|
|
139
|
+
- **GRPO**: Memory-efficient RL, no critic
|
|
140
|
+
|
|
141
|
+
**Use alternatives instead**:
|
|
142
|
+
- **OpenRLHF**: Multi-node distributed training, PPO/GRPO
|
|
143
|
+
- **TRL**: Need multiple methods in one framework
|
|
144
|
+
- **DPO**: Established baseline comparison
|
|
145
|
+
|
|
146
|
+
## Common issues
|
|
147
|
+
|
|
148
|
+
**Issue: Loss divergence**
|
|
149
|
+
|
|
150
|
+
Reduce learning rate:
|
|
151
|
+
```yaml
|
|
152
|
+
learning_rate: 3e-7 # Reduce from 5e-7
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Reduce beta:
|
|
156
|
+
```yaml
|
|
157
|
+
beta: 1.0 # Reduce from 2.0
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Issue: Model forgets capabilities**
|
|
161
|
+
|
|
162
|
+
Add SFT regularization:
|
|
163
|
+
```yaml
|
|
164
|
+
sft_weight: 0.1 # Add SFT loss component
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Issue: Poor preference separation**
|
|
168
|
+
|
|
169
|
+
Increase beta and margin:
|
|
170
|
+
```yaml
|
|
171
|
+
beta: 5.0 # Increase from 2.0
|
|
172
|
+
gamma_beta_ratio: 0.8 # Increase from 0.5
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Issue: OOM during training**
|
|
176
|
+
|
|
177
|
+
Reduce batch size:
|
|
178
|
+
```yaml
|
|
179
|
+
per_device_train_batch_size: 1
|
|
180
|
+
gradient_accumulation_steps: 16 # Maintain effective batch
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Enable gradient checkpointing:
|
|
184
|
+
```yaml
|
|
185
|
+
gradient_checkpointing: true
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Advanced topics
|
|
189
|
+
|
|
190
|
+
**Loss functions**: See [references/loss-functions.md](references/loss-functions.md) for sigmoid vs hinge loss, mathematical formulations, and when to use each.
|
|
191
|
+
|
|
192
|
+
**Hyperparameter tuning**: See [references/hyperparameters.md](references/hyperparameters.md) for beta, gamma, learning rate selection guide, and model-size-specific recommendations.
|
|
193
|
+
|
|
194
|
+
**Dataset preparation**: See [references/datasets.md](references/datasets.md) for preference data formats, quality filtering, and custom dataset creation.
|
|
195
|
+
|
|
196
|
+
## Hardware requirements
|
|
197
|
+
|
|
198
|
+
- **GPU**: NVIDIA A100/H100 recommended
|
|
199
|
+
- **VRAM**:
|
|
200
|
+
- 7B model: 1× A100 40GB (DeepSpeed ZeRO-3)
|
|
201
|
+
- 8B model: 2× A100 40GB
|
|
202
|
+
- 70B model: 8× A100 80GB
|
|
203
|
+
- **Single-node**: DeepSpeed ZeRO-3 sufficient
|
|
204
|
+
- **Mixed precision**: BF16 recommended
|
|
205
|
+
|
|
206
|
+
**Memory optimization**:
|
|
207
|
+
- DeepSpeed ZeRO-3 (default config)
|
|
208
|
+
- Gradient checkpointing
|
|
209
|
+
- Flash Attention 2
|
|
210
|
+
|
|
211
|
+
## Resources
|
|
212
|
+
|
|
213
|
+
- Paper: https://arxiv.org/abs/2405.14734 (NeurIPS 2024)
|
|
214
|
+
- GitHub: https://github.com/princeton-nlp/SimPO
|
|
215
|
+
- Models: https://huggingface.co/princeton-nlp
|
|
216
|
+
- Alignment Handbook: https://github.com/huggingface/alignment-handbook
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|