{"data":{"kind":"file","path":"README.md","version_id":"d4d31ktpu4pspvq3b8q23y5c","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2582,"modified_at":"2026-02-05T02:04:16.146000","content_hash":"bfe7fda72201247a0eade8269bdbe94886dfb464f3052e5261e014642537b600"},"entries":[],"content":"# rlrf\n\n### Overview\n- **Environment ID**: `rlrf`\n- **Short description**: Reinforcement Learning from Rendering Feedback (RLRF) environment. Image-to-SVG generation.\n- **Tags**: multimodal, svg-generation, img2svg, train, eval\n\n### Datasets\n- **Primary dataset(s)**: Starvector's `svg-stack` dataset.\n- **Source links**: [svg-stack](https://huggingface.co/datasets/starvector/svg-stack)\n- **Split sizes**: 2.17M train, 5.71k eval\n\n### Task\n- **Type**: single-turn\n- **Parser**: Custom SVG parser based on `vf.MaybeThinkParser` \n- **Rubric overview**: A mix of semantic, visual and structural rewards as defined in the [RLRF paper](https://starvector.github.io/rlrf/).\n\n### External Dependencies\n\n- `libcairo2-dev` for CairoSVG.\n- `lxml` for BeautifulSoup fallback.\n\n### Quickstart\nRun an evaluation with default settings:\n\n```bash\nprime eval run rlrf\n```\n\nConfigure model and sampling:\n\n```bash\nprime eval run rlrf   -m gpt-4.1-mini   -n 20 -r 3 -t 1024 -T 0.7   -a '{\"key\": \"value\"}'  # env-specific args as JSON\n```\n\nNotes:\n- Use `-a` / `--env-args` to pass environment-specific configuration as a JSON object.\n\n### Environment Arguments\n\n| Arg | Type | Default | Description |\n| --- | ---- | ------- | ----------- |\n| `dataset_name` | str | `\"starvector/svg-stack\"` | Dataset name from HuggingFace |\n| `dataset_split` | str | `\"train\"` | Dataset split to use |\n| `svg_key` | str | `\"Svg\"` | Key in dataset for SVG data |\n| `num_examples` | int | `-1` | Limit on dataset size (use -1 for all) |\n| `seed` | Optional[int] | `None` | Random seed for dataset shuffling |\n| `dreamsim_device` | str | `\"cuda\"` | Device for DreamSim model |\n| `dreamsim_type` | str | `\"ensemble\"` | DreamSim model type |\n| `weight_dreamsim` | float | `1.0` | DreamSim reward weight |\n| `weight_l2` | float | `1.0` | L2 reward weight |\n| `weight_efficiency` | float | `0.1` | Efficiency reward weight |\n| `weight_format` | float | `0.1` | Format reward weight |\n| `use_canny_rewards` | bool | `True` | Whether to use canny rewards |\n| `weight_dreamsim_canny` | float | `1.0` | DreamSim canny reward weight |\n| `weight_l2_canny` | float | `1.0` | L2 canny reward weight |\n\n### Metrics\n\n| Metric | Meaning |\n| ------ | ------- |\n| `reward` | Main scalar reward (weighted sum of criteria) |\n| `reward_semantic_dreamsim` | Semantic DreamSim reward |\n| `reward_l2_reconstruction` | L2 reconstruction reward |\n| `reward_code_efficiency` | Code efficiency reward |\n| `reward_format` | Format reward |\n| `reward_l2_canny` | L2 canny reward |\n| `reward_semantic_dreamsim_canny` | Semantic DreamSim canny reward |\n","encoding":"utf-8","truncated":false,"total_bytes":2582},"status":null}