<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions
  xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
  xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
  xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
  xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
  xmlns:dai="https://diagram.app/schema/dai/1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  id="Definitions_supernova"
  targetNamespace="https://diagram.app/workflow">

  <bpmn:process id="Process_supernova" name="SuperNova: RLVR Data Curation for General Reasoning" isExecutable="false">
    <bpmn:extensionElements>
      <dai:workflowMeta
        description="SuperNova is a multi-stage data curation framework for Reinforcement Learning with Verifiable Rewards (RLVR) aimed at improving general reasoning in LLMs. The paper conducts 100+ controlled RL experiments across three design axes — task selection, task mixing, and data interventions — then trains Qwen3 models (0.6B–4B) on the resulting 25K-sample dataset, achieving state-of-the-art results on BBEH, Zebralogic, BBH, and MMLU-Pro. Source: arXiv:2604.08477v1 [cs.AI] 09 Apr 2026. Authors: Ashima Suvarna, Kendrick Phan, Mehrab Beikzadeh, Hritik Bansal, Saadia Gabriel (UCLA)."
        defaultModel="claude-sonnet-4-5"
        targetLanguage=""
        targetFramework=""
        version="1.0">
        <dai:taskTypeEntry stepType="context" description="Background knowledge or grounding data from the paper that informs downstream reasoning." />
        <dai:taskTypeEntry stepType="rule" description="A constraint or design principle the SuperNova framework enforces." />
        <dai:taskTypeEntry stepType="assumption" description="A claim the paper assumes or later validates/invalidates through experiment." />
        <dai:taskTypeEntry stepType="decision-record" description="A key empirical finding from a controlled experiment, expressed as an architectural decision record." />
        <dai:taskTypeEntry stepType="dependency" description="A model, dataset, library, or external system the SuperNova framework depends on." />
        <dai:taskTypeEntry stepType="test" description="An evaluation benchmark used to measure downstream reasoning performance." />
        <dai:taskTypeEntry stepType="kpi" description="A quantitative performance result reported in the paper." />
        <dai:taskTypeEntry stepType="risk" description="A limitation or threat to validity acknowledged by the authors." />
      </dai:workflowMeta>
    </bpmn:extensionElements>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 1 — BACKGROUND
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_background" name="Background">

      <bpmn:task id="Task_rlvr" name="RLVR" dai:stepType="context"
        dai:notes="Reinforcement Learning with Verifiable Rewards (RLVR) trains LLMs by sampling rollouts from a policy and computing a reward against a verifiable ground-truth answer. It has driven rapid progress in STEM reasoning (maths, code) but has not transferred well to general reasoning tasks. The paper uses GRPO (Group Relative Policy Optimisation) as the RL algorithm, skipping the KL penalty to improve training efficiency." />

      <bpmn:task id="Task_grpo" name="GRPO Objective" dai:stepType="context"
        dai:notes="Given input-target pair (q, t), GRPO samples G rollouts {o_i} from behaviour policy π_θ_old and optimises: J_GRPO(θ) = E[ (1/G) Σ min(ρ_i(θ) Â_i, clip(ρ_i(θ), 1−ε, 1+ε) Â_i) ] where ρ_i = π_θ(o_i|q) / π_θ_old(o_i|q) is the importance sampling ratio, and the group-centred advantage is Â_i = r_i − (1/G) Σ r_j. KL penalty is omitted for training efficiency." />

      <bpmn:task id="Task_general_reasoning" name="General Reasoning" dai:stepType="context"
        dai:notes="General reasoning is the ability to derive novel conclusions from existing knowledge using skills such as logical deduction, causal reasoning, spatial understanding, temporal reasoning, and pragmatic inference. It is distinct from formal STEM reasoning. Models trained solely on maths/code data (e.g. OpenReasoner-7B, OpenThinker-7B) degrade on general reasoning: +50% on AIME24 but −8% on BBEH vs. the base model." />

      <bpmn:task id="Task_superni" name="SuperNI Dataset" dai:stepType="dependency"
        dai:package="Super-Natural Instructions (SuperNI)"
        dai:version="Wang et al., 2022"
        dai:dependencyType="runtime"
        dai:license="arXiv / ACL Anthology"
        dai:notes="SuperNI contains 1,600 expert-annotated NLP tasks spanning question answering, question generation, commonsense reasoning, textual entailment, temporal reasoning, coreference resolution, and more. Each task provides a task description, instruction-response pairs, and ground-truth annotations. SuperNova uses SuperNI as its raw data source. A candidate pool of 83 tasks is selected from the full 1,600 for controlled RL experiments." />

      <bpmn:task id="Task_bbeh" name="BBEH Benchmark" dai:stepType="context"
        dai:notes="Big-Bench Extra Hard (BBEH; Kazemi et al., 2025) is the primary validation benchmark. It contains 23 diverse sub-tasks spanning linguistic, logical, and commonsense reasoning including: Geometric Shapes, Boolean Expressions, Shuffled Objects, Multistep Arithmetic, Zebra Puzzles, Hyperbaton, Web of Lies, Disambiguation QA, Word Sorting, Boardgame QA, NYCC, Time Arithmetic, Movie Recommendation, Causal Understanding, Sarc Triples, Dyck Languages, and 7 near-zero sub-tasks. BBEH-mini (460 examples across all 23 sub-tasks) is used as the validation split during data curation; the remaining examples form BBEH-test (the held-out evaluation set)." />

      <bpmn:task id="Task_problem_setup" name="Problem Setup" dai:stepType="context"
        dai:notes="Given a pool of candidate datasets D = {D_1, ..., D_K}, a model M, and training algorithm A, the objective is to find a subset S ⊆ D that maximises downstream performance: S* = argmax_{S⊆D} Φ(A(M, S), V) where A(M, S) is the model trained on S and V is the validation set. This formalises data curation as an optimisation problem over the task pool." />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 2 — CONSTRAINTS / DESIGN RULES
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_rules" name="Design Rules">

      <bpmn:task id="Rule_verifiability" name="Verifiability Requirement" dai:stepType="rule"
        dai:scope="global" dai:rulePriority="critical" dai:enforcement="hard"
        dai:notes="Every training question must have a uniquely extractable ground-truth answer verifiable by exact-match or regex. Open-ended tasks that do not allow easy verification must be reformatted (e.g. converted to multiple-choice) or discarded. The solution field must contain only the final answer — no explanation, no punctuation unless part of the value." />

      <bpmn:task id="Rule_compute_matched" name="Compute-Matched Budget" dai:stepType="rule"
        dai:scope="global" dai:rulePriority="high" dai:enforcement="hard"
        dai:notes="All data curation experiments are compute-matched: Qwen3-0.6B, 250 RL steps, 500 prompts, lr=1e-6, 8 generations per prompt, batch size 8, temperature 0.7, max generation length 4096. This ensures that observed differences in downstream performance are attributable to data quality rather than training budget differences." />

      <bpmn:task id="Rule_winrate_filter" name="Win-Rate Filtering" dai:stepType="rule"
        dai:scope="global" dai:rulePriority="high" dai:enforcement="hard"
        dai:notes="Questions with win-rate = 1 (too easy, model always correct) and win-rate = 0 (too hard, model never correct) are removed from the training pool. Only questions where the model sometimes succeeds and sometimes fails are retained, ensuring the RL signal is informative." />

      <bpmn:task id="Rule_no_kl" name="Skip KL Penalty" dai:stepType="rule"
        dai:scope="global" dai:rulePriority="medium" dai:enforcement="hard"
        dai:notes="Following Yu et al. (2025), the KL divergence penalty term is omitted from the GRPO objective to improve training efficiency. This is applied across all experiments." />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 3 — STAGE 1: TASK SELECTION
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_stage1" name="Stage 1 — Task Selection">

      <bpmn:startEvent id="Start_stage1" name="Start: raw SuperNI pool (1,600 tasks)" />

      <bpmn:task id="Task_candidate_pool" name="Candidate Pool Selection"
        dai:notes="Claude-Opus-4.6 is prompted with each of the 1,600 SuperNI task descriptions and example input/output pairs. It assesses whether the task is suitable for RL reasoning training and responds yes/no. 83 tasks are selected as the candidate pool. The validation benchmark (BBEH) is intentionally excluded from this prompt to ensure task ranking is driven purely by task utility scores rather than benchmark leakage. Prompt: 'This is an instruction-following task used to train LLMs. Consider the given task description and examples. Now assess the suitability of the task for RL training reasoning models. Think step by step and only respond with yes/no. Task ID: {task_id}. Task Description: {description}. Example Input: {input}. Example Output: {output}.'" />

      <bpmn:task id="Task_reformat" name="Reformat to Verifiable Questions"
        dai:notes="Each instruction in D_k is reformatted by GPT-5-mini from open-ended SFT format to a verifiable question-answer pair. Formatting logic: (a) Open-ended: used when the answer is a unique value (number, specific name, constant); (b) MCQ: used when the task is subjective, has multiple valid answers, or involves Yes/No — options labelled (A)–(J). Output is a valid JSON object with keys: 'formatting_logic', 'problem', 'solution'. The solution must be uniquely extractable via simple string matching or regex. Manual inspection of 100 samples found 100% accuracy in following the prompt while preserving ground-truth." />

      <bpmn:task id="Task_winrate" name="Win-Rate Computation"
        dai:notes="8 rollouts are sampled from Qwen3-0.6B (temperature=0.7, max length=4096) for each reformatted question. Per-question win-rate is computed. Questions with win-rate=0 (too hard) or win-rate=1 (too easy) are filtered out per Rule_winrate_filter. The remaining questions form the usable per-task dataset D_k." />

      <bpmn:task id="Task_task_ranking" name="Task Ranking by Utility Score"
        dai:notes="For each of the 83 candidate tasks D_k, a task-utility score u_k is computed. Three approaches were evaluated: (a) semantic similarity between task questions and BBEH validation questions; (b) lexical similarity; (c) train Qwen3-0.6B on D_k and evaluate pass@8 on BBEH-mini. Approach (c) is used in main experiments — each task is individually trained on in a compute-matched 250-step run. The resulting ranking u_D1 > u_D2 > ... > u_D83 drives all subsequent mixing decisions." />

      <bpmn:task id="Task_similarity_null" name="Similarity as Proxy — Invalidated" dai:stepType="assumption"
        dai:status="invalidated"
        dai:basis="Semantic and lexical similarity between source tasks and BBEH sub-tasks are fast, cheap, model-agnostic proxies for task utility."
        dai:ifWrong="Task selection would be wrong — poor tasks selected, good tasks missed — leading to suboptimal training mixtures."
        dai:notes="Experiments in Appendix H show weak correlation between both semantic similarity (BERTScore-style) and lexical similarity (token overlap) and downstream BBEH pass@8. Similarly, average win-rate of the base model on a task is also a weak predictor of downstream performance. Conclusion: effective task selection requires controlled, iterative, compute-matched RL training — there is no cheap shortcut." />

      <bpmn:task id="Task_multihop_insight" name="Multi-hop Tasks Are Strongest" dai:stepType="decision-record"
        dai:status="accepted"
        dai:context="Tasks were categorised into coarse groups (Multi-hop Reasoning, Coreference Resolution, Textual Entailment, Narrative, Temporal, etc.) and mean pass@8 was computed per category."
        dai:decision="Multi-hop Reasoning and Coreference Resolution tasks yield the largest gains over the baseline. Narrative and surface-formatting tasks (Story Coherence, Date/Temporal format) consistently underperform. However, coarse category labels are insufficient — task738_perspectrum (Textual Entailment) is the top-ranked individual task by a large margin despite its category ranking in the middle tier."
        dai:consequences="Fine-grained, task-level utility scoring via controlled RL training is required. Coarse category-level analysis masks the variation that matters for data curation." />

      <bpmn:task id="Task_selection_impact" name="Task Selection Impact: 48.6pp spread" dai:stepType="kpi"
        dai:target="48.6"
        dai:unit="percentage points spread on BBEH-mini pass@8"
        dai:formula="best_task_gain − worst_task_gain = +39pp (task738_perspectrum) − (−9pp) (task213_rocstories)"
        dai:frequency="one-time"
        dai:owner="Stage 1 experiments"
        dai:notes="Training on the best individual task (task738_perspectrum_classification) yields +39pp relative gain on BBEH-mini pass@8 vs. baseline. Training on the worst task (task213_rocstories_correct_ending_classification) yields −9pp. Several tasks degrade performance. This 48.6pp spread demonstrates that task selection is non-trivial and has a dramatic impact on downstream reasoning." />

      <bpmn:endEvent id="End_stage1" name="Ranked task list (83 tasks)" />

      <bpmn:sequenceFlow id="Flow_s1_1" sourceRef="Start_stage1" targetRef="Task_candidate_pool" />
      <bpmn:sequenceFlow id="Flow_s1_2" sourceRef="Task_candidate_pool" targetRef="Task_reformat" />
      <bpmn:sequenceFlow id="Flow_s1_3" sourceRef="Task_reformat" targetRef="Task_winrate" />
      <bpmn:sequenceFlow id="Flow_s1_4" sourceRef="Task_winrate" targetRef="Task_task_ranking" />
      <bpmn:sequenceFlow id="Flow_s1_5" sourceRef="Task_task_ranking" targetRef="End_stage1" />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 4 — STAGE 2: TASK MIXING
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_stage2" name="Stage 2 — Task Mixing">

      <bpmn:startEvent id="Start_stage2" name="Start: ranked task list" />

      <bpmn:task id="Task_macro" name="Macro Mixing"
        dai:notes="Macro utility score u_k is the macro-average of model pass@8 across all 23 BBEH sub-tasks after training on D_k. The top-N tasks by this global average are selected for the mixture. N ∈ {1, 2, 4, 8, 16}. Best result: Top-2 achieves pass@8=21.7%. Weakness: the macro average biases the mixture toward tasks that help the majority of sub-tasks, potentially underweighting tasks that are critical for specific reasoning skills." />

      <bpmn:task id="Task_micro" name="Micro Mixing"
        dai:notes="For each BBEH sub-task V_i, a per-sub-task ranking is produced: u_k^(i) = performance of model trained on D_k evaluated on sub-task V_i. The top-N tasks per sub-task are selected, and the union of selected tasks is taken as the mixture. N ∈ {1, 2, 4, 8, 16}. Best result: Top-2 achieves pass@8=22.8%. Micro-Top1 selects 16 unique tasks; Micro-Top2 selects 31 unique tasks. Strength: preserves per-skill coverage by ensuring each sub-task has its optimal source data represented." />

      <bpmn:exclusiveGateway id="Gateway_mixing" name="Best Mixing Strategy?"
        dai:notes="Micro Mixing consistently outperforms Macro Mixing at every value of N (top-1 through top-16). The optimal mixture is Micro-Top2 with pass@8=22.8% on BBEH-mini. This is the mixture used for Stage 3 and the final SuperNova dataset." />

      <bpmn:task id="Task_mixing_dr" name="Micro &gt; Macro; Top-2 is Optimal" dai:stepType="decision-record"
        dai:status="accepted"
        dai:context="Two mixing strategies (Macro and Micro) were evaluated at N ∈ {1,2,4,8,16} under compute-matched 250-step RL runs on Qwen3-0.6B. Results on BBEH-mini pass@8: Micro-Top2=22.8%, Macro-Top2=21.7%, Micro-Top16=20.2%, Macro-Top16=18.3%."
        dai:decision="Micro Mixing at N=2 (Micro-Top2) is the optimal strategy. Mixing too few tasks limits diversity; mixing too many degrades performance. Micro Mixing outperforms Macro at every N because it preserves skill-specific coverage."
        dai:consequences="The SuperNova dataset is built from Micro-Top2: 31 unique tasks selected by taking the top-2 tasks per BBEH sub-task and taking the union. This directly contradicts the intuition that maximising overall average performance is the best selection criterion." />

      <bpmn:endEvent id="End_stage2" name="Micro-Top2 mixture (31 tasks)" />

      <bpmn:sequenceFlow id="Flow_s2_1" sourceRef="Start_stage2" targetRef="Task_macro" />
      <bpmn:sequenceFlow id="Flow_s2_2" sourceRef="Start_stage2" targetRef="Task_micro" />
      <bpmn:sequenceFlow id="Flow_s2_3" sourceRef="Task_macro" targetRef="Gateway_mixing" />
      <bpmn:sequenceFlow id="Flow_s2_4" sourceRef="Task_micro" targetRef="Gateway_mixing" />
      <bpmn:sequenceFlow id="Flow_s2_5" sourceRef="Gateway_mixing" targetRef="Task_mixing_dr" name="Micro-Top2 wins" />
      <bpmn:sequenceFlow id="Flow_s2_6" sourceRef="Task_mixing_dr" targetRef="End_stage2" />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 5 — STAGE 3: DATA INTERVENTIONS
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_stage3" name="Stage 3 — Data Interventions">

      <bpmn:startEvent id="Start_stage3" name="Start: Micro-Top2 base dataset" />

      <bpmn:task id="Task_int_context" name="Intervention Framework" dai:stepType="context"
        dai:notes="Starting from the Micro-Top2 base dataset, 8 synthetic interventions are applied to question statements (never to answers, to preserve verifiability). GPT-5-mini is prompted to inject a distractor of the specified type while preserving the ground-truth answer. Win-rate filtering is re-applied to the augmented data. In experiments, original and augmented data are combined 1:1. Surprising finding: none of the interventions improve over the base Micro-Top2 dataset." />

      <bpmn:task id="Task_int_manyhop" name="Many-hop Reasoning" dai:stepType="context"
        dai:notes="Intervention: add information that increases the number of reasoning steps needed to reach the answer. Result on BBEH-mini pass@8: 20.0% vs. base 22.8%. Does not improve over base." />

      <bpmn:task id="Task_int_prior" name="Going Against Prior" dai:stepType="context"
        dai:notes="Intervention: add context that creates a misleading prior belief conflicting with the correct answer, tempting the model to answer based on surface-level associations. Result on BBEH-mini pass@8: 22.6% — the best-performing intervention but still below the base 22.8%." />

      <bpmn:task id="Task_int_fly" name="Learning on the Fly" dai:stepType="context"
        dai:notes="Intervention: introduce a new rule, definition, or convention within the problem that must be understood and applied to solve it. Result on BBEH-mini pass@8: 18.3%. Does not improve over base." />

      <bpmn:task id="Task_int_longctx" name="Long-Context" dai:stepType="context"
        dai:notes="Intervention: pad the problem with additional (non-answer-changing) context to increase overall length, simulating needle-in-haystack difficulty. Result on BBEH-mini pass@8: 21.3%. Does not improve over base." />

      <bpmn:task id="Task_int_errors" name="Finding Errors in Reasoning Traces" dai:stepType="context"
        dai:notes="Intervention: include a flawed reasoning chain within the problem that the model must identify as incorrect. Result on BBEH-mini pass@8: 20.0%. Does not improve over base." />

      <bpmn:task id="Task_int_inductive" name="Inductive Reasoning" dai:stepType="context"
        dai:notes="Intervention: provide a set of examples that establish a pattern, requiring the model to induce and apply the pattern. Result on BBEH-mini pass@8: 20.4%. Does not improve over base." />

      <bpmn:task id="Task_int_constraint" name="Constraint Satisfaction" dai:stepType="context"
        dai:notes="Intervention: add extra constraints the model must track, even though they do not affect the final answer. Result on BBEH-mini pass@8: 19.6%. Does not improve over base." />

      <bpmn:task id="Task_int_compositional" name="Compositional Understanding" dai:stepType="context"
        dai:notes="Intervention: fuse an independent sub-problem into the main problem, requiring the model to separate and solve them independently. Result on BBEH-mini pass@8: 19.6%. Does not improve over base." />

      <bpmn:task id="Task_int_knowledge" name="Knowledge-Intensive Reasoning" dai:stepType="context"
        dai:notes="Intervention: add domain-specific terminology or context requiring specialised knowledge to parse, without changing the answer. Result on BBEH-mini pass@8: 19.8%. Does not improve over base." />

      <bpmn:task id="Task_int_dr" name="Interventions Do Not Improve High-Quality Data" dai:stepType="decision-record"
        dai:status="accepted"
        dai:context="8 synthetic data interventions were applied to the Micro-Top2 dataset and evaluated under compute-matched 250-step RL runs. Base (Micro-Top2) pass@8=22.8%. Best intervention (Going Against Prior) pass@8=22.6%. All others score 18.3%–21.3%."
        dai:decision="Synthetically generated interventions do not improve over the original high-quality data under a fixed training budget. Improving already high-quality data through synthetic augmentation is non-trivial. The base Micro-Top2 dataset is used as-is for the final SuperNova training set."
        dai:consequences="Synthetic data augmentation for RLVR general reasoning requires further research. The results suggest that the difficulty and diversity already present in the curated human-annotated tasks is sufficient and hard to improve cheaply." />

      <bpmn:endEvent id="End_stage3" name="Final SuperNova dataset (25K samples)" />

      <bpmn:sequenceFlow id="Flow_s3_1" sourceRef="Start_stage3" targetRef="Task_int_context" />
      <bpmn:sequenceFlow id="Flow_s3_2" sourceRef="Task_int_context" targetRef="Task_int_dr" />
      <bpmn:sequenceFlow id="Flow_s3_3" sourceRef="Task_int_dr" targetRef="End_stage3" />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 6 — TRAINING
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_training" name="Training">

      <bpmn:task id="Dep_qwen06" name="Qwen3-0.6B" dai:stepType="dependency"
        dai:package="Qwen3" dai:version="0.6B (Yang et al., 2025)" dai:dependencyType="runtime"
        dai:notes="Base model for all data curation experiments (250 RL steps, 500 prompts). Also trained as SuperNova-0.6B final model (5,000 RL steps, 10,000 prompts, lr=1e-6). BBEH-test pass@1=9.7%, pass@8=25.0%." />

      <bpmn:task id="Dep_qwen17" name="Qwen3-1.7B" dai:stepType="dependency"
        dai:package="Qwen3" dai:version="1.7B (Yang et al., 2025)" dai:dependencyType="runtime"
        dai:notes="Trained as SuperNova-1.7B final model (5,000 RL steps, 10,000 prompts, lr=4e-6). BBEH-test pass@1=11.7%, pass@8=26.7%." />

      <bpmn:task id="Dep_qwen4" name="Qwen3-4B" dai:stepType="dependency"
        dai:package="Qwen3" dai:version="4B (Yang et al., 2025)" dai:dependencyType="runtime"
        dai:notes="Trained as SuperNova-4B final model (5,000 RL steps, 10,000 prompts, lr=4e-6). BBEH-test pass@1=17.6%, pass@8=33.3%. Outperforms Qwen3-8B (24.2% pass@8) by 8.2pp on pass@8." />

      <bpmn:task id="Dep_trl" name="TRL / GRPO" dai:stepType="dependency"
        dai:package="TRL (HuggingFace)" dai:dependencyType="dev"
        dai:notes="GRPO implementation from TRL is used for all RL training. Hardware: 4×H100 GPUs. All data curation runs: 250 steps. Final SuperNova models: 5,000 steps (1 epoch over 10,000 prompts). Evaluation: 1×H100, batch size 8, temperature=0.7, max generation length 4096." />

      <bpmn:task id="Task_train_config" name="Training Configuration" dai:stepType="context"
        dai:notes="Data curation experiments: Qwen3-0.6B, 250 RL steps, 500 prompts, lr=1e-6, 8 generations per prompt, batch size 8, temperature 0.7, max generation length 4096. Final SuperNova models: 5,000 RL steps, 10,000 prompts, lr=1e-6 (0.6B) or lr=4e-6 (1.7B, 4B). Evaluation prompt: 'Think step by step, and when you are ready to provide the final answer, use the prefix The answer is: followed by the answer directly, with no formatting and no markup.'" />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 7 — EVALUATION
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_eval" name="Evaluation">

      <bpmn:task id="Test_bbeh_mini" name="BBEH-mini (Validation)" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Sample k responses from the model at temperature=0.7. Parse final answer using 'The answer is:' prefix. Compute pass@k across 23 BBEH sub-tasks on the 460-example BBEH-mini split."
        dai:expectedResult="pass@8 > 22.8% (Micro-Top2 baseline) for curation experiments; pass@8 > 31.7% for final SuperNova-4B."
        dai:notes="BBEH-mini is used as the validation benchmark during all 100+ data curation experiments. It consists of 460 examples spanning all 23 BBEH sub-tasks. pass@8 provides 2.5× greater discriminability than pass@1 (σ: 0.76 → 1.92), making it the primary curation metric." />

      <bpmn:task id="Test_bbeh_test" name="BBEH-test (Held-out)" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Evaluate SuperNova models on BBEH examples excluded from BBEH-mini. Compute pass@1 and pass@8."
        dai:expectedResult="SuperNova-4B pass@8 >= 33.3%."
        dai:notes="BBEH-test is the unseen held-out split of BBEH. SuperNova-4B achieves pass@1=17.6%, pass@8=33.3%, outperforming Qwen3-8B (pass@8=24.2%) by 9.1pp and General-Reasoner-4B (pass@8=32.9%) by 0.4pp." />

      <bpmn:task id="Test_bbh" name="BBH" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Evaluate on Big-Bench Hard (Suzgun et al., 2023). Compute pass@8."
        dai:expectedResult="Improvement over base Qwen3 model."
        dai:notes="OOD benchmark unseen during curation. SuperNova-0.6B: 81.5% (vs Qwen3-0.6B 52.4%, +29.1pp). SuperNova-1.7B: 79.7% (vs Qwen3-1.7B 80.3%, −0.6pp). SuperNova-4B: 89.3% (vs Qwen3-4B 84.4%, +4.9pp)." />

      <bpmn:task id="Test_zebralogic" name="Zebralogic" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Evaluate on Zebralogic constraint satisfaction puzzles (Lin et al., 2025). Compute pass@8."
        dai:expectedResult="Substantial improvement, especially for 4B model."
        dai:notes="OOD benchmark unseen during curation. Largest OOD gains. SuperNova-0.6B: 49.1% (vs Qwen3-0.6B 34.4%, +14.7pp). SuperNova-1.7B: 75.5% (vs Qwen3-1.7B 53.3%, +22.2pp). SuperNova-4B: 77.0% (vs Qwen3-4B 55.6%, +21.4pp). Demonstrates strong transfer to logical constraint satisfaction." />

      <bpmn:task id="Test_mmlu_pro" name="MMLU-Pro" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Evaluate on MMLU-Pro multi-task language understanding benchmark (Wang et al., 2024). Compute pass@8."
        dai:expectedResult="Modest improvement over base."
        dai:notes="OOD benchmark unseen during curation. SuperNova-0.6B: 56.2% (vs Qwen3-0.6B 55.3%, +0.9pp). SuperNova-1.7B: 61.5% (vs Qwen3-1.7B 64.3%, −2.8pp). SuperNova-4B: 76.0% (vs Qwen3-4B 71.2%, +4.8pp). Mixed results — 0.6B and 4B improve but 1.7B slightly regresses." />

      <bpmn:task id="Test_math500" name="MATH500" dai:stepType="test"
        dai:testType="acceptance"
        dai:testStatus="passing"
        dai:testSteps="Evaluate on MATH500 subset (Lightman et al., 2023). Compute pass@8."
        dai:expectedResult="Maintained or slightly improved — training on SuperNova should not degrade maths reasoning."
        dai:notes="OOD benchmark unseen during curation. SuperNova-0.6B: 71.4% (vs Qwen3-0.6B 71.9%, −0.5pp). SuperNova-1.7B: 84.0% (vs Qwen3-1.7B 73.2%, +10.8pp). SuperNova-4B: 77.9% (vs Qwen3-4B 74.1%, +3.8pp). Training on general reasoning data does not degrade mathematical reasoning." />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 8 — KEY RESULTS / KPIs
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_results" name="Key Results">

      <bpmn:task id="KPI_bbeh_06" name="SuperNova-0.6B BBEH-test" dai:stepType="kpi"
        dai:target="25.0" dai:unit="pass@8 % on BBEH-test"
        dai:formula="pass@8 improvement over Qwen3-0.6B baseline (15.2%)"
        dai:frequency="one-time" dai:owner="SuperNova-0.6B"
        dai:notes="SuperNova-0.6B: pass@1=9.7%, pass@8=25.0%. Baseline Qwen3-0.6B: pass@1=5.2%, pass@8=15.2%. Relative gain: +64% on pass@8. Also outperforms Qwen3.5-0.8B (pass@8=23.8%)." />

      <bpmn:task id="KPI_bbeh_17" name="SuperNova-1.7B BBEH-test" dai:stepType="kpi"
        dai:target="26.7" dai:unit="pass@8 % on BBEH-test"
        dai:formula="pass@8 improvement over Qwen3-1.7B baseline (17.7%)"
        dai:frequency="one-time" dai:owner="SuperNova-1.7B"
        dai:notes="SuperNova-1.7B: pass@1=11.7%, pass@8=26.7%. Baseline Qwen3-1.7B: pass@1=7.8%, pass@8=17.7%. Relative gain: +51% on pass@8. Outperforms Qwen3.5-2B (pass@8=25.8%) despite being smaller." />

      <bpmn:task id="KPI_bbeh_4" name="SuperNova-4B BBEH-test" dai:stepType="kpi"
        dai:target="33.3" dai:unit="pass@8 % on BBEH-test"
        dai:formula="pass@8 improvement over Qwen3-4B baseline (23.2%)"
        dai:frequency="one-time" dai:owner="SuperNova-4B"
        dai:notes="SuperNova-4B: pass@1=17.6%, pass@8=33.3%. Baseline Qwen3-4B: pass@1=13.6%, pass@8=23.2%. Relative gain: +43% on pass@8. Outperforms Qwen3-8B (pass@8=24.2%) by 9.1pp — a 2× larger model. Outperforms General-Reasoner-4B (pass@8=32.9%) by 0.4pp." />

      <bpmn:task id="KPI_bbeh_relative" name="BBEH Relative Improvement vs. BBEH Baselines" dai:stepType="kpi"
        dai:target="52.8" dai:unit="% relative improvement on BBEH across model sizes"
        dai:formula="max relative improvement on BBEH across 0.6B, 1.7B, 4B models"
        dai:frequency="one-time" dai:owner="SuperNova overall"
        dai:notes="Up to 52.8% relative improvement on BBEH is achieved across model sizes, demonstrating the effectiveness of principled data curation for RLVR. The improvement is consistent across all three model sizes." />

      <bpmn:task id="KPI_ood_avg" name="SuperNova-4B OOD Average" dai:stepType="kpi"
        dai:target="80.1" dai:unit="average pass@8 % across MMLU-Pro, BBH, Zebralogic, MATH500"
        dai:formula="(76.0 + 89.3 + 77.0 + 77.9) / 4"
        dai:frequency="one-time" dai:owner="SuperNova-4B"
        dai:notes="SuperNova-4B average across 4 OOD benchmarks: 80.1%. Qwen3-4B baseline: 71.3%. Relative gain: +12.3% on pass@8. SuperNova-1.7B achieves 75.2% average, exceeding Qwen3-4B (71.3%) despite being half the size." />

      <bpmn:task id="KPI_passk_scaling" name="Pass@k Scaling to k=128" dai:stepType="kpi"
        dai:target="128" dai:unit="k value at which SuperNova gains persist"
        dai:frequency="one-time" dai:owner="SuperNova-0.6B vs Qwen3-0.6B"
        dai:notes="SuperNova-0.6B maintains consistent gains over Qwen3-0.6B for all values of k up to 128 on BBEH-mini. Training on SuperNova expands the model's exploration space even at large sample sizes, enabling more diverse reasoning behaviours. pass@8 provides 2.5× greater discriminability than pass@1 (σ: 0.76 → 1.92)." />

      <bpmn:task id="KPI_cross_model" name="Cross-Model Generalization" dai:stepType="kpi"
        dai:target="15.8" dai:unit="pp gain on BBEH-mini for LLaMA3.2-3B-Instruct"
        dai:frequency="one-time" dai:owner="SuperNova data — LLaMA3.2-3B-Instruct"
        dai:notes="LLaMA3.2-3B-Instruct trained on SuperNova achieves +15.8pp gain on BBEH-mini over its baseline, demonstrating cross-model family generalization. Qwen3.5-2B also shows improvements, demonstrating transfer from earlier-generation (Qwen3) to newer-generation (Qwen3.5) models." />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         GROUP 9 — LIMITATIONS AND RISKS
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:subProcess id="Group_risks" name="Limitations and Risks">

      <bpmn:task id="Risk_benchmarks" name="Academic Benchmark Coverage" dai:stepType="risk"
        dai:probability="high" dai:impact="medium"
        dai:mitigation="Authors acknowledge this limitation. Future work should evaluate on real-world problem-solving tasks beyond BBEH, BBH, MMLU-Pro, Zebralogic, and MATH500."
        dai:owner="Ashima Suvarna et al."
        dai:notes="General reasoning is evaluated on a fixed set of academic benchmarks that may not fully capture real-world problem-solving ability. Strong BBEH scores do not necessarily imply strong performance on open-ended real-world tasks." />

      <bpmn:task id="Risk_compute" name="Limited Compute Budget" dai:stepType="risk"
        dai:probability="high" dai:impact="medium"
        dai:mitigation="Future work should explore whether SuperNova curation insights persist with unbounded compute and data scale. Current experiments limited to 4×H100 GPUs and 5,000 RL steps."
        dai:owner="Ashima Suvarna et al."
        dai:notes="All experiments are conducted under limited compute (4×H100 GPUs). The optimality of Micro-Top2 mixing and the failure of data interventions may be compute-regime-specific. Results at much larger training budgets are unknown." />

      <bpmn:task id="Risk_transfer" name="STEM Reasoning Degradation Risk" dai:stepType="risk"
        dai:probability="low" dai:impact="medium"
        dai:mitigation="MATH500 results show no degradation (SuperNova-0.6B: 71.4% vs 71.9% base; SuperNova-4B: 77.9% vs 74.1% base). Risk is empirically low but should be monitored for other formal reasoning benchmarks."
        dai:owner="Ashima Suvarna et al."
        dai:notes="Training on general reasoning data could in principle degrade formal STEM reasoning capabilities. Empirically, SuperNova models maintain competitive MATH500 performance, indicating the risk is low for the evaluated models and benchmarks." />

      <bpmn:task id="Risk_llm_grading" name="LLM Use in Research" dai:stepType="risk"
        dai:probability="medium" dai:impact="low"
        dai:mitigation="Authors disclose all LLM use. Reformatting accuracy manually verified on 100 samples (100% compliance). Prompts provided in appendix."
        dai:owner="Ashima Suvarna et al."
        dai:notes="ChatGPT and Claude were used in the research: GPT-5-mini for reformatting tasks and applying interventions; Claude-Opus-4.6 for candidate pool selection and task categorisation; Claude for LaTeX table formatting and figure code generation; ChatGPT and Claude for grammar and proofreading." />

    </bpmn:subProcess>

    <!-- ═══════════════════════════════════════════════════════════
         TOP-LEVEL SEQUENCE FLOWS
         ═══════════════════════════════════════════════════════════ -->
    <bpmn:startEvent id="Start_main" name="Research Motivation: RLVR stuck in STEM" />
    <bpmn:endEvent id="End_main" name="SuperNova: Strong General Reasoning at Scale" />

    <bpmn:sequenceFlow id="Flow_main_1" sourceRef="Start_main"      targetRef="Group_background" />
    <bpmn:sequenceFlow id="Flow_main_2" sourceRef="Group_background" targetRef="Group_rules" />
    <bpmn:sequenceFlow id="Flow_main_3" sourceRef="Group_rules"      targetRef="Group_stage1" />
    <bpmn:sequenceFlow id="Flow_main_4" sourceRef="Group_stage1"     targetRef="Group_stage2" />
    <bpmn:sequenceFlow id="Flow_main_5" sourceRef="Group_stage2"     targetRef="Group_stage3" />
    <bpmn:sequenceFlow id="Flow_main_6" sourceRef="Group_stage3"     targetRef="Group_training" />
    <bpmn:sequenceFlow id="Flow_main_7" sourceRef="Group_training"   targetRef="Group_eval" />
    <bpmn:sequenceFlow id="Flow_main_8" sourceRef="Group_eval"       targetRef="Group_results" />
    <bpmn:sequenceFlow id="Flow_main_9" sourceRef="Group_results"    targetRef="Group_risks" />
    <bpmn:sequenceFlow id="Flow_main_10" sourceRef="Group_risks"     targetRef="End_main" />

  </bpmn:process>

  <!-- ═══════════════════════════════════════════════════════════
       DIAGRAM INTERCHANGE (visual layout)
       ═══════════════════════════════════════════════════════════ -->
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_supernova">

      <!-- Start / End -->
      <bpmndi:BPMNShape id="Shape_Start_main" bpmnElement="Start_main">
        <dc:Bounds x="82" y="442" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_End_main" bpmnElement="End_main">
        <dc:Bounds x="4802" y="442" width="36" height="36" />
      </bpmndi:BPMNShape>

      <!-- Group: Background -->
      <bpmndi:BPMNShape id="Shape_Group_background" bpmnElement="Group_background" isExpanded="true">
        <dc:Bounds x="160" y="240" width="560" height="440" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_rlvr" bpmnElement="Task_rlvr">
        <dc:Bounds x="180" y="270" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_grpo" bpmnElement="Task_grpo">
        <dc:Bounds x="360" y="270" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_general_reasoning" bpmnElement="Task_general_reasoning">
        <dc:Bounds x="540" y="270" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_superni" bpmnElement="Task_superni">
        <dc:Bounds x="180" y="380" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_bbeh" bpmnElement="Task_bbeh">
        <dc:Bounds x="360" y="380" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_problem_setup" bpmnElement="Task_problem_setup">
        <dc:Bounds x="540" y="380" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Group: Rules -->
      <bpmndi:BPMNShape id="Shape_Group_rules" bpmnElement="Group_rules" isExpanded="true">
        <dc:Bounds x="760" y="240" width="440" height="440" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Rule_verifiability" bpmnElement="Rule_verifiability">
        <dc:Bounds x="780" y="270" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Rule_compute_matched" bpmnElement="Rule_compute_matched">
        <dc:Bounds x="960" y="270" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Rule_winrate_filter" bpmnElement="Rule_winrate_filter">
        <dc:Bounds x="780" y="380" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Rule_no_kl" bpmnElement="Rule_no_kl">
        <dc:Bounds x="960" y="380" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Group: Stage 1 -->
      <bpmndi:BPMNShape id="Shape_Group_stage1" bpmnElement="Group_stage1" isExpanded="true">
        <dc:Bounds x="1240" y="160" width="600" height="600" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Start_stage1" bpmnElement="Start_stage1">
        <dc:Bounds x="1262" y="442" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_candidate_pool" bpmnElement="Task_candidate_pool">
        <dc:Bounds x="1340" y="420" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_reformat" bpmnElement="Task_reformat">
        <dc:Bounds x="1340" y="540" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_winrate" bpmnElement="Task_winrate">
        <dc:Bounds x="1520" y="420" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_task_ranking" bpmnElement="Task_task_ranking">
        <dc:Bounds x="1520" y="540" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_similarity_null" bpmnElement="Task_similarity_null">
        <dc:Bounds x="1340" y="280" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_multihop_insight" bpmnElement="Task_multihop_insight">
        <dc:Bounds x="1520" y="280" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_selection_impact" bpmnElement="Task_selection_impact">
        <dc:Bounds x="1700" y="420" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_End_stage1" bpmnElement="End_stage1">
        <dc:Bounds x="1792" y="600" width="36" height="36" />
      </bpmndi:BPMNShape>

      <!-- Group: Stage 2 -->
      <bpmndi:BPMNShape id="Shape_Group_stage2" bpmnElement="Group_stage2" isExpanded="true">
        <dc:Bounds x="1880" y="200" width="520" height="520" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Start_stage2" bpmnElement="Start_stage2">
        <dc:Bounds x="1902" y="442" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_macro" bpmnElement="Task_macro">
        <dc:Bounds x="1980" y="340" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_micro" bpmnElement="Task_micro">
        <dc:Bounds x="1980" y="540" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Gateway_mixing" bpmnElement="Gateway_mixing">
        <dc:Bounds x="2185" y="435" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_mixing_dr" bpmnElement="Task_mixing_dr">
        <dc:Bounds x="2270" y="420" width="120" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_End_stage2" bpmnElement="End_stage2">
        <dc:Bounds x="2362" y="600" width="36" height="36" />
      </bpmndi:BPMNShape>

      <!-- Group: Stage 3 -->
      <bpmndi:BPMNShape id="Shape_Group_stage3" bpmnElement="Group_stage3" isExpanded="true">
        <dc:Bounds x="2440" y="160" width="600" height="620" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Start_stage3" bpmnElement="Start_stage3">
        <dc:Bounds x="2462" y="442" width="36" height="36" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_context" bpmnElement="Task_int_context">
        <dc:Bounds x="2540" y="420" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_manyhop" bpmnElement="Task_int_manyhop">
        <dc:Bounds x="2540" y="200" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_prior" bpmnElement="Task_int_prior">
        <dc:Bounds x="2540" y="280" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_fly" bpmnElement="Task_int_fly">
        <dc:Bounds x="2540" y="360" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_longctx" bpmnElement="Task_int_longctx">
        <dc:Bounds x="2680" y="200" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_errors" bpmnElement="Task_int_errors">
        <dc:Bounds x="2680" y="280" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_inductive" bpmnElement="Task_int_inductive">
        <dc:Bounds x="2680" y="360" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_constraint" bpmnElement="Task_int_constraint">
        <dc:Bounds x="2820" y="200" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_compositional" bpmnElement="Task_int_compositional">
        <dc:Bounds x="2820" y="280" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_knowledge" bpmnElement="Task_int_knowledge">
        <dc:Bounds x="2820" y="360" width="120" height="60" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_int_dr" bpmnElement="Task_int_dr">
        <dc:Bounds x="2720" y="520" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_End_stage3" bpmnElement="End_stage3">
        <dc:Bounds x="2992" y="600" width="36" height="36" />
      </bpmndi:BPMNShape>

      <!-- Group: Training -->
      <bpmndi:BPMNShape id="Shape_Group_training" bpmnElement="Group_training" isExpanded="true">
        <dc:Bounds x="3080" y="200" width="480" height="480" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Dep_qwen06" bpmnElement="Dep_qwen06">
        <dc:Bounds x="3100" y="240" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Dep_qwen17" bpmnElement="Dep_qwen17">
        <dc:Bounds x="3280" y="240" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Dep_qwen4" bpmnElement="Dep_qwen4">
        <dc:Bounds x="3460" y="240" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Dep_trl" bpmnElement="Dep_trl">
        <dc:Bounds x="3100" y="360" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Task_train_config" bpmnElement="Task_train_config">
        <dc:Bounds x="3280" y="360" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Group: Evaluation -->
      <bpmndi:BPMNShape id="Shape_Group_eval" bpmnElement="Group_eval" isExpanded="true">
        <dc:Bounds x="3600" y="160" width="560" height="560" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_bbeh_mini" bpmnElement="Test_bbeh_mini">
        <dc:Bounds x="3620" y="200" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_bbeh_test" bpmnElement="Test_bbeh_test">
        <dc:Bounds x="3800" y="200" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_bbh" bpmnElement="Test_bbh">
        <dc:Bounds x="3980" y="200" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_zebralogic" bpmnElement="Test_zebralogic">
        <dc:Bounds x="3620" y="320" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_mmlu_pro" bpmnElement="Test_mmlu_pro">
        <dc:Bounds x="3800" y="320" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Test_math500" bpmnElement="Test_math500">
        <dc:Bounds x="3980" y="320" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Group: Results -->
      <bpmndi:BPMNShape id="Shape_Group_results" bpmnElement="Group_results" isExpanded="true">
        <dc:Bounds x="4200" y="160" width="480" height="560" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_bbeh_06" bpmnElement="KPI_bbeh_06">
        <dc:Bounds x="4220" y="200" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_bbeh_17" bpmnElement="KPI_bbeh_17">
        <dc:Bounds x="4400" y="200" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_bbeh_4" bpmnElement="KPI_bbeh_4">
        <dc:Bounds x="4220" y="320" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_bbeh_relative" bpmnElement="KPI_bbeh_relative">
        <dc:Bounds x="4400" y="320" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_ood_avg" bpmnElement="KPI_ood_avg">
        <dc:Bounds x="4220" y="440" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_passk_scaling" bpmnElement="KPI_passk_scaling">
        <dc:Bounds x="4400" y="440" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_KPI_cross_model" bpmnElement="KPI_cross_model">
        <dc:Bounds x="4310" y="560" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Group: Risks -->
      <bpmndi:BPMNShape id="Shape_Group_risks" bpmnElement="Group_risks" isExpanded="true">
        <dc:Bounds x="4200" y="760" width="480" height="360" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Risk_benchmarks" bpmnElement="Risk_benchmarks">
        <dc:Bounds x="4220" y="800" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Risk_compute" bpmnElement="Risk_compute">
        <dc:Bounds x="4400" y="800" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Risk_transfer" bpmnElement="Risk_transfer">
        <dc:Bounds x="4220" y="920" width="160" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Shape_Risk_llm_grading" bpmnElement="Risk_llm_grading">
        <dc:Bounds x="4400" y="920" width="160" height="80" />
      </bpmndi:BPMNShape>

      <!-- Top-level edges -->
      <bpmndi:BPMNEdge id="Edge_main_1" bpmnElement="Flow_main_1">
        <di:waypoint x="118" y="460" /><di:waypoint x="160" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_2" bpmnElement="Flow_main_2">
        <di:waypoint x="720" y="460" /><di:waypoint x="760" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_3" bpmnElement="Flow_main_3">
        <di:waypoint x="1200" y="460" /><di:waypoint x="1240" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_4" bpmnElement="Flow_main_4">
        <di:waypoint x="1840" y="460" /><di:waypoint x="1880" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_5" bpmnElement="Flow_main_5">
        <di:waypoint x="2400" y="460" /><di:waypoint x="2440" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_6" bpmnElement="Flow_main_6">
        <di:waypoint x="3040" y="460" /><di:waypoint x="3080" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_7" bpmnElement="Flow_main_7">
        <di:waypoint x="3560" y="460" /><di:waypoint x="3600" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_8" bpmnElement="Flow_main_8">
        <di:waypoint x="4160" y="460" /><di:waypoint x="4200" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_9" bpmnElement="Flow_main_9">
        <di:waypoint x="4680" y="800" /><di:waypoint x="4680" y="820" /><di:waypoint x="4200" y="820" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_main_10" bpmnElement="Flow_main_10">
        <di:waypoint x="4680" y="1120" /><di:waypoint x="4820" y="1120" /><di:waypoint x="4820" y="460" />
      </bpmndi:BPMNEdge>

      <!-- Stage 1 internal edges -->
      <bpmndi:BPMNEdge id="Edge_s1_1" bpmnElement="Flow_s1_1">
        <di:waypoint x="1298" y="460" /><di:waypoint x="1340" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s1_2" bpmnElement="Flow_s1_2">
        <di:waypoint x="1420" y="500" /><di:waypoint x="1420" y="540" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s1_3" bpmnElement="Flow_s1_3">
        <di:waypoint x="1500" y="460" /><di:waypoint x="1520" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s1_4" bpmnElement="Flow_s1_4">
        <di:waypoint x="1600" y="500" /><di:waypoint x="1600" y="540" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s1_5" bpmnElement="Flow_s1_5">
        <di:waypoint x="1680" y="460" /><di:waypoint x="1700" y="460" />
      </bpmndi:BPMNEdge>

      <!-- Stage 2 internal edges -->
      <bpmndi:BPMNEdge id="Edge_s2_1" bpmnElement="Flow_s2_1">
        <di:waypoint x="1938" y="460" /><di:waypoint x="1980" y="380" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s2_2" bpmnElement="Flow_s2_2">
        <di:waypoint x="1938" y="460" /><di:waypoint x="1980" y="580" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s2_3" bpmnElement="Flow_s2_3">
        <di:waypoint x="2140" y="380" /><di:waypoint x="2210" y="435" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s2_4" bpmnElement="Flow_s2_4">
        <di:waypoint x="2140" y="580" /><di:waypoint x="2210" y="485" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s2_5" bpmnElement="Flow_s2_5">
        <di:waypoint x="2235" y="460" /><di:waypoint x="2270" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s2_6" bpmnElement="Flow_s2_6">
        <di:waypoint x="2390" y="460" /><di:waypoint x="2380" y="618" />
      </bpmndi:BPMNEdge>

      <!-- Stage 3 internal edges -->
      <bpmndi:BPMNEdge id="Edge_s3_1" bpmnElement="Flow_s3_1">
        <di:waypoint x="2498" y="460" /><di:waypoint x="2540" y="460" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s3_2" bpmnElement="Flow_s3_2">
        <di:waypoint x="2700" y="500" /><di:waypoint x="2720" y="520" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Edge_s3_3" bpmnElement="Flow_s3_3">
        <di:waypoint x="2880" y="560" /><di:waypoint x="2992" y="618" />
      </bpmndi:BPMNEdge>

    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>

</bpmn:definitions>
