{"data":{"kind":"file","path":"README.md","version_id":"e8s3tae6oc3giqnivw1q1w6c","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2217,"modified_at":"2026-02-06T07:06:18","content_hash":"aecd2eb9075500a49bbc6e21021e0190d2bbe9468508829a47faf5e12a474580"},"entries":[],"content":"# md-2-xml\n\nMarkdown table to XML conversion with composable paraphrased instructions. Tests instruction-following for structured format conversion across two XML styles.\n\n### Overview\n- **Environment ID**: `md_2_xml`\n- **Tags**: instruction-following, xml, format-conversion, train, eval\n\n### Datasets\n- **HF Dataset**: [`kalomaze/md-2-xml-wiki-tables`](https://huggingface.co/datasets/kalomaze/md-2-xml-wiki-tables)\n- **Training**: 894 markdown tables (`train` split)\n- **Eval**: 64 held-out markdown tables (`test` split)\n\n### Task\n- **Type**: single-turn (multi-turn supported)\n- **Rubric**: difflib similarity raised to configurable power (near-binary pass/fail), plus exact-match metric\n\nEach example presents a markdown table with a paraphrased instruction requesting conversion to one of two XML styles:\n\n- **Style A**: Self-closing attribute-based (`<columns col1=\"...\" />`, `<row col1=\"...\" />`)\n- **Style B**: Element-based with indexed values (`<headers>`, `<record>`, `<val index=\"N\">content</val>`)\n\nInstructions are composed from randomized clause pools for lexical diversity while preserving semantic equivalence.\n\n### Quickstart\n\n```bash\nvf-eval md_2_xml --num-examples 10 --rollouts-per-example 4 \\\n  -b http://localhost:8000/v1 --model Qwen/Qwen3-4B-Instruct-2507\n```\n\n### Environment Arguments\n\n| Arg | Type | Default | Description |\n| --- | ---- | ------- | ----------- |\n| `dataset_name` | str | `\"kalomaze/md-2-xml-wiki-tables\"` | HF dataset name |\n| `dataset_split` | str | `\"train\"` | HF dataset split (`\"train\"` or `\"test\"`) |\n| `style` | str | `\"both\"` | Which XML style(s) to use: `\"a\"`, `\"b\"`, or `\"both\"` (random per example) |\n| `n_per_table` | int | `1` | Number of examples to generate per table |\n| `min_turns` | int | `1` | Min conversation turns per example |\n| `max_turns` | int | `1` | Max conversation turns per example |\n| `similarity_power` | int | `69` | Exponent for difflib similarity (higher = more binary) |\n| `seed` | int | `42` | Random seed for reproducibility |\n\n### Metrics\n\n| Metric | Meaning |\n| ------ | ------- |\n| `reward` | difflib similarity ^ similarity_power (weighted 1.0) |\n| `perfect` | Exact normalized match: 1.0 or 0.0 (weighted 0.0, tracking only) |\n","encoding":"utf-8","truncated":false,"total_bytes":2217},"status":null}