Skip to main content
A dataset is a versioned JSONL file of example rows, with no grader. SFT and DPO train on a dataset, which holds finished answers to learn from. GRPO and distillation train on an environment, which scores attempts. A training run names its dataset with --data. Rows can come from a file the team already has, from a generator (Synthetic Data), or from real data with personal details removed (Anonymization).

Write Demonstration Rows

A demonstration row holds input and output:
A row can instead hold a messages list of chat turns, which Monte uses as it is:

Write Preference Rows

A preference row holds prompt, chosen, and rejected. prompt can be text or a list of chat turns.

Add a Dataset

The command checks every row against the format of its kind. A bad row stops the add, and the error names the line. Columns with other names map with the key flags, such as --input-key. Dataset Commands lists them. Each add makes a new immutable version in artifact storage: support-replies@1, then support-replies@2. A bare name means the newest version. A run records the exact version it trained on.

The Overlap Record

Every add compares the rows against every eval environment in artifact storage, and records each eval whose task text appears in the rows. The check finds exact matches of 40 characters or more, not rewritten tasks. The record is a warning: the add always completes, and monte train shows the record again when a run uses the dataset.

List and Show Datasets

monte dataset show prints the rows, origin, kind, and overlap record, and checks the rows against their hash.