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 always land on the node's own disk — the returned path is a file you can
open. By default they go to a cache under ~/.transformerlab/cache/user_storage/
(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.55
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.55.tar.gz | 139.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| transformerlab_internal-0.1.55-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 249.6 kB
Release files / transformerlab_internal-0.1.55.tar.gz
| Download URL | transformerlab_internal-0.1.55.tar.gz |
|---|---|
| Size | 139.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5ed8850b6c60286ae9ecbd0229603150d7615a2933a4464185fb02bf4c3ed68
|
|
BLAKE2b-256 checksum How to use checksums |
59ed2869040a14c73476fa3b86eeb58b9d005b22341c7946d52073a7a3be942b
|
| 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.55-py3-none-any.whl
| Download URL | transformerlab_internal-0.1.55-py3-none-any.whl |
|---|---|
| Size | 110.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
050c5cfc19eba552818bba737bb00abf061a54fb0378db602031af64ac785f11
|
|
BLAKE2b-256 checksum How to use checksums |
3db016eb18c057d6b20284fce2eebfd673db07491b96a0c1ff70751091eb7410
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|