Transformer Lab SDK
The Transformer Lab Python SDK provides a way for ML scripts to integrate with Transformer Lab.
Install
pip install transformerlab-internal
Usage
from lab import lab
# Initialize with experiment ID
lab.init("my-experiment")
lab.log("Job initiated")
config_artifact_path = lab.save_artifact(<config_file>, "training_config.json")
lab.log(f"Saved training config: {config_artifact_path}")
lab.update_progress(1)
...
lab.update_progress(99)
model_path = lab.save_model(<training_output_dir>, name="trained_model")
lab.log("Saved model file to {model_path}")
lab.finish("Training completed successfully")
Shared storage
Each user has a personal area of the team workspace for large files reused across
experiments and jobs — a base model, a tokenized corpus, a reference checkpoint.
Upload once from the terminal with lab storage upload, then read it from any job:
from lab import lab
corpus = lab.storage_download("tokenized-corpus") # directory → local dir
weights = lab.storage_download("models/base-model.safetensors") # file → local path
for entry in lab.storage_list("models"):
print(entry["relpath"], entry["size"])
lab.storage_upload("./derived-index.faiss", "indexes/wiki.faiss")
Downloads land in an on-node cache by default (pass dest= to choose a location) and
read straight from object storage, so a multi-GB file moves at full bandwidth without
routing through the API server. A local copy whose size already matches is reused, so
re-running a job does not re-fetch it; pass force=True to override.
Every path is relative to your own storage root. Async variants exist for all three
(async_storage_download, async_storage_upload, async_storage_list).
Reporting metrics
Pass a dict of named metrics to lab.finish(score=...). The dict shape is required —
metrics are stored under job_data.score and surfaced by lab job list (Score column)
and lab job info, and read by sweep / autoresearch flows for optimization.
lab.finish(message="Done!") # success, no score
lab.finish(message="Done!", score={"accuracy": 0.78}) # success with one metric
lab.finish(score={"accuracy": 0.78, "f1": 0.83}) # multiple metrics
Do not pass a scalar (e.g. lab.finish(score=0.78)) — wrap it in a dict instead:
lab.finish(score={"score": 0.78}).
Sample scripts can be found at https://github.com/transformerlab/transformerlab-platform/tree/main/lab-sdk/scripts/examples
Development
The code for this can be found in the lab-sdk directory of
https://github.com/transformerlab/transformerlab-platform
To develop locally in editable mode and run automated tests:
cd lab-sdk
uv venv
uv pip install -e .
uv run pytest # Run tests
Release files for transformerlab-internal 0.1.49
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| transformerlab_internal-0.1.49.tar.gz | 126.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| transformerlab_internal-0.1.49-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 230.9 kB
Release files / transformerlab_internal-0.1.49.tar.gz
| Download URL | transformerlab_internal-0.1.49.tar.gz |
|---|---|
| Size | 126.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
979abc3ba488f035161ed54cb4b760c222875041013cc07206cbe481bb8fd2e7
|
|
BLAKE2b-256 checksum How to use checksums |
0ca7e2847d8e61700111f2e7937cadd72ce8639b53b79c06434a84ef97bac6b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / transformerlab_internal-0.1.49-py3-none-any.whl
| Download URL | transformerlab_internal-0.1.49-py3-none-any.whl |
|---|---|
| Size | 104.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d7296964b3fdac9c590faf32e8b777cd6fd0163e4a8e178a6e1b4d8edddbb6b
|
|
BLAKE2b-256 checksum How to use checksums |
b81edae04a233a0372441f7e7b7e40db655404580f00d4d50b9ae56486e128be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|