SavadogoModeste's picture
|
download
raw
6.27 kB
# Data dictionary
Paths are relative to the repository root. Files under `results/` and the large audit files live in the Hugging Face dataset; `data/`, `audit/` and `results_summary/` are also in the GitHub repository.
## Study inputs (`data/`)
### `data/scenarios.csv` (120 rows)
| column | type | meaning |
|---|---|---|
| `id` | string | scenario id: domain letter + number 1-10 (e.g. `L3`, `W7`). Numbers 1-3 form the development split, 4-10 the test split. |
| `group` | string | domain: learning, tech, money, business, logistics, health, mobility, shopping, communication (dependent) or wellbeing, people, home (controls) |
| `dependent` | 0/1 | 1 = outcome plausibly depends on infrastructure; 0 = infrastructure-independent control |
| `text` | string | the first-person request, without any location |
### `data/contexts.json`
Keys `C00_none` ... `C09_constraints_only`: the one-sentence context prepended to each request (empty string for `C00`). Groups used in the analysis: *none* = C00; *high* = C01-C03 (Boston, Paris, Seoul); *low* = C04-C07 (Ouagadougou, rural Burkina Faso, Lagos, Dhaka); *spec_loc* = C08; *spec_only* = C09. `_note` states that C08/C09 are an operational persona.
### `data/probes.json`
`context_probes`: 20 probes, each with `id`, `user` (the question), `prefix` (assistant text already written) and `cands` (list of `[continuation, group]`, group H = high-infrastructure default, L = adapted, N = neutral). `default_world_probe`: the "which country do I live in" probe (`PR0_default_country`), run with no context.
### `data/real_prompts.csv` (274 rows)
| column | meaning |
|---|---|
| `id` | `R001`-`R274` |
| `message_id` | OpenAssistant (oasst1) message id |
| `text` | the user prompt, unchanged |
| `dependent_heuristic` | 1 if a fixed keyword list matches the prompt (prompt only, never model output); used for exploratory splits |
## Model outputs (`results/<model>/`, Hugging Face)
### `generations.jsonl` (one JSON object per line)
| field | meaning |
|---|---|
| `set` | `s1` controlled scenarios, `s2` real prompts (main model only) |
| `scenario_id` | scenario id (`s1`) or `R...` id (`s2`) |
| `group`, `dependent`, `split` | domain, dependence flag, `dev`/`test` (all `s2` rows are `test`) |
| `condition` | `C00_none` ... `C09_constraints_only` |
| `template` | `A` (step-by-step plan, under 300 words), `B` (practical, no length instruction), `R` (real prompt as written) |
| `prompt` | the exact user message (context sentence + request + template suffix) |
| `run` | `greedy` or `sample1` (temperature 0.7, top-p 0.8, top-k 20; seed 1000 + batch offset, so the sample depends on batch size and order; main model only) |
| `response` | the model's text (special tokens stripped) |
| `n_new_tokens` | generated tokens before the stop token or the 500-token cap |
| `truncated` | 1 if the 500-token cap was hit before a stop token |
Counts: Qwen3-4B-Instruct-2507 5,896 (2,400 greedy + 2,400 sampled on `s1`, 1,096 greedy on `s2`); Phi-4-mini-instruct, Llama-3.2-3B-Instruct and Qwen3-1.7B 2,400 each (`s1`, greedy).
### `probes.jsonl` (938 rows per model)
`probe` (probe id), `condition`, `cand` (candidate continuation), `group` (H/L/N), `logp` (sum of token log-probabilities of the candidate given the chat prompt and prefix), `n_tok` (candidate token count), `boundary_shift` (1 if tokenisation of the prefix changed when the candidate was appended; 0 throughout). Within each (`probe`, `condition`) the candidate probabilities are renormalised with a softmax over `logp` (pre-registered); a per-token variant is reported as sensitivity.
### `meta.json`
`model`, `revision` (null when not recorded; see `model_revision_note.txt`), `args` (run arguments), `torch`, `transformers`, `platform`, `cuda`, `n_items`, `data_hash` (first 12 hex characters of SHA-256 of the line-ending-normalised input files), `date`, `seconds`.
## Audit (`audit/`)
The blind audit coded responses for two quantities (rubric in `audit/RUBRIC.md`): `n_high_infra_steps` (steps that rely on high-infrastructure services without an alternative in the same step) and `n_accommodations` (explicit accommodations to low-infrastructure conditions). `generic_disclaimer_only(0/1)` was recorded but is 0 for every response and is not used.
| file | rows | meaning |
|---|---|---|
| `audit_blind.csv` | 120 | main audit: id and response as shown to the annotator (condition hidden); code columns are empty |
| `audit_key.csv` | 120 | `audit_id` -> `scenario_id`, `condition` (kept apart from the coding view) |
| `manual_codes.csv` | 120 | the codes: `audit_id`, `n_high_infra_steps`, `n_accommodations`, `generic_disclaimer_only(0/1)`, `note` |
| `audit_coded.csv` | 120 | blind responses merged with the codes |
| `audit_rep_*.csv` | 96 each | same four files for Phi-4-mini-instruct and Qwen3-1.7B (`audit_rep_key.csv` also has `model`) |
| `audit_llama_*.csv`, `manual_codes_llama.csv` | 48 | same for Llama-3.2-3B-Instruct |
| `second_annotation_sample.csv`, `second_annotation_form.html` | 20 | instrument for an independent second annotation of 20 responses (form generated by `scripts/make_annotation_form.py`); **not completed** |
Main audit: 24 test scenarios x conditions C00, C01, C04, C08, C09 (greedy, template A). Replication audits: the same 24 scenarios x C00 and C09 per model. Annotation: single annotator.
## Derived summary files (`results_summary/` on GitHub; `results/*.md` and per-model tables on Hugging Face)
`tables_test*.md` (all pre-registered tables), `cross_model_test_greedy.md` (primary contrasts per model), `cross_model_test_greedy_excl_G9.md` (sensitivity: same contrasts without scenario G9), `audit_stats.md`, `audit_eval.md`, `replication_audit_stats.md`, per-model figures, and `figures/fig_*_data.csv` (the numbers behind the two cross-model figures).
## Redactions in the released copies
E-mail-like strings inside model responses (hallucinated or placeholder addresses of the form `name@organisation.tld`; 24 occurrences in `generations.jsonl` and the audit response files) are replaced by `[email redacted]` because some could coincide with real contacts. No other text was altered. `scripts/verify_release.py` recomputes every reported number from the redacted files and they match.

Xet Storage Details

Size:
6.27 kB
·
Xet hash:
09b71ebe20d42e6e5c608a7c0023111a0300d769ca8179579f1261214ec4712e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.