nemo_curator.core.serve.dynamo.infra
nemo_curator.core.serve.dynamo.infra
nemo_curator.core.serve.dynamo.infra
Dynamo-specific placement, naming, and CLI-translation helpers.
Kept separate from subprocess_mgr so the generic Ray/subprocess
infrastructure there stays reusable and free of Dynamo conventions
(infra services, worker-actor naming, vLLM CLI flag shape).
Create a STRICT_PACK PG for Dynamo infra services (etcd + NATS + frontend).
All bundles co-locate on one node so infra chatter stays off the wire.
When CURATOR_IGNORE_RAY_HEAD_NODE is set, every bundle requires a
non-head (worker-labeled) node.
Build a descriptive Dynamo worker actor name for Ray dashboard visibility.
Format: Dynamo_[<role>_]DP<n>[_TP<n>]_<model>.
Examples::
build_worker_actor_name(“Qwen3-0.6B”, 0, 0, 1) # Dynamo_DP0_Qwen3-0.6B build_worker_actor_name(“Qwen3-0.6B”, 1, 0, 4) # Dynamo_DP1_TP0_Qwen3-0.6B build_worker_actor_name(“Qwen3-0.6B”, 0, 0, 2, role=“decode”) # Dynamo_decode_DP0_TP0_Qwen3-0.6B
Build the dyn://namespace.component.endpoint URI a Dynamo worker registers under.
Convert a vLLM engine_kwargs dict to a list of CLI flags.
Example: {"tensor_parallel_size": 4, "enforce_eager": True}
becomes ["--tensor-parallel-size", "4", "--enforce-eager"].
Sanitize name into a valid Dynamo component slug.
Dynamo endpoints use dyn://namespace.component.endpoint where dots
are delimiters, so any dotted identifier in the model name has to be
flattened. Generic across engines (vLLM, SGLang, …).