Skip to main content
Learn vector representations from text pairs. This task is self-supervised (contrastive): there is no label column — the pairing is the supervision. Each sample is one .txt file with one tab-separated record:
  • a pair anchor<TAB>positive — two texts that should embed close together, or
  • a triplet anchor<TAB>positive<TAB>negative — with a hard negative that should embed far from the anchor.
Pairs and triplets may be mixed in one dataset.

Folder layout

Example pair:
  • The folder is named texts and sits next to the manifest CSV.
  • Exactly one tab between fields, all fields non-empty, one record per file on a single line. Unlike the other self-supervised text tasks, this structure is enforced: the CLI checks it before it ingests anything, and the ingestor checks it again.
  • UTF-8 encoded. Every file must end in .txt. The ingestor also accepts .text, but training opens only <filename>.txt, so a .text dataset ingests and then fails to train.

Manifest CSV

There is no label column. Setting label: in ingest.yaml is rejected.

Ingest with the CLI

Each split is one folder laid out as above. Ingest the training and the test split separately:
Do not pass --label-column: the CLI rejects it for this task because it trains on the text itself.

ingest.yaml

What the ingestor checks

Plus the checks every ingest runs, except label diversity (no label).

Sample dataset

The template ships three pairs and two triplets with a five-row manifest. The manifest ships as labels_file_sample.csv: rename it to labels.csv before you ingest the folder, because the CLI reads only that name. For the Helm chart, stage the renamed folder so that it matches the paths in the ingest.yaml above.

Score formulas

When you define a use case on this data, the platform currently accepts Perplexity only. An embeddings run does not report perplexity, so the leaderboard of an embeddings use case cannot rank submissions yet.

Next steps