plane-mode-scholar / docs /field-notes.md
PMS Sync
Deploy 000b308 (flattened for HF Spaces)
4577459
|
Raw
History Blame Contribute Delete
4.23 kB
# Field Notes — Plane Mode Scholar
**Build Small Hackathon · Backyard AI · Nemotron Quest · June 2026**
## The real problem
A graduate student I know studies on long flights and in libraries with unreliable Wi-Fi. Generic PDF chatbots forget everything between sessions. What they actually need is a study *session* with memory: what they struggled with last time, what exam is coming up, and which explanation style works for them.
Plane Mode Scholar is built for that person — and now runs as an **autonomous agent** so they don't have to click through five tabs before learning starts.
## Why Nemotron 3 Nano 30B-A3B
We switched from Qwen3.5-9B to **`nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8`** — NVIDIA's latest open model under the 32B hackathon cap (released December 2025).
| Property | Why it matters for study coaching |
|----------|-----------------------------------|
| MoE (~3B active / 30B total) | Fits ZeroGPU while reasoning like a larger model |
| Agentic training blend | Native tool-planning fits our monitor→plan→act loop |
| Configurable reasoning | `PMS_ENABLE_THINKING=false` for fast explanations; enable for hard proofs |
| NVIDIA Nemotron Quest | Explicit hackathon sponsor alignment |
Fallback: `nvidia/OpenReasoning-Nemotron-7B` when VRAM is tight.
## SwarmGrid UI + gr.Server
Judges asked for custom UI beyond default Gradio. We adopted the **SwarmGrid** dashboard pattern ([GJB99/SwarmGrid](https://github.com/GJB99/SwarmGrid)):
- **Left:** flight deck — one **FLY** button, home stats, recall banner
- **Center:** streaming coach chat (optional input)
- **Right:** live agent reasoning chain (PLAN → RETRIEVE → EXPLAIN → QUIZ)
Backend is `gradio.Server` — FastAPI + Gradio queue + ZeroGPU, with our own HTML/JS frontend. This targets **Off-Brand** and the Off-Brand Award.
## Agentic flow (Best Agent)
The old UI required: pick pack → set goals → start session → type question → open quiz tab.
**Now:** tap **FLY** once. `StudyAgent` executes:
1. `ensure_pack` — demo materials if empty
2. `start_session` — recall due reviews + weak topics
3. `plan_next` — SRS due > weak mastery > quiz
4. `explain_topic` — grounded stream with [1] citations
5. `run_quiz` — auto-generated check
6. `surface_memory` — show what persisted
Users can still chat to steer, but they don't have to.
## What surprised me
1. **Memory bloat is the real enemy, not forgetting.** Typed schemas + promotion thresholds + decay beat bigger context windows.
2. **MoE changes the UX calculus.** Nemotron Nano's active params are small enough for interactive streaming, but planning quality jumped vs 9B dense.
3. **Making the agent visible wins demos.** SwarmGrid's reasoning chain translated directly — judges see PLAN and RETRIEVE, not a black box.
4. **llama.cpp completes the story.** Same Nemotron weights via GGUF (`scripts/start_llamacpp.sh`) for true offline flight mode — **Llama Champion** + **Off the Grid**.
## Architecture
```
[FLY button / WebSocket]
[ StudyAgent — plan_next → tool dispatch ]
├─► MemoryRetriever (6 memories max)
├─► VectorStore chunks (5 max)
├─► Nemotron 3 Nano (transformers | llama.cpp)
└─► MemoryWriter (promote misconceptions, SRS)
[ gr.Server SSE + /ws/agent_telemetry ]
[ SwarmGrid-style dashboard (index.html) ]
```
## Badges claimed
See [badges.md](badges.md) for full evidence table.
- Off the Grid, Off-Brand, Llama Champion, Sharing is Caring, Field Notes
- Best Agent + NVIDIA Nemotron Quest (awards)
- **Not claiming:** Well-Tuned (no fine-tune in scope)
## Models
| Role | Model | Params |
|------|-------|--------|
| Chat / agent | `nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-FP8` | 30B MoE (3B active) |
| Offline GGUF | `unsloth/Nemotron-3-Nano-30B-A3B-GGUF` | via llama.cpp |
| Fallback | `nvidia/OpenReasoning-Nemotron-7B` | 7B |
| Embeddings | `all-MiniLM-L6-v2` | 22M |
## What I'd do next
- Publish `plane-mode-scholar-traces` dataset on Hugging Face Hub
- Voice input for hands-free plane study
- FSRS fine-tune for review intervals (Well-Tuned badge)