PaperLab.space
Docs / Config file reference
Reference

Config file reference

Every field of run.yaml, with its type and default.

The same fields make up a RunConfig in Python, and the reproducibility config that every run writes has this config under its config key. Unknown fields are errors, so a typo never goes unnoticed.

Example

A short config, and the same config with every default written out, the way it appears in the reproducibility config:

YAML
dataset:
  path: data.xlsx
  sheet: test
mapping:
  input: text
  context:
  - language
  expected: label
  id: id
prompt:
  system: You are a careful annotator.
  user: 'Classify the sentiment of this {language} text: {text}'
models:
- openrouter/nvidia/nemotron-3-super-120b-a12b:free
metrics:
- name: accuracy
  labels:
  - positive
  - negative
seed: 42
YAML
dataset:
  path: data.xlsx
  sheet: test
mapping:
  input:
  - text
  context:
  - language
  expected: label
  id: id
  answer_delimiter: null
prompt:
  user: 'Classify the sentiment of this {language} text: {text}'
  system: You are a careful annotator.
models:
- id: openrouter/nvidia/nemotron-3-super-120b-a12b:free
  label: null
  temperature: 0.0
  max_tokens: null
  top_p: null
  seed: null
  requests_per_minute: null
  concurrency: null
  params: {}
metrics:
- name: accuracy
  label: null
  params:
    labels:
    - positive
    - negative
seed: 42
concurrency: 4
retry:
  max_attempts: 5
  base_delay: 2.0
  max_delay: 60.0
  timeout: 120.0

Top level

FieldTypeDefaultDescription
datasetobject, see datasetnoneWhere to load the data from. Optional when the data is passed to run directly.
mappingobject, see mappingrequiredWhich columns are inputs, context, the answer key, and the row ID.
promptobject, see promptrequiredThe prompt template: a string, or an object with user and system.
modelslist, see modelsrequiredModels to evaluate, as IDs or objects with options.
metricslist, see metrics[]Metrics to compute, as names or objects with options. Empty collects outputs only.
seedintegernoneDefault seed for models that do not set their own.
concurrencyinteger, > 04Parallel requests per model (rate limits still apply).
retryobject, see retrysee belowRetry and timeout settings.

dataset

Where the data comes from. Optional when the dataset is passed in directly.

FieldTypeDefaultDescription
pathstringrequiredData file. A relative path is resolved against the config file's folder.
sheetstring or integernoneExcel sheet name or zero-based index. Defaults to the first sheet.

mapping

Which columns are inputs, extra context, the expected answer, and the row ID.

input and context take one column name or a list.

FieldTypeDefaultDescription
inputlist of stringsrequiredColumns available to the prompt template. One name or a list.
contextlist of strings[]More columns available to the prompt, such as metadata.
expectedstringnoneThe answer key that outputs are scored against. Never available to the prompt.
idstringnoneA stable row ID. Defaults to the 1-based row number.
answer_delimiterstringnoneSplit the expected cell on this string to allow several valid answers, e.g. "|".

prompt

A user prompt (and optional system prompt) with column placeholders.

A plain string is the user message: prompt: "Translate: {text}".

FieldTypeDefaultDescription
userstringrequiredThe user message, with {column} placeholders.
systemstringnoneAn optional system message, with the same placeholders.

models

A model to evaluate, addressed by its LiteLLM ID (provider/model).

Each entry is a model ID string, or an object with options.

FieldTypeDefaultDescription
idstringrequiredLiteLLM model ID with its provider prefix, e.g. gemini/gemini-3.5-flash.
labelstringnoneDisplay name in tables. Defaults to the model ID without the provider prefix.
temperaturenumber, ≥ 00.0Sampling temperature. 0 gives the most repeatable outputs.
max_tokensinteger, > 0noneCap on output tokens per response.
top_pnumber, > 0, ≤ 1noneNucleus sampling cutoff.
seedintegernoneOverrides the run-level seed for this model.
requests_per_minutenumber, > 0noneOverride the default rate limit for this model.
concurrencyinteger, > 0noneOverride the run-level number of parallel requests for this model.
paramsmapping{}Extra provider parameters passed through to LiteLLM.

metrics

A metric name plus its options, e.g. {"name": "exact_match", "ignore_case": false}.

Each entry is a metric name, or an object with options. Options can sit next to name ({name: f1, average: macro}) or under params. See the metrics reference for each metric's options.

FieldTypeDefaultDescription
namestringrequiredA registered metric name; paperlab-space metrics lists them.
labelstringnoneColumn name in outputs; needed to use the same metric twice with different options.
paramsmapping{}Metric options such as labels or ignore_case. In YAML they can also sit next to name.

retry

How failed requests are retried, and how long to wait for a response.

FieldTypeDefaultDescription
max_attemptsinteger, ≥ 15Tries per row, including the first.
base_delaynumber, ≥ 02.0Seconds before the first retry; doubles on each attempt.
max_delaynumber, ≥ 060.0Upper bound on the wait between retries, in seconds.
timeoutnumber, > 0120.0Seconds to wait for one model response.