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()