# tinker checkpoint ## **tinker checkpoint** Manage checkpoints. All checkpoint commands take a `CHECKPOINT_PATH` in the format `tinker://run-id/sampler_weights/final`. All commands support `-f, --format [table|json]` for output format. ### tinker checkpoint delete *[CHECKPOINT_PATHS]...* Delete one or more checkpoints permanently. Delete by explicit paths: ```text tinker checkpoint delete tinker://run-id/weights/0001 tinker://run-id/weights/0002 ``` Delete all checkpoints for a training run: ```text tinker checkpoint delete --run-id `` ``` Delete with filters: ```text tinker checkpoint delete --run-id `` --type weights --before 2024-06-01 ``` Delete checkpoints in a date range: ```text tinker checkpoint delete --run-id `` --after 2024-01-01 --before 2024-02-01 ``` Dates are interpreted as UTC. Use full ISO 8601 datetime for precision: ```text tinker checkpoint delete --run-id `` --before 2024-06-01T08:00:00Z ``` Only the owner of the training run can delete checkpoints. WARNING: This action is permanent and cannot be undone. **Options:** - `--run-id TEXT` — Delete all checkpoints for a training run - `--type TEXT` — Filter by type: weights or sampler_weights - `--before TEXT` — Filter: created before date in UTC (ISO 8601, e.g. 2024-01-01, 2024-01-01T08:00:00Z) - `--after TEXT` — Filter: created after date in UTC (ISO 8601, e.g. 2024-01-01, 2024-01-01T08:00:00Z) - `-y, --yes` — Skip confirmation prompt ```bash $ tinker checkpoint delete tinker://run-id/sampler_weights/step-100 # Delete multiple $ tinker checkpoint delete \ tinker://run-id/sampler_weights/step-100 \ tinker://run-id/sampler_weights/step-200 ``` ### tinker checkpoint download *CHECKPOINT_PATH* Download and extract a checkpoint archive. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/weights/0001). Downloads and extracts the checkpoint into a dedicated directory named after the checkpoint ID. The tar archive is automatically deleted after successful extraction. If the target directory already exists, the command will fail unless --force is specified. **Options:** - `-o, --output PATH` — Parent directory for extracted checkpoint (default: current directory) - `--force` — Overwrite existing directory if it exists ```bash # Creates ./run-123_weights_final/ with checkpoint files tinker checkpoint download tinker://run-123/weights/final # Creates ./models/run-123_weights_final/ with checkpoint files tinker checkpoint download tinker://run-123/weights/final --output ./models/ # Overwrites existing ./run-123_weights_final/ directory tinker checkpoint download tinker://run-123/weights/final --force ``` ### tinker checkpoint info *CHECKPOINT_PATH* Show details of a specific checkpoint. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/weights/0001). ```bash $ tinker checkpoint info tinker://run-id/sampler_weights/final ``` ### tinker checkpoint list List checkpoints. If --run-id is provided, list checkpoints for that specific training run. Otherwise, list checkpoints from all recent runs. **Options:** - `--run-id TEXT` — Training run ID - `--limit INTEGER` — Maximum number of checkpoints to display when listing from all runs (default: 20, use --limit=0 to show all) ```text $ tinker checkpoint list --limit 3 3 checkpoints (1789 more not shown) ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┓ ┃ Checkpoint ID ┃ Type ┃ Size ┃ Pub ┃ Crea ┃ Expir ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━┩ │ sampler_weights/lifecycle_test │ sampler │ 88.2 MB │ No │ 3h │ Never │ │ sampler_weights/final │ sampler │ 102 MB │ No │ 4h │ Never │ │ weights/final │ train │ 306 MB │ No │ 4h │ Never │ └────────────────────────────────┴─────────┴─────────┴───────┴───────┴───────┘ ``` ### tinker checkpoint publish *CHECKPOINT_PATH* Publish a checkpoint to make it publicly accessible. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/weights/0001). Only the owner of the training run can publish checkpoints. ```bash $ tinker checkpoint publish tinker://run-id/sampler_weights/final ``` ### tinker checkpoint push-hf *CHECKPOINT_PATH* Upload a checkpoint to the Hugging Face Hub as a PEFT adapter. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/sampler_weights/0001). **Options:** - `-r, --repo TEXT` — Hugging Face repo ID (e.g., username/my-lora-adapter). If omitted, derive from run. - `--public` — Create or upload to a public repo (default: private). - `--revision TEXT` — Target branch/revision to upload to (optional). - `--commit-message TEXT` — Commit message for the upload (optional). - `--create-pr` — Create a pull request instead of pushing to the main branch. - `--allow-pattern TEXT` — Only upload files matching this pattern (can be repeated). - `--ignore-pattern TEXT` — Skip files matching this pattern (can be repeated). - `--no-model-card` — Do not create a README.md model card if one is missing. ```bash $ tinker checkpoint push-hf tinker://run-id/sampler_weights/final --repo my-org/my-model $ tinker checkpoint push-hf tinker://run-id/sampler_weights/final --repo my-org/my-model --public --create-pr ``` ### tinker checkpoint set-ttl *CHECKPOINT_PATH* Set or remove the TTL (time-to-live) on a checkpoint. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/weights/0001). Only the owner of the training run can modify checkpoint TTL. Use --ttl to set an expiration (in seconds from now), or --remove to clear it. **Options:** - `--ttl INTEGER` — TTL in seconds (positive integer) - `--remove` — Remove the expiration from the checkpoint ```bash # Expire after 7 days $ tinker checkpoint set-ttl tinker://run-id/sampler_weights/step-100 --ttl 604800 # Keep forever (remove expiration) $ tinker checkpoint set-ttl tinker://run-id/sampler_weights/step-100 --remove ``` ### tinker checkpoint unpublish *CHECKPOINT_PATH* Unpublish a checkpoint to make it private again. CHECKPOINT_PATH must be a tinker path (e.g., tinker://run-id/weights/0001). Only the owner of the training run can unpublish checkpoints. ```bash $ tinker checkpoint unpublish tinker://run-id/sampler_weights/final ```