Plan ↔ reality abgleich nach tatsächlicher Implementierung in ansible-eulernest: - CONVENTIONS.md: 4 Profile (+ coder), Registry-Pull statt GGUF/DVC, SoT-Pointer auf ansible-eulernest, JP7.2 Source-Build-Note - STATE.md: W2–W4 done (via ansible-eulernest), W1/W5/W6 dropped, N1–N3 (GPU-metric, benchmarks, smoke-tests) als nächste Schritte - ROADMAP.md: Abgeschlossene Items referenzieren ansible-eulernest-Rollen; neue Items N1–N3 für verbleibende Arbeit - manifests/requirements.md: R-03–R-06 done, R-02/R-07/R-08 drift - docs/adr/0003: Registry-Pull > GGUF; ansible-eulernest als Impl-SoT - sessions/2026-06-14-reconciliation.md: Session-Log Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.7 KiB
0003 — Registry-Pull statt lokaler GGUFs; ansible-eulernest als Implementierungs-SoT
- Status: accepted
- Datum: 2026-06-14
- Supersedes (partiell): ADR-0002 — nur die DVC=SoT-Klausel; die Kernentscheidung (nativer Ollama-Daemon, kein eigener Swapper) bleibt vollständig gültig.
Kontext
ADR-0002 sah vor: lokale GGUFs unter /opt/jetson-ai/models/, DVC als Modell-SoT,
build-models.sh als reproduzierbare Build-Kette. Bei der tatsächlichen Inbetriebnahme
des Jetson Orin Nano Super (JetPack 7.2, 2026-06) traten drei Faktoren auf:
-
JP7.2 / sm_87-Problem: Der offizielle Ollama-Installer liefert CUDA-Bibliotheken ohne sm_87-Support → Ollama würde CPU-only laufen. Lösung: Source-Build (
roles/ollama/tasks/build_jp72.yml) mitcmake -DCMAKE_CUDA_ARCHITECTURES=87. Dieser Aufwand hatte Priorität; DVC-Infrastruktur wurde verschoben. -
Iterative Einrichtung ohne DVC-Puffer: Die Implementierung lief direkt in
ansible-eulernest; ein separates GGUF-Download + DVC-Tracking hätte mehrere GB Datenübertragung auf dem Jetson bedeutet, ohne klaren Nutzen für den Einzelbetrieb. -
Ollama-Registry als ausreichende Reproduzierbarkeit: Für Single-User-Betrieb (nicht Produktion, keine reproduzierbare Forschung) genügt
base: qwen2.5:7bingroup_vars/jetson/vars.yml. Ansible stellt sicher, dass dieselbe Konfiguration jederzeit neu eingespielt werden kann.
Entscheidung
Registry-Pull als Standard. ollama_profiles[].base in
ansible-eulernest/group_vars/jetson/vars.yml ist die SoT für Modell-Identität.
Kein GGUF-Download, kein DVC-Tracking in dieser Phase.
ansible-eulernest ist der Implementierungs-SoT. Dieses Repo (jetson-ai-ollama)
bleibt Planungs- und Methodologie-Referenz; die live laufende Konfiguration wird
ausschließlich über Ansible verwaltet.
Vier Profile statt drei. Das vierte Profil coder (qwen2.5-coder:7b, temp 0.3)
wurde nach Fertigstellung der ci-ai-Gitea-Integration ergänzt — war zum Planungszeitpunkt
noch nicht bekannt.
Konsequenzen
- Vorteil: Kein GGUF-Download-Aufwand; Ansible-Idempotenz deckt Reproduzierbarkeit ab; schnelleres iteratives Deployment.
- Risiko: Modell-Versionen sind unpinned (Ollama Registry kann sich ändern). Mitigation: Digest-Check im Pre-Demo-Checklist; N2 (Benchmark-Script) kann Regressionen erkennen.
- GGUF-Pfad nicht permanent geschlossen:
/opt/jetson-ai/models/bleibt reserviert. Falls Versionspinning kritisch wird (z. B. für reproduzierbare Forschung mit codex-py), kann der GGUF+DVC-Weg nachgerüstet werden. Ein neues ADR wäre dann nötig. - N3 (Smoke-Tests) deckt R-09/R-10 ab — Verifikation bleibt als nächster Schritt offen (ROADMAP N3).