Skip to main content

syvain-training-data

Internal Syvain data utility. No secret sauce here, just a shared helper.

This is my dataloader. There are many like it, but this one is mine. My dataloader is my best friend. It is my life. I must master it as I must master my life. My dataloader, without me, is useless. Without my dataloader, I am useless.

Install

uv add syvain-training-data

Load data

from syvain_training_data import SyvainTrainingData

training_data = SyvainTrainingData(
    s3_base_url="https://t3.storage.dev",
    region="auto",
    access_key_id="...",
    secret_access_key="...",
)


def collate(records):
    ...


loader = training_data.split_data_loader(
    "s3://my-training-bucket/path/to/data-manifest-v1.json",
    collate_fn=collate,
    dataloader_args={"batch_size": 32, "num_workers": 4, ...},
)

train_batches = loader.load("train")
valid_batches = loader.load("valid")
easy_batches = loader.load("train", curriculum_stage="easy")
early_curriculum_batches = loader.load("train", curriculum_stages=["easy", "medium"])
infinite_train_batches = loader.load("train", infinite_iter=True)

curriculum_stages selects the union of the named stages. It does not guarantee records are yielded in stage order, especially when num_workers is greater than zero.

Save data

from concurrent.futures import ProcessPoolExecutor

from syvain_training_data import SyvainTrainingData

def generate_data(split, curriculum_stage, shard_id):
    ...

def save_shard(job):
    saver, split, curriculum_stage, shard_id = job
    records = generate_data(split, curriculum_stage, shard_id)
    saver.save(split, curriculum_stage, records)


training_data = SyvainTrainingData(
    s3_base_url="https://t3.storage.dev",
    region="auto",
    access_key_id="...",
    secret_access_key="...",
)

saver = training_data.dataset_saver(
    "s3://my-training-bucket/path/to/dataset/data-manifest-v1.json",
)

jobs = [
    (saver, "train", stage, shard_id)
    for stage in ["easy", "medium", "hard"]
    for shard_id in range(32)
] + [
    (saver, "valid", None, shard_id) for shard_id in range(4)
] + [
    (saver, "test", None, shard_id) for shard_id in range(4)
]

with ProcessPoolExecutor(max_workers=8) as pool:
    list(pool.map(save_shard, jobs))

manifest = saver.commit_manifest()

Copy a manifest

from syvain_training_data import SyvainTrainingData

training_data = SyvainTrainingData(
    s3_base_url="https://t3.storage.dev",
    region="auto",
    access_key_id="...",
    secret_access_key="...",
)

manifest = training_data.load_manifest("s3://my-training-bucket/shared/data-manifest-v1.json")

# Do modifications if needed

training_data.save_manifest("s3://my-training-bucket/new-run/data-manifest-v1.json", manifest)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syvain_training_data-0.0.127.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syvain_training_data-0.0.127-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file syvain_training_data-0.0.127.tar.gz.

File metadata

  • Download URL: syvain_training_data-0.0.127.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for syvain_training_data-0.0.127.tar.gz
Algorithm Hash digest
SHA256 5983069a70047d0a9ac9cb324bc49b7912ef0cdc059efa3c956084b77e407d02
MD5 ec6e19d2a12a75d1672335e612e1debb
BLAKE2b-256 25358fd8a38451553ea81276fc1057c293d9d6fd08dac91a38e433f55c542e44

See more details on using hashes here.

File details

Details for the file syvain_training_data-0.0.127-py3-none-any.whl.

File metadata

  • Download URL: syvain_training_data-0.0.127-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for syvain_training_data-0.0.127-py3-none-any.whl
Algorithm Hash digest
SHA256 b7322399b2a2a1554462e1bfb12b73d22dffc98878663ff2af341219f7e57ff6
MD5 f2a6a95dc122810baeb64b032f79c6db
BLAKE2b-256 aa5cb3341348071780c2687382092dee12f1d750eb98fd1d7bf60ac2c4cef8a9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.252

2 files

0.0.206

2 files

0.0.203

2 files

0.0.202

2 files

0.0.189

2 files

0.0.186

2 files

0.0.157

2 files

0.0.156

2 files

0.0.153

2 files

0.0.135

2 files

0.0.134

2 files

This release

0.0.127 This release

2 files

0.0.120

2 files

0.0.118

2 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