From fcef07aa16fe676f218e1a097f389275b217b688 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Mon, 27 Apr 2026 16:00:11 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20add=20Pass=200b=20cost=20benchmark=20?= =?UTF-8?q?=E2=80=94=20v3=20vs=20v4=20vs=20backfill=20vs=20Mac=20Mini?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documents all cost optimization attempts: - v4 Haiku direct: $33/10k (RECOMMENDED) - v3 + Haiku backfill: $31/10k (not worth the complexity) - v3 + Mac Mini qwen3: $25/10k + 77h wait (too slow, weaker quality) - Token analysis, quality comparison, lessons learned Co-Authored-By: Claude Opus 4.6 (1M context) --- docs-src/development/pass0b-cost-benchmark.md | 150 ++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 151 insertions(+) create mode 100644 docs-src/development/pass0b-cost-benchmark.md diff --git a/docs-src/development/pass0b-cost-benchmark.md b/docs-src/development/pass0b-cost-benchmark.md new file mode 100644 index 0000000..b59cc95 --- /dev/null +++ b/docs-src/development/pass0b-cost-benchmark.md @@ -0,0 +1,150 @@ +# Pass 0b Kosten-Benchmark (Stand 2026-04-27) + +Dokumentation aller Versuche die Pass-0b-Generierungskosten zu optimieren. Ergebnis: **v4-Prompt direkt mit Haiku Batch API ist die kosteneffizienteste Strategie.** + +--- + +## Zusammenfassung + +| Strategie | Kosten/10k | Qualitaet | Empfehlung | +|-----------|-----------|-----------|------------| +| **v4 direkt (Haiku Batch)** | **~$33** | Alle 18 Felder | **EMPFOHLEN** | +| v3 + Haiku Backfill | ~$31.60 | Gleich gut, 2 Schritte | Nicht empfohlen | +| v3 + Mac Mini Backfill | ~$25 + 77h Wartezeit | Schwaecher bei applicability | Nicht empfohlen | +| v4 direkt (Sonnet) | ~$95 (geschaetzt) | Gleich gut | Zu teuer | + +--- + +## Getestete Strategien + +### 1. Haiku Batch API mit v3-Prompt (14 Felder) + +**Felder:** title, assertion, objective, requirements, test_procedure, evidence, pass_criteria, fail_criteria, severity, category, check_type (5 Typen), merge_key, dependency_hints, lifecycle_phase_order + +| Batch | Obligations | Controls | Kosten | Kosten/10k | +|-------|-----------|----------|--------|-----------| +| Batch 1 | 10k | 9.885 | $23.00 | $23.00 | +| Batch 3 | 10k | 9.793 | $25.24 | $25.24 | +| Batch 4 | 20k | 19.546 | $49.77 | $24.89 | + +**Durchschnitt: ~$24.40/10k** + +Token-Verbrauch (Stichprobe): +- Avg Input: ~2.800 Tokens/Request +- Avg Output: ~4.000 Tokens/Request +- 5 Obligations pro Request + +### 2. Haiku Batch API mit v4-Prompt (18 Felder) + +**Zusaetzliche Felder:** applicability, scanner_hint, manual_review_required_if, evidence_type, provides_context + +| Batch | Obligations | Controls | Kosten | Kosten/10k | +|-------|-----------|----------|--------|-----------| +| Batch 2 | 10k | 9.855 | $33.00 | $33.00 | +| Batch 5 | 20k | 19.469 | $67.50 | $33.75 | +| Batch 6 | 20k | 19.529 | $66.42 | $33.21 | +| Batch 7 | 20k | 19.569 | $65.96 | $32.98 | + +**Durchschnitt: ~$33.24/10k** + +Token-Verbrauch (Stichprobe 20 Requests): +- Avg Input: 3.128 Tokens/Request +- Avg Output: 6.165 Tokens/Request +- 5 Obligations pro Request + +### 3. v3 generieren + Haiku Backfill fuer 6 Extra-Felder + +**Idee:** Nur Basisfelder via Sonnet/Haiku generieren, Extra-Felder nachtraeglich per guenstigem Haiku-Batch ergaenzen. + +| Schritt | Controls | Kosten | Kosten/10k | +|---------|----------|--------|-----------| +| v3 Generation (10k) | 9.885 | $24.40 | $24.40 | +| Haiku Backfill (28.5k) | 28.570 | $18.91 | $6.62 | +| **Gesamt** | — | — | **$31.02** | + +**Ergebnis:** Nur ~$2 billiger als v4 direkt, aber 2 separate Schritte noetig. **Nicht empfohlen.** + +### 4. Mac Mini (qwen3:30b-a3b) fuer Backfill + +**Idee:** Extra-Felder kostenlos lokal per qwen3 generieren statt Haiku. + +| Metrik | Wert | +|--------|------| +| Modell | qwen3:30b-a3b (MoE, 3.3B aktiv) | +| Batch Size | 3 (bei 10 → JSON-Parse-Fehler) | +| Avg pro Control | 13.9 Sekunden | +| Hochrechnung 20k | **77 Stunden (3+ Tage)** | +| Erfolgsrate | 100% (bei batch_size=3) | +| Kosten | $0 | + +**Qualitaetsvergleich qwen3 vs. Haiku:** + +| Feld | Haiku | qwen3 | Bewertung | +|------|-------|-------|-----------| +| check_type | Korrekt | Korrekt | Gleich | +| evidence_type | Korrekt | Korrekt | Gleich | +| applicability | Erkennt Bedingungen (z.B. `context.processes_personal_data`) | Meistens `{}` (universell) | **Haiku besser** | +| scanner_hint | Deutsch, praezise | Englisch, brauchbar | Haiku besser | +| provides_context | Sinnvolle Variablen | Aehnlich, andere Konvention | Gleich | + +**Ergebnis:** Kostenlos aber 3 Tage Laufzeit und schwaecher bei applicability. **Nicht empfohlen.** + +--- + +## Kostenmodell (Haiku 4.5 Batch API) + +| Metrik | Preis | +|--------|-------| +| Input Tokens | $0.40/1M (Batch, 50% off) | +| Output Tokens | $2.00/1M (Batch, 50% off) | +| Cache Read | $0.04/1M (Batch, 50% off) | +| Cache Write | $0.50/1M (Batch, 50% off) | + +**Hauptkostentreiber: Output-Tokens** (5x teurer als Input). Jedes zusaetzliche Feld im Prompt erhoeht die Output-Laenge. + +| Prompt-Version | Avg Output/Request | Output-Kosten/Request | +|---------------|-------------------|----------------------| +| v3 (14 Felder) | ~4.000 Tokens | $0.008 | +| v4 (18 Felder) | ~6.165 Tokens | $0.012 | + +--- + +## Warum v4 direkt die beste Strategie ist + +1. **Kostendifferenz minimal:** v4 ($33/10k) vs. v3+Backfill ($31/10k) = nur $2 Unterschied +2. **Ein Schritt statt zwei:** Kein separater Backfill-Lauf noetig +3. **Konsistente Daten:** Alle Felder kommen aus dem gleichen LLM-Call, keine Inkonsistenzen +4. **Kein Backfill-Overhead:** Keine zusaetzliche DB-Aktualisierung, kein Monitoring +5. **Qualitaet:** LLM generiert applicability im Kontext der vollen Obligation (besser als nachtraeglich) + +--- + +## Gesamtkosten Pass 0b (180k Obligations) + +| Posten | Kosten | +|--------|--------| +| Batch 1 (v3, Test) | $23.00 | +| Batch 2 (v4, Test) | $33.00 | +| Backfill 1 (9.6k) | ~$1.50 | +| Batch 3 (v3) | $25.24 | +| Batch 4 (v3, 20k) | $49.77 | +| Backfill 2 (28.5k) | $18.91 | +| Batch 5 (v4, 20k) | $67.50 | +| Batch 6 (v4, 20k) | $66.42 | +| Batch 7 (v4, 20k) | $65.96 | +| Batch 8+ (v4, ~70k) | ~$231 (geschaetzt) | +| **Gesamt** | **~$582** | + +**Urspruengliche Schaetzung:** $264 (basierend auf Sonnet-Batch mit weniger Feldern) +**Tatsaechlich:** ~$582 (Haiku mit 18 Feldern, doppelt so viele Output-Tokens) + +--- + +## Lessons Learned + +1. **Output-Tokens dominieren die Kosten** — Nicht Input, nicht Modellwahl +2. **Haiku ist bereits das guenstigste Modell** — Sonnet waere ~3x teurer +3. **Batch API (50% Rabatt) ist Pflicht** — Ohne Batch waere es $1.164 +4. **Backfill lohnt sich nicht** — Der Overhead (DB-Updates, Monitoring, Fehlerbehandlung) ueberwiegt die minimale Ersparnis +5. **Mac Mini (qwen3) ist zu langsam** — 77h fuer 20k Controls, und schwaechere Qualitaet bei applicability +6. **v4-Prompt ist der Sweet Spot** — Alle Felder in einem Call, konsistente Qualitaet, akzeptable Kosten diff --git a/mkdocs.yml b/mkdocs.yml index fefc19f..bbeee1d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -123,3 +123,4 @@ nav: - QA Control Quality: development/qa-control-quality.md - RAG Pipeline Lessons Learned: development/rag-pipeline-lessons-learned.md - RAG Pipeline Benchmark: development/rag-pipeline-benchmark.md + - Pass 0b Kosten-Benchmark: development/pass0b-cost-benchmark.md