界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

svi-and-autoguides

svi-and-autoguides

【开发与工程】Build, train, and debug Pyro SVI, ELBO, autoguide, and optimizer workflows.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: svi-and-autoguides description: "Build, train, and debug Pyro SVI, ELBO, autoguide, and optimizer workflows." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

SVI And Autoguides

Use this sub-skill when the user is building, training, evaluating, or debugging Pyro stochastic variational inference (SVI): SVI.step(), evaluate_loss(), model-guide pairing, ELBO choice, autoguides, Pyro optimizer wrappers, vanilla PyTorch optimizer loops, minibatching/subsampling, JIT/vectorized particles, or discrete-enumeration handoffs.

Route First

  • For runnable SVI loop patterns, ELBO selection, minibatching, JIT, evaluation, and posterior-prediction handoff, read references/svi-workflows.md.
  • For autoguide choice, initialization, constraints, AutoGuideList, PyroOptim versus torch.optim, local PyroModule parameters, and flow guide caveats, read references/autoguide-and-optimizer-reference.md.
  • For warnings/errors such as missing or extra guide sites, model-guide shape mismatches, invalid log_prob shape, NaNs, optimizer state surprises, JIT warnings, and discrete-latent enumeration routing, read references/troubleshooting.md.
  • To confirm the installed package can run a tiny CPU SVI loop using only this bundled skill script, run scripts/minipyro_svi_smoke.py. Start with python scripts/minipyro_svi_smoke.py --help; the default run is intentionally short.

Best-Fit Tasks

Use this sub-skill for requests like:

  • "write an SVI loop for this model and guide";
  • "choose between Trace_ELBO, TraceEnum_ELBO, and TraceMeanField_ELBO";
  • "replace my hand-written guide with an autoguide";
  • "use a PyTorch dataloader/optimizer instead of pyro.optim.Adam";
  • "make SVI faster with num_particles, vectorize_particles, or JIT";
  • "debug a guide-site mismatch, shape error, NaN loss, or optimizer checkpoint".

Boundaries And Reroutes

  • Basic pyro.sample, pyro.param, pyro.plate, parameter-store lifecycle, and PyroModule basics: route to ../modeling-basics/.
  • Distribution choice, support constraints, .to_event(), and detailed batch/event/plate shape algebra: route to ../distributions-and-shapes/.
  • MCMC, NUTS/HMC, Predictive, posterior predictive sample shapes, and MCMC diagnostics: route to ../mcmc-and-prediction/.
  • Effect-handler composition, config_enumerate, infer_discrete, enumeration dimension allocation, masking/scaling handlers, and reparameterizers: route to ../effect-handlers-and-enumeration/.
  • Optional CUDA, funsor, Horovod, Lightning, Graphviz, torchvision, pandas, and scanpy workflows are not part of the minimum verified runtime. Treat them as optional or unverified unless the active user environment proves otherwise.

High-Value Checks Before Answering

  1. Clear or isolate parameter state (pyro.clear_param_store() or module-local parameters) before comparing training runs.
  2. Ensure model and guide take the same *args, **kwargs; pass all SVI data through svi.step(...) or the ELBO module call.
  3. Check every unobserved continuous latent appears in the guide unless it is deliberately model-enumerated or otherwise marginalized.
  4. For discrete latent variables, do not guess a continuous autoguide. Decide whether to enumerate, use AutoDiscreteParallel, or reroute enumeration mechanics to the sibling enumeration sub-skill.
  5. Keep validation enabled while debugging; most useful model/guide and shape errors are validation-time checks.
我的收藏