Skip to main content

training-loop-integration

Migrate raw PyTorch training and evaluation loops to Hugging Face Accelerate using Accelerator, prepare(), backward(), gradient accumulation, dataloader behavior, gather/reduce, mixed precision, DDP kwargs, local SGD, communication hooks, and basic distributed logging.

Zur Installation springen

Quellinformationen

Repository
VectorSpaceLab/AREX-Skill
Letzte Quellaktivität
26. August 2026 um 16:31
Erkannte Sprache von SKILL.md
Englisch
Sterne
12
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
training-loop-integration
description
Migrate raw PyTorch training and evaluation loops to Hugging Face Accelerate using Accelerator, prepare(), backward(), gradient accumulation, dataloader behavior, gather/reduce, mixed precision, DDP kwargs, local SGD, communication hooks, and basic distributed logging.
disable-model-invocation
true
metadata
{"disco-role":"operating"}
license
Apache 2.0
# Training Loop Integration Use this sub-skill when adapting an existing PyTorch model, optimizer, dataloader, scheduler, or evaluation loop to Accelerate while keeping the training code mostly framework-neutral. ## Route first - For `accelerate config`, `accelerate launch`, launch flags, config files, or process-count setup, use `../configuration-and-cli/`. - For DeepSpeed, FSDP, TPU, Megatron-LM, FP8 backend recipes, or backend-specific plugin tuning, use `../distributed-training-backends/`. - For `save_state`, `load_state`, model checkpoint saving, trackers, profiler, or experiment dashboards, use `../checkpointing-and-tracking/`. - For large-model loading, device maps, offload, or inference dispatch, use the root skill routing to the big-model sub-skill. ## Start here 1. Read `references/workflows.md` for migration recipes and loop patterns. 2. Read `references/api-reference.md` for constructor options, wrappers, dataloader semantics, gather/reduce, kwargs handlers, logging, and scheduler behavior. 3. Read `references/troubleshooting.md` when a distributed loop hangs, metrics are wrong, gradients do not sync, or device placement behaves unexpectedly. 4. Run `scripts/accelerator_loop_smoke.py` to verify a minimal CPU training loop in the current environment. ## Core migration checklist - Create one `Accelerator` early, before distributed-sensitive objects need its state. - Remove hard-coded `.cuda()` and direct `.to("cuda")`; prefer automatic device placement through `accelerator.prepare()`. - Pass related PyTorch objects to `accelerator.prepare(...)` and unpack them in the same order. - Replace `loss.backward()` with `accelerator.backward(loss)`. - For accumulation, create `Accelerator(gradient_accumulation_steps=N)` or a `GradientAccumulationPlugin`, then wrap each minibatch body in `with accelerator.accumulate(model):`. - Use `accelerator.gather_for_metrics(...)` for evaluation metrics and `accelerator.pad_across_processes(...)` before gathering variable-size tensors. - Use `accelerator.print(...)` or `accelerate.logging.get_logger(...)` instead of unsynchronized process-wide `print()` spam. ## Smoke check ```bash python skills/accelerate/sub-skills/training-loop-integration/scripts/accelerator_loop_smoke.py python skills/accelerate/sub-skills/training-loop-integration/scripts/accelerator_loop_smoke.py --help ``` The smoke script is intentionally CPU-safe and tiny. It validates importability, `Accelerator.prepare`, `Accelerator.accumulate`, `Accelerator.backward`, scheduler wrapping, and metric gathering without requiring a distributed launcher.
Auf GitHub ansehen