Jerry
docs: update DESIGN.md with final hackathon architecture and results
540b7d9
|
Raw
History Blame Contribute Delete
5.01 kB
# Design Notes: Logistics Shipment RL Environment
## Why This Problem?
India's logistics sector processes over **$200B** of freight annually. During major disruptions (port strikes, monsoon floods, highway accidents), human dispatchers must manually triage hundreds of concurrent shipments in minutes. This environment simulates that exact crisis β€” testing whether an LLM can act as autonomous operational infrastructure.
## Key Architectural Decisions
### 1. Turn-Based with Deterministic Background Updates
The environment uses a **turn-based loop** rather than continuous steps. Within each turn, the agent can issue a sequence of JSON actions.
Crucially, **background traffic (route congestion) only updates at the end of a turn**. This was a major design correction: originally, background traffic updated after *every* action, which caused non-deterministic behavior where the agent's world model (from `get_network_status`) would become invalid mid-turn. By decoupling the updates to the end-of-turn, the environment ensures stable planning for the agent.
### 2. Independent Reward Signals with Anti-Hacking Safeguards
Rather than a single scalar reward, the training pipeline utilizes **three independent reward functions**:
1. **Structure:** Evaluates valid JSON, correct start/end actions, and penalizes spam/rambling.
2. **Routing:** Evaluates whether delayed shipments were moved to clear routes.
3. **Communication:** Evaluates whether apologies and ETAs were sent to delayed customers.
**Anti-Hacking Penalties:** To prevent exploitation, strict negative rewards were enforced:
- `-0.5` for duplicate `end_turn` calls
- `-0.3` for spamming `get_network_status`
- `-0.6` for choosing congested alternate routes
- `-0.8` for omitting a valid route ID entirely
- `-0.5` for duplicate or spam ETA messages
### 3. Four-Phase Curriculum Learning (GRPO)
The agent was trained using **Group Relative Policy Optimization (GRPO)** via TRL and Unsloth. The training followed a strict 4-phase curriculum:
1. **Phase 1 (Easy):** Baseline routing on `TASK-EASY` (1 disruption).
2. **Phase 2 (Medium):** Triage prioritization on `TASK-MEDIUM` (3 simultaneous disruptions) with a lowered learning rate to prevent catastrophic forgetting.
3. **Phase 3 (Hardening):** Interleaved Easy/Medium scenarios with high rollout diversity (`num_generations=6`) to reinforce learned logic.
4. **Phase 4 (Correction):** Applied the strictest anti-hacking penalties (e.g., `-0.8` for empty routes) to patch loopholes discovered in earlier phases.
### 4. NLP-Scored Communication
The `communicate_eta` action is graded by a lightweight heuristic that checks for:
- Empathetic language ("apologize", "sorry", "regret")
- Specific ETA commitment ("arrive by 6pm", "reschedule to Monday")
- Cause of delay ("port congestion", "carrier strike", "weather")
- Message length (longer = more effort)
This tests a different capability than rerouting math: can the agent produce professional, customer-facing communication under pressure?
### 5. Three Difficulty Tiers for Benchmarking
| Tier | Challenge | Design Intent |
|------|-----------|---------------|
| EASY | 2 shipments, 1 disruption, 3 turns | Validates basic rerouting ability |
| MEDIUM | 4 shipments, 3 simultaneous disruptions, 5 turns | Tests triage prioritization under pressure |
| HARD | 7 shipments, 4 critical failures, 7 turns | Stress-tests maximum crisis management capacity |
An agent that scores well on EASY but poorly on HARD reveals brittleness under complexity β€” a real finding, not a grader artifact.
## Final Results Anatomy
The final architecture achieved a **+327% performance improvement** (0.18 baseline β†’ 0.7683 trained average).
Key behaviors learned by the final model:
1. **World Modeling:** The agent learned to always call `get_network_status` as its first action to construct a mental model of route congestion.
2. **SLA Protection:** The agent learned to check route load before blindly rerouting, avoiding the `-0.6` penalty for congested routes.
3. **Empathy Under Pressure:** The agent learned to reliably dispatch well-formed apologies to the correct disrupted customers.
## Known Limitations
1. **Route graph is static**: Routes don't dynamically close or change congestion mid-episode. A future version could add stochastic disruption evolution.
2. **Single-agent only**: The environment is not designed for multi-agent scenarios where separate dispatchers handle different regions.
3. **No partial observability**: The agent always sees the full network state after `get_network_status`. A more challenging variant would restrict observations to a regional viewport.
## Future Extensions
- `TASK-KOLKATA` β€” Monsoon flood response at KOPT
- `TASK-VIZAG` β€” Cyclone-induced port closure on the eastern coast
- `TASK-MUNDRA` β€” Container ship grounding at India's largest private port
- Dynamic route congestion that evolves each turn
- Multi-modal transport (sea + rail + road intermodal chains)