RohitChandramouli6618's picture
Update model references: Llama 3.3 70B → Llama 3.1 8B Instant, runtime 19.8min → ~10min
1e308ec
Raw
History Blame Contribute Delete
3.54 kB
# config/tasks.yaml
# Task configuration reference for Cascade Containment.
# These values are the source of truth used in server/constants.py TASK_CONFIG.
# If you change a value here, update constants.py to match.
tasks:
easy:
num_districts: 2
max_steps: 10
resource_pool: 10
data_lag_days: 0
seed_infections: [0.06, 0.50]
description: >
Single outbreak. D1 starts in the danger zone, D0 is clean.
Agents that ignore infection data and always target D0 score ~43%
with a 60% hospital breach rate — the task requires basic observation.
medium:
num_districts: 4
max_steps: 15
resource_pool: 8
data_lag_days: 0
seed_infections: [0.42, 0.10, 0.38, 0.10]
description: >
Two simultaneous outbreaks in D0 and D2. D1 and D3 start low but
grow into the danger zone within 4-6 steps via spillover.
8 resources across 4 districts over 15 steps requires real triage —
the agent cannot cover all districts at once.
hard:
num_districts: 6
max_steps: 15
resource_pool: 7
data_lag_days: 3
seed_infections: [0.20, 0.14, 0.23, 0.11, 0.26, 0.17]
description: >
Six growing outbreaks with a 3-day reporting lag. The agent sees
infection rates from 3 days ago; true infection is already higher.
Growth hints provide a noisy estimate of current trajectory.
7 resources for 6 districts under structural uncertainty is the
hardest triage scenario in the benchmark.
# Spread model parameters
spread:
rate_min: 0.03 # minimum spread rate per district per day
rate_max: 0.08 # maximum spread rate per district per day
natural_recovery: 0.01 # passive case resolution per day (no intervention)
treatment_reduction: 0.05 # allocate reduces existing infection by this
allocate_reduction: 0.10 # allocate suppresses future spread rate this step
restrict_reduction: 0.05 # restrict reduces spread rate while active
spillover_rate: 0.01 # infection bleed to adjacent districts each step
growth_hint_noise: 0.03 # noise added to spread rate in agent observation
# Threshold values
thresholds:
infection_danger: 0.40 # above this a district is in the danger zone
infection_safe: 0.20 # below this a district is considered contained
hospital_breach: 0.10 # at or below this triggers episode failure
# Reward terms
rewards:
infection_penalty: -0.50 # per district above infection_danger, weighted by density
hospital_breach: -1.00 # per district at or below hospital_breach threshold
early_containment: +0.50 # per district below infection_safe (decays over time)
unnecessary_restriction: -0.20 # restricting a district already below infection_safe
correct_prioritisation: +0.30 # allocating to the highest-infected district
# Grader weights (must sum to 1.0)
grader:
containment: 0.30
hospital: 0.45
efficiency: 0.15
speed: 0.10
# Baseline benchmark results (update after each full evaluation run)
benchmark:
rollouts:
easy: 2
medium: 3
hard: 3
greedy_d0:
easy: {score: 0.428, breach_rate: 0.60}
medium: {score: 0.396, breach_rate: 1.00}
hard: {score: 0.353, breach_rate: 1.00}
llm_grpo:
easy: {score: 0.885, model: llama-3.1-8b-instant}
medium: {score: 0.780, model: llama-3.1-8b-instant}
hard: {score: 0.611, model: llama-3.1-8b-instant}
average: 0.794
runtime_seconds: 1134