Skip to content

quick

quick

Quick job runner for rapid prototyping and testing.

Usage

from theseus.quick import quick from theseus.registry import JOBS

job = JOBS["continual/train/abcd"]

with quick(job, "/sailhome/houjun/theseus/", "test") as j: j.config.logging.checkpoint_interval = 16384 j.config.logging.validation_interval = 2048 j.config.training.per_device_batch_size = 16

j()

Or save config to file for later submission:

with quick(job, "/sailhome/houjun/theseus/", "test") as j: j.config.training.per_device_batch_size = 16 j.save("config.yaml", chip="h100", n_chips=8, n_shards=4)

QuickJob(job_cls: Any, job_name: str, out_path: str | None, name: str, project: str | None = None, group: str | None = None)

Wrapper for quick job execution.

close() -> None

Reset the global config context set by init().

create() -> Any

Create and return the job instance without running it.

__call__() -> Any

Run the job.

save(out_yaml: str, chip: str | None = None, n_chips: int | None = None, n_shards: int | None = None) -> Path

Save the config to a YAML file.

Parameters:

Name Type Description Default
out_yaml str

Output path for the YAML config

required
chip str | None

Optional chip type for hardware request (e.g., "h100", "a100")

None
n_chips int | None

Optional minimum number of chips for hardware request

None
n_shards int | None

Optional number of tensor parallel shards for the model

None

Returns:

Type Description
Path

Path to the saved config file

quick(job: Any | str, name: str, out_path: str | None = None, project: str | None = None, group: str | None = None) -> Generator[QuickJob, None, None]

Context manager for quick job execution.

Parameters:

Name Type Description Default
job Any | str

Job class or job name string (e.g., "continual/train/abcd")

required
name str

Name of the job run

required
out_path str | None

Output path for job results. If None, uses $THESEUS_ROOT or "."

None
project str | None

Optional project name

None
group str | None

Optional group name

None

Yields:

Type Description
QuickJob

QuickJob instance with .config attribute for modification

Example

with quick(JOBS["my/job"], "/path/to/output", "test") as j: j.config.training.batch_size = 32 j()

init(job: Any | str, name: str, out_path: str | None = None, project: str | None = None, group: str | None = None) -> QuickJob

Non-context-manager variant of quick().

Sets the global config directly. Call .close() when done to reset it.

Parameters:

Name Type Description Default
job Any | str

Job class or job name string (e.g., "continual/train/abcd")

required
name str

Name of the job run

required
out_path str | None

Output path for job results. If None, uses $THESEUS_ROOT or "."

None
project str | None

Optional project name

None
group str | None

Optional group name

None

Returns:

Type Description
QuickJob

QuickJob instance with .config attribute for modification.

Example

j = init(BackbonedTrainer, "test") j.config.training.per_device_batch_size = 1 job = j.create()

... use job ...

j.close()