Files
gemma4-research/.claude/handoffs/2026-06-16-230331-gemma4-12b-research-smoketest.md
2026-06-16 23:05:02 -04:00

134 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Handoff: gemma4:12b Research + Smoke Test (and steel141 Ollama 0.20.4→0.30.8 upgrade)
## Session Metadata
- Created: 2026-06-16 23:03:31
- Project: /home/claude/bin/gemma4-research
- Branch: master
- Session duration: ~1 hour
### Recent Commits (for context)
- 2336fb4 docs: add gemma4:12b variant + smoke-test results
- f11aa31 docs: session handoff — Gemma 4 tool-calling May-2026 update + bot audit
- 438a96f docs: May 2026 tool-calling update + agentic retrieval landscape
- 0f82cd7 docs: session handoff — GPU bakeoff (3090 Ti vs Strix Halo)
- 91842f3 docs: scrub PII/IPs from gpu-bakeoff
## Handoff Chain
- **Continues from**: [2026-05-25-103131-gemma4-tool-calling-may-update.md](./2026-05-25-103131-gemma4-tool-calling-may-update.md)
- Previous title: Gemma 4 Tool-Calling May-2026 Update + Bot Audit
- **Supersedes**: None
## Current State Summary
Researched and smoke-tested the new `gemma4:12b` model (released 2026-06-03). The model required Ollama ≥ 0.30.5, which neither homelab daemon met (steel141 0.20.4, pve197 0.20.2) — both were hard-gated with HTTP 412. Seth chose to upgrade steel141's Ollama. Upgraded 0.20.4 → 0.30.8 via the official install script, verified service/override/models all intact, pulled `gemma4:12b`, and ran a 4-capability smoke test (text/vision/tools pass; audio listed but untested). Findings committed to `CORPUS_ollama_variants.md` and pushed. Work is **complete** — only optional follow-ups remain.
## Codebase Understanding
### Architecture Overview
This is a documentation/research corpus repo (no application code). Findings about Gemma 4 models live in `CORPUS_*.md` files indexed by `README.md`. Smoke tests hit the local Ollama HTTP API at `http://localhost:11434` (steel141, GPU-backed: GTX 1660 + RTX 3090 Ti).
### Critical Files
| File | Purpose | Relevance |
|------|---------|-----------|
| `CORPUS_ollama_variants.md` | Model variant table + capabilities | **Edited this session** — added 12b row + 2 callout notes |
| `docs/reference/mort-bakeoff-2026-04-18.md` | Pinned 0.20.4 thinking-in-context finding | **Now stale** — pin invalidated by the upgrade |
| `README.md` | Corpus index | Unchanged; points to all CORPUS docs |
| `.backup/` | Safety backups | Contains old ollama binary + override + ps state from this session |
### Key Patterns Discovered
- Ollama registry existence check without downloading: `curl -sI https://registry.ollama.ai/v2/library/<model>/manifests/<tag>` → HTTP 200 means pullable. `tags/list` 404s for library repos (use per-tag manifest HEAD instead).
- Throughput intuition: dense 12B (70 tok/s) is slower per-token than the 26B **MoE** (~134 tok/s) because MoE activates only ~3.8B params/token. Smaller ≠ faster when comparing dense vs MoE.
## Work Completed
### Tasks Finished
- [x] Verified `gemma4:12b` is a real release (2026-06-03, Apache-2.0) via registry manifest + web search
- [x] Gathered specs: 11.9B dense, 256K ctx, Q4_K_M, encoder-free multimodal, 52.4M CLIP projector, requires Ollama 0.30.5
- [x] Asked Seth how to unblock (he chose: upgrade steel141 Ollama)
- [x] Backed up old binary/override/loaded-model state to `.backup/`
- [x] Upgraded steel141 Ollama 0.20.4 → 0.30.8 (official install script); verified override + 28 models intact
- [x] Pulled `gemma4:12b` (7.6 GB, 80s)
- [x] Smoke test: text reasoning ✅, vision ✅, tools ✅ — all 70 tok/s, 100% GPU on 3090 Ti
- [x] Updated `CORPUS_ollama_variants.md`, committed (2336fb4), pushed to Gitea
### Files Modified
| File | Changes | Rationale |
|------|---------|-----------|
| `CORPUS_ollama_variants.md` | Added 12b row, throughput note, 0.20.4-pin-invalidation warning, audio-unverified note | Persist research + smoke-test results |
### Decisions Made
| Decision | Options Considered | Rationale |
|----------|-------------------|-----------|
| Upgrade steel141 Ollama to pull 12b | (a) upgrade steel141, (b) isolated llama.cpp+GGUF, (c) upgrade pve197 | Seth chose (a) — it's the real production path; isolated build was more work and wouldn't exercise the Ollama path he'd deploy on |
| Upgrade via official install script | manual binary swap | Script preserves systemd drop-in override + `~/.ollama`; cleanest |
## Pending Work
## Immediate Next Steps
1. **(Optional) Re-verify the mort-bakeoff finding on 0.30.8.** The "thinking does NOT accumulate in context on Ollama **0.20.4**" claim (`docs/reference/mort-bakeoff-2026-04-18.md`) was version-pinned and is now unverified. Harness at `scripts/mort-bakeoff/`.
2. **(Optional) Test 12b audio through the Ollama API.** `ollama show` lists audio capability, but it was NOT tested. Historically Ollama rejected audio for E-series despite advertising it. Send an audio payload and confirm.
3. **(Optional) Pull `gemma4:12b-mtp`** and benchmark the Multi-Token-Prediction speculative-decode speedup (Google claims 1.42.2×).
### Blockers/Open Questions
- [ ] Does the 26b/31b "think:false silent-stop" behavior (`docs/reference/bakeoff-2026-04-18.md`) change on 0.30.8? Untested.
- [ ] pve197 still on 0.20.2 — kept as a 0.20.x reference point. Decide whether to upgrade it too (mort-bot/pve services hit it).
### Deferred Items
- Did not re-run any bakeoffs (scope) — just flagged the pin invalidation in the corpus.
## Context for Resuming Agent
## Important Context
The headline event this session is NOT just the 12b model — it's that **steel141's Ollama jumped 0.20.4 → 0.30.8**, a 10-minor-version leap. Several pinned findings in `docs/reference/*.md` were measured on 0.20.4 and may no longer hold. If anyone relies on those docs, they need re-verification on 0.30.8. The corpus now carries an explicit ⚠️ warning about this in `CORPUS_ollama_variants.md`.
### Assumptions Made
- The systemd drop-in override (`OLLAMA_HOST`, `OLLAMA_KEEP_ALIVE=30m`) survives the install script — **verified true** via `systemctl show ollama -p Environment`.
- The model symlink `/usr/share/ollama/.ollama/models → /mnt/ai_data/live-models` survives — verified (install script only touches `/usr/local/bin` + base unit).
### Potential Gotchas
- `python` is not on PATH on steel141 — use `python3`.
- Registry `tags/list` endpoint returns 404 for `library/*` repos; use per-tag manifest HEAD to check existence.
- gemma4:26b was loaded in VRAM at upgrade time; the restart dropped it (expected). KEEP_ALIVE re-applies on next use.
## Environment State
### Tools/Services Used
- steel141 Ollama daemon, now **v0.30.8** (was 0.20.4), `http://localhost:11434` (also 0.0.0.0 via override)
- 3090 Ti for inference (12b runs 100% GPU, 8.4 GB VRAM)
- `hf` CLI available at `~/.local/bin/hf` (unused this session — was a fallback option)
### Active Processes
- `ollama serve` running under systemd (`systemctl is-active ollama` = active)
- No background jobs left from this session (the failed early pull was on the OLD binary; superseded)
### Environment Variables
- `OLLAMA_HOST`, `OLLAMA_KEEP_ALIVE` (set in `/etc/systemd/system/ollama.service.d/override.conf`; backed up to `.backup/ollama-override-*.conf`)
## Related Resources
- `CORPUS_ollama_variants.md` (updated) — the 12b row + warnings
- `docs/reference/mort-bakeoff-2026-04-18.md` — the now-stale 0.20.4 pin
- `.backup/ollama-bin-0.20.4-1781646458` — old binary if rollback ever needed
- Smoke-test image: `.backup/vision-smoketest.png`
- Web refs: blog.google/.../introducing-gemma-4-12b, developers.googleblog.com/gemma-4-12b-the-developer-guide, apxml.com/models/gemma-4-12b
---
**Security Reminder**: Before finalizing, run `validate_handoff.py` to check for accidental secret exposure.