Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion create-use-case/prepare-dataset.mdx
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: "Prepare Data"
description: "Learn how to prepare and ingest your datasets into tracebloc using containerized data ingestors. Complete guide for CSV, image, and text data with Kubernetes deployment steps."

Check warning on line 3 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L3

Did you really mean 'tracebloc'?

Check warning on line 3 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L3

Did you really mean 'ingestors'?
---

## Overview

Make your data available to the Kubernetes cluster so it can be used for training and evaluation. Whether your client runs on Azure, AWS, Google Cloud, or a local Minikube setup, the process of ingesting datasets works the same way.

Check warning on line 8 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L8

Did you really mean 'Minikube'?

The data ingestor is a lightweight service that bridges your raw data and the cluster's persistent storage. It comes with ready-made templates (CSV, images, text) that you can use as starting points and customize for your own dataset. By containerizing the ingestion step, the ingestor validates data format and schema, enforces consistency, and transfers the dataset securely into cluster's SQL storage where it becomes accessible to all training and evaluation jobs.

Check warning on line 10 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L10

Did you really mean 'ingestor'?

Check warning on line 10 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L10

Did you really mean 'ingestor'?

This guide covers:
- Customizing ingestor templates for different data types (CSV, images, text)

Check warning on line 13 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L13

Did you really mean 'ingestor'?
- Deploying the data ingestor for training and test data using Kubernetes

Check warning on line 14 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L14

Did you really mean 'ingestor'?
- Managing datasets through the tracebloc interface

Check warning on line 15 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L15

Did you really mean 'tracebloc'?

**IMPORTANT** Make sure that the data format and ML task is supported and that data standards are met by reviewing the [docs](/create-use-case/prerequisites). You must run the process twice, once to ingest training and once to ingest testing data.

Expand All @@ -20,17 +20,17 @@

You can ingest data into your client in two ways:

- **Declarative YAML (recommended, simpler)** — describe your dataset in ~8 lines of `ingest.yaml`, then `helm install`. No Dockerfile, no custom Python script. The official ingestor image runs it for you. Use this for any dataset that fits a supported category.

Check warning on line 23 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L23

Did you really mean 'Dockerfile'?

Check warning on line 23 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L23

