Tarik Moussa b800582b9a
Some checks failed
gates / quality (push) Has been cancelled
docs: README als Architektur- und Betriebskonzept
Ersetzt den 'archiviert/nie gebaut'-Aufmacher durch eine Darstellung des
laufenden Systems: Modellprofile, Optimierungen, ADR-Uebersicht sowie
Betriebs- und Sicherheitskonzept.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-31 00:34:24 +02:00
2026-06-03 07:24:08 +02:00
2026-06-03 07:24:08 +02:00

Jetson AI / Ollama — Design & Betriebskonzept

Selbst gehostetes LLM-System auf einem Jetson Orin Nano Super (8 GB): Der Ollama-Daemon serviert mehrere Modellprofile über eine OpenAI-kompatible API, ein schlanker Exporter-Sidecar exponiert /metrics für Prometheus. Der Modellwechsel passiert nativ über den Modellnamen — bewusst ohne eigenen Swapper und ohne API-Gateway.

Dieses Repo enthält Architektur, Betriebsvertrag und Designentscheidungen des Systems. Die Ansible-Implementierung lebt im Schwester-Repo ansible-eulernest (Rollen jetson_bootstrap, ollama, ollama_exporter) — die Box läuft dort produktiv auf JetPack 7.2.


Modellprofile

Vier Profile, aber nie zwei gleichzeitig resident — das ist der Kern des 8-GB-Konzepts (~7,4 GB nutzbar):

Profil Basismodell num_ctx Zweck
qwen-light qwen2.5:7b 16384 Daily Driver, Chat
gemma gemma3:4b 16384 Kreativ, multimodal
qwen-heavy deepseek-r1:7b 8192 Harte Reasoning-Fälle
coder qwen2.5-coder:7b 16384 CI-Bot, PR-Review

OLLAMA_MAX_LOADED_MODELS=1 hält genau ein Modell im Speicher; weitere Profile laden on-demand. Dadurch sind vier Profile auf 8 GB praktisch kostenlos.

Optimierung

  • q8_0-KV-Cache + Flash Attention — deutlich geringerer Speicherbedarf pro Kontextfenster.
  • num_ctx je Profil explizit gesetzt, da Ollama den Kontext sonst still kürzt.
  • OLLAMA_KEEP_ALIVE=30s — bewusster Trade-off: kurze Ladezeit beim Profilwechsel gegen dauerhaft freien Speicher (Single-User, keine fremden Sessions werden unterbrochen).

Architekturentscheidungen (ADRs)

Jede wesentliche Entscheidung ist als ADR mit Kontext, Entscheidung und Konsequenz dokumentiert — inklusive der bewusst nicht gewählten Alternativen:

ADR Entscheidung
0001 Architekturentscheidungen als ADRs festhalten
0002 Ollama-natives Modell-Management statt eigenem Swapper/Gateway
0003 Registry-Pull statt manueller GGUF-Verwaltung

Betrieb, Daten & Sicherheit

  • Observability: Exporter-Sidecar liefert /metrics; Aggregation in Prometheus/Grafana läuft bewusst off-box.
  • Modell-Daten: DVC ist Source of Truth, Ollamas Blob-Store nur Laufzeit-Cache.
  • Zugriff: Ollama bringt keine eigene Authentifizierung mit → Bind nur ans LAN, vorgelagerter nginx-Reverse-Proxy mit TLS und OAuth, Firewall auf den Proxy.
  • Secrets: ausschließlich über Ansible-Vault, nie im Klartext im Repo.

Die vollständige Schnittstelle zwischen den Komponenten steht in CONVENTIONS.md.


Arbeitsmodell

Das Repo wurde aus einem agent-swarm-Template gebootstrapt: ein Leader/Worker- Modell für KI-gestützte Entwicklung, dessen Stand vollständig auf Disk lebt und damit ohne Vorkontext kalt lesbar ist. Automatische Gates (scripts/gate-*.sh) prüfen Datei-Ownership, Repo-Hygiene und Doku-Drift bei jedem Schritt.

Wo Datei
Stand & nächster Schritt STATE.md
Plan / Board (DAG) ROADMAP.md
Gemeinsamer Vertrag CONVENTIONS.md
Kalt-Review-Einstieg REVIEW.md
Methodik docs/methodology.md
Description
Single-User AI auf Jetson Orin Nano (Ollama, 3 Profile, q8_0-KV+FlashAttn, DVC). Gebootstrapt aus agent-swarm-repo.
Readme 88 KiB
Languages
Shell 100%