Skip to main content

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

Metadata

Release files for transformerlab-internal 0.1.58

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for transformerlab-internal 0.1.58
File Size Uploaded
transformerlab_internal-0.1.58.tar.gz 137.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for transformerlab-internal 0.1.58
File Interpreter ABI Platform
transformerlab_internal-0.1.58-py3-none-any.whl Python 3 none any Details

Total release size: 245.9 kB

Release files / transformerlab_internal-0.1.58.tar.gz

Download URL transformerlab_internal-0.1.58.tar.gz
Size 137.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c050131c57220091fd9e8b440a42db305ef542eb1ce0c92eabe17a12d5b706d5
BLAKE2b-256 checksum
How to use checksums
7b901fdfb5a65dfa810f9c42af58187c2f26bf6b91456f705a6bf96e942f40ca
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.58-py3-none-any.whl

Download URL transformerlab_internal-0.1.58-py3-none-any.whl
Size 108.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e95f246a0cf1fc2d871777dfd6cc6b2b288eaef93916c7856965f52e6f4c5a5
BLAKE2b-256 checksum
How to use checksums
69ec84be6d60f0349b47b127e76f1d9f88149da776d5a98f52512b0df3febf56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.1.61

2 release files

0.1.60

2 release files

This release

0.1.58 This release

2 release files

0.1.57

2 release files

0.1.56

2 release files

0.1.53

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page