> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trymonte.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Datasets

> Datasets, synthetic data, and anonymization

These commands add, generate, and remove datasets. [Datasets](https://docs.trymonte.ai/datasets/overview.md) explains the row kinds and the overlap record.

| Command | Description |
| - | - |
| [`monte dataset add`](#monte-dataset-add) | Add a dataset as a new version |
| [`monte dataset generate`](#monte-dataset-generate) | Generate rows from seed examples |
| [`monte dataset list`](#monte-dataset-list) | List datasets |
| [`monte dataset show`](#monte-dataset-show) | Show one dataset and check its rows |
| [`monte dataset delete`](#monte-dataset-delete) | Remove a dataset from artifact storage |

## monte dataset add

```text theme={null}
monte dataset add <name> --from-file <path> --kind sft|preference [key flags] [anonymize flags] [--json]
monte dataset add <name> --from-hf <repo>[@<rev>] --file <path> --kind sft|preference [key flags] [anonymize flags] [--json]
```

Add one JSONL file as a new dataset version. The command checks every row, records the overlap with every eval environment, and pushes the rows to artifact storage.

| Flag | Type | Default | Description |
| - | - | - | - |
| `<name>` | argument | required | Lowercase letters, digits, and `-` |
| `--from-file` | path | | A local JSONL file |
| `--from-hf` | string | | A Hugging Face dataset repo. `@<rev>` pins a branch, tag, or commit. |
| `--file` | path | required with `--from-hf` | The JSONL file inside the repo |
| `--kind` | string | required | `sft` for demonstrations, `preference` for preference pairs |
| `--input-key` | string | `input` | The prompt column of an `sft` row |
| `--output-key` | string | `output` | The answer column of an `sft` row |
| `--prompt-key` | string | `prompt` | The prompt column of a `preference` row |
| `--chosen-key` | string | `chosen` | The preferred answer of a `preference` row |
| `--rejected-key` | string | `rejected` | The rejected answer of a `preference` row |
| `--anonymize` | flag | off | Replace personal details before the rows are stored. [Anonymization](https://docs.trymonte.ai/datasets/anonymization.md) explains it. |
| `--entities` | list | every built-in type | With `--anonymize`: the types to find. NER types: `person`, `org`, `location`, `address`. Pattern types: `email`, `phone`, `ip`, `account`, `card`, `id` |
| `--replace` | `placeholder`, `pseudonym`, or `redact` | `placeholder` | With `--anonymize`: what a found value becomes |
| `--threshold` | number from 0 to 1 | `0.5` | With `--anonymize`: the lowest NER confidence that counts as a find |
| `--keep` | path | none | With `--anonymize`: a text file of terms that are never replaced, one for each line |
| `--patterns` | path | none | With `--anonymize`: a YAML file that maps a custom type to a regular expression |
| `--preview` | integer | off | With `--anonymize`: print this many rows before and after, and store nothing |
| `--json` | flag | off | Print JSON on stdout |

```bash theme={null}
monte dataset add support-replies --from-file demos.jsonl --kind sft --anonymize
```

```text theme={null}
checked     1,240 rows (sft: messages)
anonymized  PERSON 2,118  EMAIL 342  PHONE 97  ORG 1,406  ACCOUNT 21
overlap     none against support-escalation@1, support-escalation-dev@2
added       support-replies@1  sha256 0be4a6f9...
```

| Error | Cause |
| - | - |
| `E_REFUSAL` | A row does not match the kind. The message names the line. |
| `E_NOT_FOUND` | No file at the path, or no such repo, revision, or file on Hugging Face |

## monte dataset generate

```text theme={null}
monte dataset generate --seeds <path> --name <dataset> --model <model> [--kind sft|preference] [--rows <n>]
  [--turns <n>] [--topics <path>] [--dedup near|exact|off] [--judge <model>]
  [--grader <environment>] [--min-score <x>] [--out <path>] [--remote] [--json]
```

Generate rows from seed examples, and drop the rows that fail the filters. The rows that pass go to a JSONL file for review, and the dropped rows go to a second file with a reason for each. The command does not add a dataset. [Synthetic Data](https://docs.trymonte.ai/datasets/synthetic-data.md) explains each step.

The generator and the judge are open-weight models. Each is a Hugging Face ID, such as `Qwen/Qwen3-235B-A22B`, or a deployment name, such as `qwen3-235b`.

| Flag | Type | Default | Description |
| - | - | - | - |
| `--seeds` | path | required | A JSONL file of seed rows in the format of `--kind`. With `--grader`, each seed also holds that environment's grader fields. |
| `--kind` | string | `sft` | `sft` writes `input` and `output` rows. `preference` writes `prompt`, `chosen`, and `rejected` rows from preference seeds. |
| `--name` | string | required | The name of the dataset to come. It also names the output files. |
| `--rows` | integer | `500` | The number of rows to generate, before the filters |
| `--model` | string | required | The generator: an open-weight model ID or a deployment name |
| `--turns` | integer | `1` | The exchanges in each row. Above 1, each row is a conversation in the `messages` format. |
| `--topics` | path | | A text file of topics, one on each line. Without it, the generator takes topics from the seeds. |
| `--dedup` | string | `near` | `near` drops rows close to a seed or another row, `exact` drops only exact copies, `off` keeps every row |
| `--judge` | string | | A judge that scores each row from 0 to 1: an open-weight model ID or a deployment name |
| `--grader` | string | | A training environment whose grader scores each reply. An eval environment is refused. |
| `--min-score` | number | `0.5` | The lowest judge or grader score that passes |
| `--out` | path | `./<name>.jsonl` | The output file. The dropped rows go to the same path with `.dropped.jsonl`. |
| `--remote` | flag | off | Run the job on a GPU instance |
| `--json` | flag | off | Print JSON on stdout |

```bash theme={null}
monte dataset generate --seeds seeds.jsonl --name support-synth --rows 800 \
  --model Qwen/Qwen3-235B-A22B --judge Qwen/Qwen3-235B-A22B --min-score 0.7 \
  --grader support-escalation-train --remote
```

```text theme={null}
generated   800 rows
dropped     31 near copies, 42 below 0.7 on the judge, 18 below 0.7 on support-escalation-train@1
wrote       ./support-synth.jsonl (709 rows), ./support-synth.dropped.jsonl (91 rows)
```

| Error | Cause |
| - | - |
| `E_REFUSAL` | A seed row does not match the format of `--kind`, or `--grader` names an eval environment |

## monte dataset list

```text theme={null}
monte dataset list [--stored] [--json]
```

List the dataset versions on this machine.

| Flag | Type | Default | Description |
| - | - | - | - |
| `--stored` | flag | off | List the datasets in artifact storage |
| `--json` | flag | off | Print JSON on stdout |

```bash theme={null}
monte dataset list
```

```text theme={null}
NAME              KIND         VERSION   ROWS    OVERLAP
support-replies   sft          1         1,240   none
support-synth     sft          1         709     support-escalation-dev@2 (3 rows)
```

## monte dataset show

```text theme={null}
monte dataset show <name>[@<version>] [--json]
```

Show one dataset: its kind, origin, row count, columns, anonymization counts, and overlap record. The command also checks the rows against their hash, and fetches the dataset from artifact storage if this machine does not hold it.

| Flag | Type | Default | Description |
| - | - | - | - |
| `<name>[@<version>]` | argument | required | The dataset. A bare name means the newest version. |
| `--json` | flag | off | Print JSON on stdout |

```bash theme={null}
monte dataset show support-replies
```

```text theme={null}
dataset     support-replies@1 (sft)  rows 1,240  sha256 0be4a6f9... verified
anonymized  PERSON 2,118  EMAIL 342  PHONE 97  ORG 1,406  ACCOUNT 21
overlap     none
used by     support-triage/train-07, support-triage/train-09
```

## monte dataset delete

```text theme={null}
monte dataset delete <name>[@<version>] [--yes] [--json]
```

Remove a dataset from artifact storage and this machine. A bare name removes every version. Run history keeps the record that a run trained on the dataset, but not the rows.

> [!WARNING]
>
> A delete does not remove what a model learned from the rows. [Delete a Dataset](https://docs.trymonte.ai/datasets/anonymization.md#delete-a-dataset) explains what else to remove.

| Flag | Type | Default | Description |
| - | - | - | - |
| `<name>[@<version>]` | argument | required | The dataset, or one version of it |
| `--yes` | flag | off | Skip the prompt |
| `--json` | flag | off | Print JSON on stdout |

```bash theme={null}
monte dataset delete support-replies
```

```text theme={null}
This removes 1 version of support-replies. 2 training runs used it: support-triage/train-07, support-triage/train-09.
delete? [y/N] y
Deleted support-replies@1 from artifact storage and this machine.
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.