Did you really mean 'ingestor'?
- **Custom Python template + Kubernetes Job (advanced)** — clone the [data-ingestors repo](https://github.com/tracebloc/data-ingestors), pick a per-category template script, edit it, build and push a Docker image, then `kubectl apply` an `ingestor-job.yaml`. Use this when the declarative schema can't express what your data needs — e.g. non-trivial preprocessing, a custom validator, or a `BaseProcessor` subclass.

Check warning on line 24 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L24

Did you really mean 'validator'?

Start with the declarative method below. Drop down to the custom-template flow only if you need it.

## Declarative YAML (recommended)

Describe your dataset in ~8 lines of YAML, then `helm install`. The official ingestor image (published as `ghcr.io/tracebloc/ingestor`) runs it. No Dockerfile, no Python script.

Check warning on line 30 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L30

Did you really mean 'ingestor'?

Check warning on line 30 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L30

Did you really mean 'Dockerfile'?

<Note>
**Before you run any commands in this section:** if you installed the client via the one-liner (`bash <(curl -fsSL https://tracebloc.io/i.sh)`), every later `helm upgrade <workspace> tracebloc/client …` **must** include `--reset-then-reuse-values`, otherwise the upgrade drops the values the installer applied and breaks the workspace:
**Before you run any commands in this section:** if you installed the client via the one-liner (`curl -fsSL https://tracebloc.io/i.sh | bash`), every later `helm upgrade <workspace> tracebloc/client …` **must** include `--reset-then-reuse-values`, otherwise the upgrade drops the values the installer applied and breaks the workspace:

```bash
helm upgrade <workspace> tracebloc/client -n <namespace> --reset-then-reuse-values
Expand All @@ -46,11 +46,11 @@
helm repo update
```

The `tracebloc/client` parent chart bootstraps the cluster (jobs-manager, MySQL, RBAC). The `tracebloc/ingestor` subchart submits per-dataset ingestion runs against it.

Check warning on line 49 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L49

Did you really mean 'subchart'?

### 2. Stage your data on the cluster's shared PVC

The chart **doesn't transport data into the cluster** — it points at data already accessible to the cluster's shared PVC (`client-pvc` by default, mounted at `/data/shared/` inside the ingestor Pod). Before installing, get your raw files there.

Check warning on line 53 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L53

Did you really mean 'ingestor'?

For a single-node workspace (the default install), the PVC is backed by a host directory the installer created at `~/.tracebloc/<workspace>/data/`. Drop your files into a per-dataset subdirectory:

Expand All @@ -62,15 +62,15 @@
cp LOCAL_PATH/labels.csv ~/.tracebloc/<workspace>/data/<prefix>/
```

Inside the ingestor Pod those files appear at `/data/shared/<prefix>/...` — that's what you'll put in `ingest.yaml` below.

Check warning on line 65 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L65

Did you really mean 'ingestor'?

<Note>
For multi-node or EKS deployments where the PVC isn't backed by a local host path, use a throwaway `kubectl cp` Pod or a cloud-storage init container instead. See the [client ingestor README](https://github.com/tracebloc/client/blob/develop/ingestor/README.md#stage-your-data-on-the-shared-pvc) for those recipes.

Check warning on line 68 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L68

Did you really mean 'ingestor'?
</Note>

### 3. Write your `ingest.yaml`

The example below is for `image_classification`. **Other categories require different fields** — e.g. `tabular_classification` has no `images:` and instead needs a typed `schema:` block. Don't copy this one blindly; grab the matching file from [`examples/yaml/`](https://github.com/tracebloc/data-ingestors/tree/master/examples/yaml) (one per category) and edit from there. Per-category sample data and READMEs live under [`templates/`](https://github.com/tracebloc/data-ingestors/tree/master/templates).

Check warning on line 73 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L73

Did you really mean 'READMEs'?

```yaml
apiVersion: tracebloc.io/v1
Expand All @@ -83,11 +83,11 @@
label: label
```

The top-level shape (`apiVersion`, `kind`, `category`, `table`, `intent`, `label`) is the same for every category; the `category` field picks the validator set, file-extension defaults, and column conventions. The data-source fields (`csv:`, `images:`, `schema:`, …) vary per category. The paths are *paths inside the ingestor Pod*, which is the PVC mount you populated in step 2.

Check warning on line 86 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L86

Did you really mean 'validator'?

### 4. Install once per dataset

The ingestor runs once: validates your data, copies files into the destination directory on the PVC, inserts rows into MySQL, sends metadata to the tracebloc backend, then exits. **Run it twice per dataset** — once with `intent: train`, once with `intent: test` — using distinct `table:` names. The example below shows both releases:

Check warning on line 90 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L90

Did you really mean 'ingestor'?

Check warning on line 90 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L90

Did you really mean 'tracebloc'?

```bash
# Train release — points at the ingest.yaml from step 3 (table: cats_dogs_train, intent: train)
Expand All @@ -101,10 +101,10 @@
--set-file ingestConfig=./ingest-test.yaml
```

Each `helm install` is a separate release (the first argument is the release name), so the two runs don't collide. The ingestor Pod picks up `CLIENT_ID` / `CLIENT_PASSWORD` automatically from the Kubernetes Secret the parent `tracebloc/client` chart created in `<workspace>` at install time — you don't pass credentials on the `helm install` command.

Check warning on line 104 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L104

Did you really mean 'ingestor'?

<Warning>
**Validation error like `'<your_category>' is not one of [...]` or `Additional properties are not allowed (<field> was unexpected)`?** This comes from the cluster's `jobs-manager` validating against its own bundled schema at submit time — the deployed schema is older than the ingestor image you're installing. `helm repo update` won't fix it (that only refreshes the local chart index, not the running server). The fix is on the cluster side: upgrade the parent chart so jobs-manager redeploys with the current schema.

Check warning on line 107 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L107

Did you really mean 'ingestor'?

```bash
helm upgrade <workspace> tracebloc/client \
Expand All @@ -118,18 +118,18 @@

## Custom Python template (advanced)

Use this flow when the declarative schema can't express what your data needs — typically when you have non-trivial preprocessing logic, a custom validator, or a `BaseProcessor` subclass. The sections below — Quick Setup and Detailed Setup — both describe this advanced path.

Check warning on line 121 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L121

Did you really mean 'validator'?

## Quick Setup

Use this quick setup if you already have an ingestor configured and just want to switch datasets or toggle between training and testing. If you are setting up for the first time, go to the next section for the detailed walkthrough.

Check warning on line 125 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L125

Did you really mean 'ingestor'?

Check warning on line 125 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L125

Did you really mean 'walkthrough'?

### Steps

1. Pick a template script and edit it. E.g. `/templates/tabular_classification/tabular_classification.py`
- Update csv options and data_path

Check warning on line 130 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L130

Did you really mean 'csv'?

Check warning on line 130 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L130

Did you really mean 'data_path'?
- Only for tabular data: Update schema
- Set `schema` and `CSVIngestor()`parameters like category, intent, label_column, etc. to match data type, task and train/test purpose

Check warning on line 132 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L132

Did you really mean 'label_column'?

```python
ingestor = CSVIngestor(
Expand Down Expand Up @@ -163,9 +163,9 @@

### 1. Configure a Template

This section walks you through the step-by-step setup of a data ingestor. You will clone the repository, select the right template for your data type, and customize it to match your task. Follow this guide if you are setting up an ingestor for the first time or need full control beyond the quick setup.

Check warning on line 166 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L166

Did you really mean 'ingestor'?

Check warning on line 166 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L166

Did you really mean 'ingestor'?

### Clone the Data Ingestor Repository

Check warning on line 168 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L168

Did you really mean 'Ingestor'?

Clone the public [Data Ingestor GitHub repository](https://github.com/tracebloc/data-ingestors):

Expand Down Expand Up @@ -230,14 +230,14 @@
...
```

Both Database, APIClient and other values are configured automatically from the environment variables defined in `ingestor_job.yaml`.

Check warning on line 233 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L233

Did you really mean 'APIClient'?

- `config.LABEL_FILE`: Path to local csv label file

Check warning on line 235 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L235

Did you really mean 'csv'?
- `config.BATCH_SIZE`: Batch size used during ingestion

### Customize a Template

Templates provide a starting point, but every dataset has its own format and labels. In this step you adapt the template to your data by tuning CSV ingestion options and setting the ingestor parameters (category, label column, intent, data path and schema). The following example in `templates/tabular_classification/tabular_classification.py` shows how to ingest a tabular dataset, but the setup works the same way for image or text data.

Check warning on line 240 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L240

Did you really mean 'ingestor'?

#### Needed for Tabular Data: Define Schema

Expand Down Expand Up @@ -290,7 +290,7 @@
```

#### Set CSV ingestion options
Customize parsing, memory handling, and data cleaning with the csv_options dictionary:

Check warning on line 293 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L293

Did you really mean 'csv_options'?

```python
csv_options = {
Expand All @@ -305,9 +305,9 @@
}
```

#### Set Up the Ingestor

Check warning on line 308 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L308

Did you really mean 'Ingestor'?

Define the Ingestor instance with the required configuration. See the tabular data example below:

Check warning on line 310 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L310

Did you really mean 'Ingestor'?

```python
ingestor = CSVIngestor(
Expand Down Expand Up @@ -339,7 +339,7 @@

### Docker Hub Setup (first-time users)

The cluster pulls your ingestor image from a public Docker registry, so you need an account before you can push. If you already have one, skip to [Edit Dockerfile](#edit-dockerfile).

Check warning on line 342 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L342

Did you really mean 'ingestor'?

1. **Create a Docker Hub account** at [hub.docker.com/signup](https://hub.docker.com/signup) and verify your email.
2. **Log in from your terminal** so the `docker push` command can authenticate:
Expand All @@ -348,18 +348,18 @@
docker login
```

3. **Push the data ingestor image** to your account using the build/push commands in the next section. The image name takes the form `<your-docker-username>/<image-name>:<tag>` — the username segment must match the account you just created.

Check warning on line 351 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L351

Did you really mean 'ingestor'?
4. **Make the image public** so the cluster can pull it without credentials:
- Go to [hub.docker.com/repositories](https://hub.docker.com/repositories), open the repository you just pushed.
- Click **Settings → Visibility settings → Make public**.

Keeping the image private is also fine, but then you must create a Kubernetes `imagePullSecret` named `regcred` in the client namespace (the `ingestor-job.yaml` already references it).

Check warning on line 356 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L356

Did you really mean 'namespace'?

### Place data files on the client host

Datasets are **not** baked into the Docker image. They live on the client host in the per-workspace data directory and are mounted into the ingestor pod through the shared PVC (`client-pvc` → `/data/shared`).

Check warning on line 360 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L360

Did you really mean 'ingestor'?

Copy your dataset into the client's data directory, where `<workspace>` is the workspace name you chose during client install (which is also the Helm release name and the Kubernetes namespace — the chart uses the same value for all three). The directory `~/.tracebloc/<workspace>/data/` is created automatically by the installer; just drop your files into it:

Check warning on line 362 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L362

Did you really mean 'namespace'?

```bash
# Host path on the machine where the tracebloc client is installed.
Expand All @@ -368,20 +368,20 @@
cp LOCAL_PATH/labels.csv ~/.tracebloc/<workspace>/data/
```

Inside the ingestor pod this directory is mounted at `/data/shared`, so the same files appear as `/data/shared/images/...` and `/data/shared/labels.csv`. Set `SRC_PATH` and `LABEL_FILE` in `ingestor-job.yaml` to point at those in-pod paths (see [Configure Kubernetes](#3-configure-kubernetes) below).

Check warning on line 371 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L371

Did you really mean 'ingestor'?

For tabular data the same rule applies — drop the single `labels.csv` (with features and labels) into `~/.tracebloc/<workspace>/data/`.

### Edit Dockerfile

Check warning on line 375 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L375

Did you really mean 'Dockerfile'?

The Dockerfile only needs to package the ingestion script — the dataset is mounted at runtime, so do **not** `COPY` data into the image:

Check warning on line 377 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L377

Did you really mean 'Dockerfile'?

```dockerfile
# Copy the ingestion script into /app
COPY templates/tabular_classification/tabular_classification.py /app/ingestor.py
```

If the cluster enforces the `restricted` Pod Security Standard (see [Run as non-root](#run-as-non-root) below), also add a non-root user to the Dockerfile, **before** the `# Set the entrypoint` line:

Check warning on line 384 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L384

Did you really mean 'Dockerfile'?

```dockerfile
RUN groupadd -g 1000 app && \
Expand Down Expand Up @@ -480,14 +480,14 @@
- `image`, your Docker image (imagePullPolicy: Always for DockerHub, IfNotPresent for local)
- `CLIENT_ID`, `CLIENT_PASSWORD` from the [tracebloc client view](https://ai.tracebloc.io/clients)
- `TABLE_NAME`, unique per dataset, train and test use different names, no spaces. Different names for train and test data is mandatory
- `LABEL_FILE`, path inside the ingestor pod (under `/data/shared`) to the CSV with file paths and labels — must match the location of the file you placed in `~/.tracebloc/<workspace>/data/`

Check warning on line 483 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L483

Did you really mean 'ingestor'?
- `SRC_PATH`, root inside the pod where the dataset directory is mounted (`/data/shared`)
- `BATCH_SIZE` is the number of entries sent to the server per request. Optional — defaults to 4000. Keep it consistent across data types. It depends on available CPU memory, not for example image size. Too large can exhaust memory. It was tested up to 10,000, but 5,000 is a safe default for most systems.
- `LOG_LEVEL`, "WARNING" for all warnings and errors, "INFO" for all logs, "ERROR" for errors only

### 4. Deploy

Run the ingestor as a Kubernetes Job:

Check warning on line 490 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L490

Did you really mean 'ingestor'?

```bash
kubectl apply -f ingestor-job.yaml -n <workspace>
Expand All @@ -503,7 +503,7 @@

### Run as non-root

If the namespace enforces the `restricted` [Pod Security Standard](https://kubernetes.io/docs/concepts/security/pod-security-standards/), `kubectl apply` will be admitted but the pod will be rejected with a warning like:

Check warning on line 506 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L506

Did you really mean 'namespace'?

```text
Warning: would violate PodSecurity "restricted:latest":
Expand All @@ -529,7 +529,7 @@
type: RuntimeDefault
```

**2. Run the container as a non-root user.** Add the following to the Dockerfile **before** the `# Set the entrypoint` line so the image ships with a UID that satisfies `runAsNonRoot: true`:

Check warning on line 532 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L532

Did you really mean 'Dockerfile'?

```dockerfile
RUN groupadd -g 1000 app && \
Expand All @@ -541,7 +541,7 @@

Rebuild and push the image, then re-apply the job.

The data ingestor always runs a validation step before ingestion and moving files.

Check warning on line 544 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L544

Did you really mean 'ingestor'?


#### Verify Deployment
Expand All @@ -563,7 +563,7 @@
**Interface displays:**
- Dataset name, ID, and record count
- Data type (Tabular, Image, Text) and purpose (Training/Testing)
- Namespace and GPU requirements

Check warning on line 566 in create-use-case/prepare-dataset.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

create-use-case/prepare-dataset.mdx#L566

Did you really mean 'Namespace'?

## Best Practices
- Deploy jobs for training and testing simultaneously using different job names
Expand Down
2 changes: 1 addition & 1 deletion environment-setup/configuration.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Configuration"
description: "Customize your tracebloc workspace — environment variables, cluster management, GPU support, and manual Helm deployment."

Check warning on line 3 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L3

Did you really mean 'tracebloc'?
---

The installer uses sensible defaults; this page covers what you can change.
Expand All @@ -23,7 +23,7 @@
Example — custom cluster name with two worker nodes:

```bash
CLUSTER_NAME=my-cluster AGENTS=2 bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | CLUSTER_NAME=my-cluster AGENTS=2 bash
```

## Cluster Management
Expand All @@ -43,7 +43,7 @@

### View logs

The jobs manager is the main tracebloc process. Check its logs when debugging connectivity or job execution issues:

Check warning on line 46 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L46

Did you really mean 'tracebloc'?

```bash
kubectl logs -n <workspace> -l app=manager
Expand Down Expand Up @@ -71,7 +71,7 @@

Fully automatic. The installer:

1. Detects NVIDIA GPUs via `nvidia-smi` or `lspci`

Check warning on line 74 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L74

Did you really mean 'GPUs'?
2. Installs drivers if missing (Ubuntu, RHEL/CentOS, Arch)
3. Installs the NVIDIA Container Toolkit and configures Docker
4. Deploys the NVIDIA k8s device plugin into the cluster
Expand All @@ -81,11 +81,11 @@

### AMD (Linux)

Auto-detected. ROCm is installed automatically on Ubuntu and RHEL/CentOS. A logout/login may be needed for full GPU access.

Check warning on line 84 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L84

Did you really mean 'ROCm'?

### macOS

CPU only. Docker Desktop on macOS does not support GPU passthrough. For GPU workloads, deploy on a Linux machine with NVIDIA GPUs or use [AWS (EKS)](/environment-setup/eks-client-deployment-guide).

Check warning on line 88 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L88

Did you really mean 'passthrough'?

Check warning on line 88 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L88

Did you really mean 'GPUs'?

### Windows

Expand Down Expand Up @@ -158,7 +158,7 @@
```

<Note>
**The database must stay on local disk.** MySQL/InnoDB is unsafe on NFS/CIFS, so the database and logs always use the local `/tracebloc` tree. To place large **datasets** on a network mount, set the installer's `HOST_DATASET_DIR` — it relocates only the dataset volume (the chart's `hostPath.datasetPath` → `/tracebloc-data`) and runs ingestion as the mount's owner uid, so writes succeed under NFS `root_squash`.

Check warning on line 161 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L161

Did you really mean 'uid'?
</Note>

Platform snippets (drop into your values file):
Expand Down Expand Up @@ -247,7 +247,7 @@

#### Docker Registry

The chart pulls the client image from a container registry — credentials are required in production. Use a token, not a plaintext password.

Check warning on line 250 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L250

Did you really mean 'plaintext'?

```yaml
dockerRegistry:
Expand Down Expand Up @@ -284,11 +284,11 @@
timeout: "10m"
```

The CronJob's ServiceAccount is bound to the built-in `cluster-admin` ClusterRole because the chart templates cluster-scoped resources (PriorityClass, StorageClass, ClusterRoleBinding, optionally Namespace). Disable if you need a manual approval gate on upgrades.

Check warning on line 287 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L287

Did you really mean 'Namespace'?

#### NetworkPolicy hardening for training pods

Training pods run untrusted ML code. The chart can apply a NetworkPolicy that denies ingress and restricts egress to DNS + external HTTPS only — blocking pod-to-pod, MySQL, and Kubernetes API access from the training pod.

Check warning on line 291 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L291

Did you really mean 'untrusted'?

```yaml
networkPolicy:
Expand All @@ -314,12 +314,12 @@
Leave `enabled: false` on clusters without an enforcing CNI — silently having no protection is worse than explicitly disabling it.

<Warning>
The chart's training-pod egress lockdown only blocks traffic if your CNI enforces NetworkPolicy. Verify your CNI before relying on it.

Check warning on line 317 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L317

Did you really mean 'lockdown'?
</Warning>

#### Resource Monitor and node-agents namespace

Check warning on line 320 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L320

Did you really mean 'namespace'?

The `tracebloc-resource-monitor` DaemonSet collects node-level CPU/memory metrics. It mounts `hostPath` volumes (`/proc`, `/sys`) which Pod Security Admission's `restricted` profile bans — so the chart isolates it in a dedicated **privileged** namespace (default `tracebloc-node-agents`).

Check warning on line 322 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L322

Did you really mean 'namespace'?

```yaml
resourceMonitor: true # set false on clusters where metrics-server cannot be installed
Expand All @@ -329,7 +329,7 @@
name: tracebloc-node-agents
```

When `create: false`, create the namespace yourself with the required PSA labels:

Check warning on line 332 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L332

Did you really mean 'namespace'?

```bash
kubectl create namespace tracebloc-node-agents
Expand All @@ -343,7 +343,7 @@

#### Pod Security Admission labels

Training Jobs run untrusted user-supplied ML code. The chart can create the release namespace with Pod Security Admission `warn`/`audit`/`enforce` labels at the `restricted` profile for defense-in-depth:

Check warning on line 346 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L346

Did you really mean 'untrusted'?

Check warning on line 346 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L346

Did you really mean 'namespace'?

```yaml
namespace:
Expand All @@ -354,7 +354,7 @@
enforce: restricted # set "" for bare-metal hostPath installs
```

When `create: false` (default) and you want PSA labels on an existing namespace:

Check warning on line 357 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L357

Did you really mean 'namespace'?

```bash
kubectl label namespace <workspace> \
Expand All @@ -379,7 +379,7 @@

#### PriorityClass and PodDisruptionBudgets

The chart pins the MySQL pod with a `tracebloc-data-plane` PriorityClass (value `1000000`) so it survives node-level OOM and scheduling pressure, and applies PDBs to MySQL and the jobs manager. Override only if you run a multi-replica MySQL externally:

Check warning on line 382 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L382

Did you really mean 'PDBs'?

```yaml
priorityClass:
Expand All @@ -394,7 +394,7 @@

### Deploy

Install the chart into a new namespace:

Check warning on line 397 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L397

Did you really mean 'namespace'?

```bash
helm upgrade --install <workspace> tracebloc/client \
Expand Down Expand Up @@ -425,7 +425,7 @@
helm uninstall <workspace> -n <workspace>
```

PVCs and the PriorityClass are annotated `helm.sh/resource-policy: keep` so your data and shared cluster resources survive uninstall. To remove them too:

Check warning on line 428 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L428

Did you really mean 'PVCs'?

```bash
kubectl delete pvc --all -n <workspace>
Expand All @@ -445,11 +445,11 @@

## Security

Tracebloc is designed so your data never has to leave your network. Here's how:

Check warning on line 448 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L448

Did you really mean 'Tracebloc'?

- **Data stays local.** Training data never leaves your infrastructure. Only metadata and metrics are shared with the platform.
- **Encrypted.** All communication between client and platform is TLS-encrypted.
- **Isolated.** Training runs in containers with restricted system access. Kubernetes namespaces separate workloads from each other.

Check warning on line 452 in environment-setup/configuration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/configuration.mdx#L452

Did you really mean 'namespaces'?
- **Scanned.** Submitted models are analyzed for vulnerabilities before execution on your infrastructure.
- **Minimal footprint.** The installer only modifies `~/.tracebloc/` and Docker. No system-wide changes.

4 changes: 2 additions & 2 deletions environment-setup/deploy-local.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Local / k3d"
description: "Run a tracebloc workspace on a single machine — laptop or on-prem server. Production-capable."

Check warning on line 3 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L3

Did you really mean 'tracebloc'?
---

**When to pick it** — A single machine you own: a laptop to try things, or an on-prem server you run in production. The installer brings up a self-contained Kubernetes cluster (k3d) inside Docker — you don't need a cluster of your own.
Expand All @@ -17,17 +17,17 @@
<Tabs>
<Tab title="macOS / Linux">
```bash
bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | bash
```
</Tab>
<Tab title="Windows (PowerShell as admin)">
```powershell
irm https://tracebloc.io/i.ps1 | iex

Check warning on line 25 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L25

Did you really mean 'irm'?

Check warning on line 25 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L25

Did you really mean 'iex'?
```
</Tab>
</Tabs>

See [Quick Start](/environment-setup/quickstart) for the full walkthrough, including the inspect-first option.

Check warning on line 30 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L30

Did you really mean 'walkthrough'?

## Verify

Expand All @@ -35,17 +35,17 @@
kubectl get pods -A
```

The tracebloc pods should be `Running`, and your workspace should read **Online** on the clients page.

Check warning on line 38 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L38

Did you really mean 'tracebloc'?

## Environment-specific config

Set these as environment variables before the install command (full list in [Configuration](/environment-setup/configuration#installer-options)):

```bash
CLUSTER_NAME=my-cluster AGENTS=2 HOST_DATA_DIR=/data/tracebloc bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | CLUSTER_NAME=my-cluster AGENTS=2 HOST_DATA_DIR=/data/tracebloc bash
```

GPUs are auto-detected on Linux (NVIDIA/AMD) — drivers, container toolkit, and device plugin are installed for you.

Check warning on line 48 in environment-setup/deploy-local.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/deploy-local.mdx#L48

Did you really mean 'GPUs'?

## Production notes

Expand Down
2 changes: 1 addition & 1 deletion environment-setup/quickstart.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Quick Start"
description: "From zero to a running tracebloc workspace in about 10 minutes."

Check warning on line 3 in environment-setup/quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/quickstart.mdx#L3

Did you really mean 'tracebloc'?
---

A running workspace in about 10 minutes, with one command. Deploying on a specific environment instead (EKS, AKS, bare-metal, OpenShift)? See [Deployment environments](/environment-setup/deployment-environments).
Expand All @@ -14,7 +14,7 @@
| You need | Minimum |
|---|---|
| A machine | macOS, Linux, or Windows · 2 CPU · 5 GB RAM · 10 GB free disk |
| A tracebloc account | [Sign up free](https://ai.tracebloc.io) — no credit card |

Check warning on line 17 in environment-setup/quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/quickstart.mdx#L17

Did you really mean 'tracebloc'?

That's enough to run a workspace. To **train on this machine**, give it 4 CPU · 16 GB RAM · 50 GB disk — a single training job alone reserves ~8 GB. The installer checks before it starts: below the minimum it stops on Linux (on macOS/Windows it warns — raise Docker Desktop's memory in Settings → Resources).

Expand All @@ -27,12 +27,12 @@
<Tabs>
<Tab title="macOS / Linux">
```bash
bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | bash
```
</Tab>
<Tab title="Windows (PowerShell as admin)">
```powershell
irm https://tracebloc.io/i.ps1 | iex

Check warning on line 35 in environment-setup/quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/quickstart.mdx#L35

Did you really mean 'irm'?

Check warning on line 35 in environment-setup/quickstart.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/quickstart.mdx#L35

Did you really mean 'iex'?
```
</Tab>
</Tabs>
Expand Down
2 changes: 1 addition & 1 deletion environment-setup/setup-guide.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Setup Guide"
description: "Detailed walkthrough for deploying a tracebloc workspace — requirements, installer internals, GPU support, and verification."

Check warning on line 3 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L3

Did you really mean 'walkthrough'?

Check warning on line 3 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L3

Did you really mean 'tracebloc'?
---

Everything the installer does, explained. This page walks through the full setup process — what each step does, what to expect, and how to verify it worked.
Expand All @@ -23,7 +23,7 @@

**Supported platforms:** macOS (Intel & Apple Silicon) · Linux (x86_64 & arm64) · Windows (x86_64 & arm64)

**Outbound access needed:** The installer pulls container images, the install scripts, and the Helm chart, then connects to the tracebloc platform. Allow traffic to `*.docker.io`, `ghcr.io`, `raw.githubusercontent.com`, `*.github.io`, `*.tracebloc.io`, and `pypi.org`.

Check warning on line 26 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L26

Did you really mean 'tracebloc'?

<Warning>
**Storage must be on a local disk.** The data directory (`HOST_DATA_DIR`, default `~/.tracebloc`) holds the workspace database, which corrupts on network filesystems — the installer **fails fast** if it is on NFS/CIFS/SMB. To keep large datasets on a network mount, point `HOST_DATASET_DIR` at it instead: only the dataset volume moves there, while the database stays local. See [Configuration](/environment-setup/configuration).
Expand All @@ -37,7 +37,7 @@

## 2. Register a Client

A **client** is your workspace's identity on the platform. It ties a specific machine to your account and controls what data and use cases are accessible from it.

Check warning on line 40 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L40

Did you really mean 'workspace's'?

Open the [client page](https://ai.tracebloc.io/clients) and click **"+"**.

Expand Down Expand Up @@ -71,7 +71,7 @@
<Tab title="macOS / Linux">

```bash
bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | bash
```

</Tab>
Expand Down Expand Up @@ -101,11 +101,11 @@
**Step 2/4 — Set up secure compute environment**
Provisions a lightweight local Kubernetes cluster inside Docker. First run takes 1–2 minutes to download components.

**Step 3/4 — Install tracebloc client**

Check warning on line 104 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L104

Did you really mean 'tracebloc'?
Prompts for a **workspace name** (e.g. `berlin-team`, `vision-lab`, `ml-mardan`). This identifies the client on your machine and becomes the Kubernetes namespace.

Check warning on line 105 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L105

Did you really mean 'namespace'?

**Step 4/4 — Connect to tracebloc network**
Prompts for your **Client ID** and **password** from step 2 above. This links your secure local environment to the tracebloc platform so vendors can submit models for evaluation.

Check warning on line 108 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L108

Did you really mean 'tracebloc'?

When it finishes you'll see a summary like:

Expand Down Expand Up @@ -150,7 +150,7 @@
| `mysql-...` | Local metadata store — tracks jobs, metrics, and configuration |
| `tracebloc-jobs-manager-...` | The client — executes training jobs and communicates with the platform |

Then open [ai.tracebloc.io](https://ai.tracebloc.io) and check that your client status shows **Online**. This confirms the client has established a secure connection to the tracebloc backend.

Check warning on line 153 in environment-setup/setup-guide.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/setup-guide.mdx#L153

Did you really mean 'tracebloc'?

<Tip>
Stuck on Offline? Check the [Troubleshooting](/environment-setup/troubleshooting) page — most issues resolve with a pod restart or credential check.
Expand Down
2 changes: 1 addition & 1 deletion environment-setup/troubleshooting.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Troubleshooting"
description: "Common issues and debugging commands for your tracebloc workspace."

Check warning on line 3 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L3

Did you really mean 'tracebloc'?
---

Most issues fall into a few categories: pods not starting, client not connecting, or resource limits being hit. Start with the quick checks below — they cover the most common problems.
Expand All @@ -11,7 +11,7 @@
**Stuck? Generate a support bundle.** Re-run the installer with `--diagnose`:

```bash
bash <(curl -fsSL https://tracebloc.io/i.sh) --diagnose
curl -fsSL https://tracebloc.io/i.sh | bash -s -- --diagnose
```

It writes a redacted `~/.tracebloc/tracebloc-diagnose-<timestamp>.tgz` — logs, pod status, and versions with **credentials removed** — that you can send to support. The first line of output shows your client version.
Expand Down Expand Up @@ -43,7 +43,7 @@

| Error Message | Description | Resolution |
|---------------|-------------|------------|
| ServiceBus connection error after Docker restart | When Docker overutilizes local resources and restarts, the ServiceBus connection may fail with `NoneType` errors. | Monitor resources via Docker Dashboard. Restart the jobs manager pod (e.g. in k9s, exit with Ctrl+D) to restore the connection. |

Check warning on line 46 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L46

Did you really mean 'overutilizes'?
| MySQL pod in `CrashLoopBackOff` (often ~20 min into install) | The data directory (`HOST_DATA_DIR`) is on a network filesystem (NFS/CIFS/SMB). MySQL/InnoDB corrupts on network storage, and NFS `root_squash` blocks the data-dir setup. | Point `HOST_DATA_DIR` at a **local** disk (the default `~/.tracebloc` is local) and re-run. Keep large datasets on the network mount via `HOST_DATASET_DIR`. Newer installers catch this in preflight before the install starts. |

## Debugging Commands
Expand Down Expand Up @@ -106,8 +106,8 @@
If training is slow, these are the factors to look at:

- **Batch size** — larger batches increase GPU utilization up to memory saturation
- **Model complexity** — transformer attention is O(seq_len² x hidden_dim); CNNs scale with kernel x feature map x filters

Check warning on line 109 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L109

Did you really mean 'hidden_dim'?

Check warning on line 109 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L109

Did you really mean 'CNNs'?
- **Precision** — FP16/BF16 can speed up training 2-3x on modern GPUs

Check warning on line 110 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L110

Did you really mean 'GPUs'?
- **Data pipeline** — slow CPU preprocessing (augmentation, tokenization) can bottleneck training

Check warning on line 111 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L111

Did you really mean 'tokenization'?
- **Parallelization** — data parallelism splits batches across GPUs; model parallelism splits the model itself

Check warning on line 112 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L112

Did you really mean 'Parallelization'?

Check warning on line 112 in environment-setup/troubleshooting.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

environment-setup/troubleshooting.mdx#L112

Did you really mean 'GPUs'?

2 changes: 1 addition & 1 deletion overview/tracebloc.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "tracebloc"

Check warning on line 2 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L2

Did you really mean 'tracebloc'?
description: "Build better AI together. Without moving data."
mode: "default"
---
Expand All @@ -8,7 +8,7 @@
![Traceblocfederatedlearning](/images/traceblocfederatedlearning.png)
</Frame>

tracebloc is **your collaborative AI workspace** you deploy on your own infrastructure. Invite friends, peers, researchers, partners, vendors — anyone — to train, fine-tune, and benchmark models on your private data. Your data never moves.

Check warning on line 11 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L11

Did you really mean 'tracebloc'?

<CardGroup cols={3}>
<Card title="Quick Setup" icon="rocket" href="/environment-setup/setup-guide">
Expand All @@ -20,24 +20,24 @@
</Card>

<Card title="Join a Use Case" icon="users" href="/join-use-case/join-use-case">
Train and submit models on someone else's data.

Check warning on line 23 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L23

Did you really mean 'else's'?
</Card>
</CardGroup>

<br />

## What is tracebloc?

Check warning on line 29 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L29

Did you really mean 'tracebloc'?

tracebloc is a **collaborative AI workspace** you deploy on your own infrastructure. Anyone you invite — researchers, partners, vendors, startups — can train, fine-tune, and benchmark models on your data. Your data never moves. Compliance is solved by architecture.

Check warning on line 31 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L31

Did you really mean 'tracebloc'?

**Who is it for?** Anyone who asks "which model works best on MY data?" and wants external input without the nightmare of NDAs, data-sharing agreements, and security reviews.

Check warning on line 33 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L33

Did you really mean 'NDAs'?

**What makes it different?**

- <Icon icon="server" /> **Your infrastructure:** runs on your Mac, Linux box, GPU server, or any Kubernetes cluster
- <Icon icon="lock" /> **Your data:** stays inside your network. Contributors never see raw records.
- <Icon icon="user-plus" /> **Invite anyone:** whitelist contributors by email. They see EDA and metadata. Never raw data.
- <Icon icon="ranking-star" /> **One leaderboard:** every submission benchmarked under identical conditions. Ship the winner.

Check warning on line 40 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L40

Did you really mean 'leaderboard'?

Check warning on line 40 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L40

Did you really mean 'benchmarked'?
- <Icon icon="shield-check" /> **Compliance by architecture:** data never moves. Sign off once on the architecture, not once per partner.

<br />
Expand All @@ -51,7 +51,7 @@
<CodeGroup>

```shellscript Mac / Linux
bash <(curl -fsSL https://tracebloc.io/i.sh)
curl -fsSL https://tracebloc.io/i.sh | bash
```

```powershell Windows
Expand All @@ -73,17 +73,17 @@
Contributors submit models and train inside your environment. PyTorch, TensorFlow, custom containers.
</Step>
<Step title="Compare and decide">
Every submission benchmarked under identical conditions. One leaderboard. Ship the winner.

Check warning on line 76 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L76

Did you really mean 'benchmarked'?

Check warning on line 76 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L76

Did you really mean 'leaderboard'?
</Step>
</Steps>

<br />

## When Should You Use tracebloc

Check warning on line 82 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L82

Did you really mean 'tracebloc'?

<CardGroup cols={2}>
<Card title="Vendor Benchmarking" icon="ranking-star">
5 vendors claim they have the best model. Invite all five to submit. One leaderboard. One week. Decisions based on measured performance — not claims.

Check warning on line 86 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L86

Did you really mean 'leaderboard'?
</Card>

<Card title="Cross-Org Research" icon="building">
Expand Down Expand Up @@ -113,7 +113,7 @@
</Card>

<Card title="Explore Workspaces" icon="compass" href="https://ai.tracebloc.io/explore">
See what builders are creating on tracebloc.

Check warning on line 116 in overview/tracebloc.mdx

View check run for this annotation

Mintlify / Mintlify Validation (tracebloc) - vale-spellcheck

overview/tracebloc.mdx#L116

Did you really mean 'tracebloc'?
</Card>

<Card title="Advanced Setup" icon="gear" href="/environment-setup/setup-guide">
Expand Down
Loading