Spaces:
Sleeping
Sleeping
| name: long-context-summarization | |
| version: "1.0.0" | |
| description: > | |
| An RL environment for training models to compress long documents into | |
| compact summaries and then use those summaries to answer questions. | |
| Inspired by Cursor's self-summarization approach (cursor.com/blog/self-summarization). | |
| author: "Hackathon Team" | |
| tasks: | |
| - name: easy | |
| description: "Short Wikipedia passage (300β700 chars). Truncated to 70%. Factual QA." | |
| difficulty: easy | |
| dataset: "rajpurkar/squad" | |
| max_steps: 2 | |
| reward_range: [0.0, 1.0] | |
| grader: token_f1 | |
| - name: medium | |
| description: "Longer Wikipedia passage (900β2500 chars). Truncated to 65%. Factual QA." | |
| difficulty: medium | |
| dataset: "rajpurkar/squad" | |
| max_steps: 2 | |
| reward_range: [0.0, 1.0] | |
| grader: token_f1 | |
| - name: hard | |
| description: > | |
| Long scientific paper (QASPER, 2000β10000 chars). Truncated to 55%, | |
| split into two chunks. Chained summarization (3 steps): summarize chunk1, | |
| update summary with chunk2, then answer. | |
| difficulty: hard | |
| dataset: "allenai/qasper" | |
| max_steps: 3 | |
| reward_range: [0.0, 1.0] | |
| grader: token_f1 | |
| endpoints: | |
| reset: "POST /reset" | |
| step: "POST /step" | |
| state: "GET /state" | |
| health: "GET /health" | |
| schema: "GET /schema" | |
| action_space: | |
| type: text | |
| description: "Free-form text response (summary or answer)" | |
| observation_space: | |
| messages: | |
| type: "array of {role, content} dicts" | |
| description: "Full conversation history in OpenAI chat format" | |
| step_type: | |
| type: string | |
| values: ["summarize", "update_summary", "answer", "done"] | |
| task_name: | |
| type: string | |
| values: ["easy", "medium", "hard"] | |
| context_length: | |
| type: integer | |
| description: "Total context length in characters" | |
| truncation_ratio: | |
| type: float | |
| description: "Fraction of context shown to the model (0.55β0.70)" | |
| category: | |
| type: string | |
| description: "Coarse content domain such as history, science, geography, or scientific_research" | |
| source_type: | |
| type: string | |
| description: "Source style such as encyclopedic_passage, long_form_reference, or scientific_paper" | |
| done: | |
| type: boolean | |
| reward: | |
| type: float | |
| range: [0.0, 1.0] | |
| description: "Token-level F1 score (null until final step)" | |
| reward_shaping: | |
| primary: "Token-level F1 score between predicted answer and ground-truth answers" | |
| conciseness_bonus: "Up to +0.05 for summaries under 150 words when the answer is correct" | |
| optional_llm_grader: "When USE_LLM_GRADER=true, blends deterministic answer grading with an auxiliary LLM summary-quality score" | |
| configurability: "Reward thresholds, bonuses, and hybrid weights can be tuned via GRADER_* environment variables" | |