Artikelserie: Dies ist Teil 2 der Bloom-Framework-Serie. Teil 1 führte in die Konzepte ein.

Einleitung

Dieser Artikel beschreibt die Installation von Anthropics Bloom Framework und führt durch das erste funktionierende Beispiel. Am Ende dieses Tutorials läuft Bloom auf dem eigenen System und hat einen ersten Test erfolgreich durchgeführt.

In diesem Teil:

  • Installation von Bloom und allen Dependencies
  • Konfiguration der API-Keys
  • Erstes funktionierendes Beispiel
  • Interpretation der Ergebnisse

⚠️ Wichtiger Hinweis:
Bloom befindet sich noch in aktiver Entwicklung. Das Framework kann Bugs enthalten, insbesondere bei der Verwendung verschiedener Modelle und Konfigurationen. Bei Problemen lohnt sich ein Blick in die GitHub Issues.


Voraussetzungen

Erforderlich:

  • Python 3.11
  • Git (für Repository-Clone)
  • pip (Python-Paketmanager)

Optional:

  • Node.js 18+ (für Transcript Viewer)

Betriebssysteme:

  • Linux (Ubuntu, Debian, Fedora)
  • macOS (10.15+)
  • Windows (10/11)

Installation

Schritt 1: Python-Version prüfen

python --version
# Sollte ausgeben: Python 3.11.x

# Falls nicht installiert:
# Ubuntu/Debian: sudo apt install python3.11
# macOS: brew install python@3.11
# Windows: Download von python.org

Schritt 2: Repository klonen

# Repository von GitHub klonen:
git clone https://github.com/safety-research/bloom.git

# In das Verzeichnis wechseln:
cd bloom

Verzeichnis-Struktur:

Linux/Mac (Terminal):

ls -la

Windows CMD:

dir

Windows PowerShell:

Get-ChildItem

Erwartete Struktur:

So oder so ähnlich sollte der Inhalt des Verzeichnisses aussehen (kann variieren).

bloom/
├── bloom.py           # Haupt-Script
├── seed.yaml          # Standard-Konfiguration
├── requirements.txt   # Python-Dependencies
├── globals.py         # Globale Konfiguration
├── utils.py           # Hilfsfunktionen
├── behaviors/         # Verhaltens-Definitionen
├── prompts/           # System-Prompts
├── schemas/           # JSON-Schemas
└── results/           # Test-Ergebnisse (erstellt bei Ausführung)

Schritt 3: Dependencies installieren

# Virtuelle Umgebung erstellen (empfohlen):
python -m venv venv

# Virtuelle Umgebung aktivieren:
# Linux/macOS:
source venv/bin/activate

# Windows (Git Bash):
source venv/Scripts/activate

# Windows (CMD):
venv\Scripts\activate.bat

# Windows (PowerShell):
venv\Scripts\Activate.ps1

# Dependencies installieren:
pip install -r requirements.txt

Installation verifizieren:

python bloom.py --help

Erwartete Ausgabe:

BLOOM Rollout Pipeline

Usage:
    python bloom.py [config_file] [--debug]
    
    config_file: Path to configuration file (default: seed.yaml)
    --debug: Enable debug mode to show detailed pipeline progress

Schritt 4: API-Keys konfigurieren

Bloom benötigt API-Keys für die verwendeten KI-Modelle:

  • Anthropic (Claude Sonnet 4, Claude Opus 4) – empfohlen
  • OpenAI (GPT-4o, o1, o3)

Falls Sie noch keine API-Keys haben: Siehe Anhang: API-Keys erhalten

API-Keys in .env eintragen:

  1. .env.example zu .env kopieren:
cp .env.example .env  # Linux/Mac
copy .env.example .env  # Windows
  1. .env Datei öffnen und API-Key(s) eintragen:
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
# Oder/Und:
OPENAI_API_KEY=sk-proj-your-key-here
  1. Speichern

Wichtig: Keine Anführungszeichen um den Key!

Sicherheitshinweis: Die .env-Datei ist bereits in .gitignore enthalten und wird nicht in Git committed. Niemals API-Keys öffentlich teilen!

Schritt 5: Transcript Viewer installieren (optional)

Der Bloom Transcript Viewer ermöglicht die komfortable Ansicht der Test-Ergebnisse.

# Global installieren:
npm install -g @isha-gpt/bloom-viewer

# Installation prüfen:
npx @isha-gpt/bloom-viewer --help

Hinweis für Windows-Nutzer: Der Viewer kann unter Windows Pfad-Probleme haben. Als Alternative kann der Code des Viewers geklont und direkt ausgeführt werden. Eine Anleitung findet man hier im Anhang. Eine weitere Alternative ist es, die JSON-Dateien direkt mit einem Editor zu öffnen.


Bloom richtig aufrufen

Die korrekte CLI-Verwendung ist kritisch für erfolgreiche Tests.

✅ Richtig: Dateipfad angeben

# Bloom mit seed.yaml (Standard-Konfiguration):
python bloom.py
# oder explizit:
python bloom.py seed.yaml

# Bloom mit eigener Konfiguration:
python bloom.py my_test.yaml

# Mit Debug-Modus:
python bloom.py seed.yaml --debug

Hinweis: Ohne Angabe einer Datei verwendet Bloom automatisch seed.yaml.


Erstes Beispiel: Test auf Delusion-Sycophancy

Als erstes Beispiel wird getestet, ob ein KI-Modell Delusion-Sycophancy zeigt – also ob es falsche oder wahnhafte Überzeugungen des Nutzers bestätigt und verstärkt, statt diese zu korrigieren.

Konfigurationsdateien in Bloom

Bloom verwendet YAML-Dateien für die Testkonfiguration:

Standard-Konfiguration: seed.yaml

  • Wird mit Bloom mitgeliefert
  • Enthält eine vollständige Beispielkonfiguration
  • Kann direkt bearbeitet werden: python bloom.py (verwendet automatisch seed.yaml)

Eigene Konfigurationsdateien:

  • Man kann eigene YAML-Dateien mit spezifischen Tests erstellen
  • Verwendung: python bloom.py meine_config.yaml
  • Vorteil: Mehrere verschiedene Testkonfigurationen parallel pflegen

Verfügbare Verhaltensweisen:
Alle testbaren Verhaltensweisen sind in behaviors/behaviors.json definiert. Dort findet man:

  • delusion-sycophancy – Bestätigt falsche Überzeugungen
  • self-preferential-bias – Bevorzugt sich selbst als Modell
  • flattery – Schmeichelt dem Nutzer übermäßig
  • defer-to-users – Stimmt Nutzern zu, auch wenn sie falsch liegen
  • political-bias – Zeigt politische Voreingenommenheit
  • und viele weitere…

Für dieses Tutorial werden zwei vorkonfigurierte Beispieldateien bereitgestellt.

Warum dieses Beispiel?

  • Einfach zu verstehen: Klares, nachvollziehbares Problem
  • Schnell zu testen: Wenige Gesprächsrunden, kurze Dialoge
  • Gut dokumentiert: Beispiel-Konfiguration bereits in Bloom enthalten
  • Klare Bewertung: Binäres Ergebnis (Delusion-Sycophancy gezeigt: ja/nein)

Beispiel-Konfiguration verwenden

Für diesen Test werden speziell vorkonfigurierte YAML-Dateien verwendet (statt der mitgelieferten seed.yaml):

Download der Konfigurationsdateien:

Diese Dateien im bloom-Verzeichnis ablegen und dann ausführen:

Für Anthropic/Claude:

python bloom.py test_delusion_sycophancy_claude.yaml --debug

Für OpenAI/GPT:

python bloom.py test_delusion_sycophancy_openai.yaml --debug

Alternative: Die mitgelieferte seed.yaml kann direkt bearbeitet und verwendet werden:

python bloom.py  # verwendet automatisch seed.yaml
# oder explizit:
python bloom.py seed.yaml --debug

Die bereitgestellten Konfigurationsdateien sind für schnelle erste Tests optimiert (5 Szenarien, 4 Gesprächsrunden).

Wichtigste Parameter verstehen

Die Konfigurationsdateien enthalten folgende zentrale Parameter:

behavior.name

  • Definiert das zu testende Verhalten
  • Beispiel: "delusion-sycophancy"
  • Muss in behaviors/behaviors.json definiert sein
  • Liste aller verfügbaren Behaviors: Siehe behaviors/behaviors.json

ideation.total_evals

  • Anzahl der generierten Test-Szenarien
  • Beispiel: 5 (schnell) oder 20 (gründlicher)
  • Mehr Tests = länger + teurer, aber aussagekräftiger

rollout.target

  • Das zu testende Modell
  • Beispiel: "claude-sonnet-4" oder "gpt-4o"
  • Dies ist das Modell, dessen Verhalten wir prüfen

rollout.max_turns

  • Maximale Länge der Testgespräche
  • Beispiel: 4 (kurz) oder 6 (länger)
  • Mehr Turns = realistische Gespräche, aber teurer

Test ausführen

Standard-Ausführung

# Mit einer der vorkonfigurierten Dateien:
python bloom.py test_delusion_sycophancy_claude.yaml

# Oder mit seed.yaml (Standard):
python bloom.py

Mit Debug-Modus (empfohlen für erste Tests)

python bloom.py test_delusion_sycophancy_claude.yaml --debug

Was im Debug-Modus angezeigt wird:

  • Fortschritt jeder Pipeline-Phase
  • Token-Verbrauch pro API-Call
  • Detaillierte Logs
  • Fehler und Warnungen

Was während der Ausführung passiert

Bloom durchläuft 4 Phasen:

  1. Understanding – Analyse des zu testenden Verhaltens
  2. Ideation – Generierung von Test-Szenarien
  3. Rollout – Durchführung der Tests mit dem Zielmodell
  4. Judgment – Bewertung der Ergebnisse

Typische Laufzeit:

  • 5 Szenarien, 4 Turns: ca. 2-3 Minuten
  • 20 Szenarien, 6 Turns: ca. 10-15 Minuten

Kosten (ungefähr):

  • 5 Szenarien: $0.50 – $2.00
  • 20 Szenarien: $2.00 – $8.00

Ergebnisse verstehen

Ergebnis-Dateien finden

Nach erfolgreicher Ausführung befinden sich die Ergebnisse in:

results/transcripts/delusion-sycophancy/
├── understanding.json    # Phase 1 Ergebnis
├── ideation.json         # Phase 2 Ergebnis  
├── transcript_*.json     # Phase 3 Ergebnisse (ein File pro Szenario)
└── judgment.json         # Phase 4 Ergebnis (Finale Bewertung)

Ergebnisse mit Transcript Viewer ansehen

Viewer starten:

# Im bloom-Verzeichnis:
npx @isha-gpt/bloom-viewer results/transcripts/delusion-sycophancy

Browser öffnet sich automatisch mit:

  • Übersicht aller Test-Szenarien
  • Interaktive Anzeige der Gespräche
  • Bewertungen und Scores
Ergebnis des ersten Durchlaufs

Wichtigste Metriken

Behavior Presence Score (1-10)

  • Niedrig (1-3): Verhalten kaum vorhanden ✅
  • Mittel (4-6): Verhalten teilweise vorhanden ⚠️
  • Hoch (7-10): Verhalten stark vorhanden ❌

Elicitation Rate

  • Prozentsatz der Tests, die das Verhalten zeigten
  • Beispiel: 60% = 3 von 5 Tests zeigten Delusion-Sycophancy

Beispiel-Interpretation

{
  "behavior_presence_score": 7.2,
  "elicitation_rate": 0.6,
  "total_evaluations": 5
}

Bedeutung:

  • Das Modell zeigt in 60% der Tests Delusion-Sycophancy
  • Die Intensität ist hoch (7.2/10)
  • Dies deutet auf ein problematisches Verhalten hin

Häufige Probleme und Lösungen

API-Key Fehler

Problem: AuthenticationError: Invalid API key

Lösung:

  1. Überprüfen Sie .env Datei:
    • Keine Anführungszeichen um den Key
    • Keine Leerzeichen vor/nach dem Key
    • Richtiger Key-Name (ANTHROPIC_API_KEY oder OPENAI_API_KEY)
  2. Key in der API-Console verifizieren
  3. Neuen Key erstellen falls nötig

Python-Version nicht korrekt

Problem: SyntaxError oder ModuleNotFoundError

Lösung:

# Python-Version prüfen:
python --version

# Falls Version < 3.11:
# Richtige Version mit vollständigem Pfad verwenden:
python3.11 bloom.py

Fehlende Dependencies

Problem: ModuleNotFoundError: No module named 'xyz'

Lösung:

# Sicherstellen, dass venv aktiviert ist:
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

# Dependencies neu installieren:
pip install -r requirements.txt

Results-Verzeichnis nicht gefunden

Problem: results/behavior_name/ existiert nicht

Häufige Ursache: Pipeline vor Abschluss abgebrochen

Lösung:

# Alte incomplete Runs löschen:
rm -rf results/transcripts/delusion-sycophancy/

# Neu starten:
python bloom.py test_delusion_sycophancy_claude.yaml

Fehlerhafte Token-Konfiguration

Problem: Pipeline bricht ab oder liefert unvollständige Ergebnisse

Häufige Ursache: max_tokens ist für das verwendete Modell falsch konfiguriert

⚠️ Wichtig: Der Debug-Modus zeigt diese Fehlerquelle nicht immer eindeutig an!

Symptome:

  • Abgebrochene Responses ohne klare Fehlermeldung
  • Leere oder unvollständige Outputs
  • Pipeline stoppt unerwartet in einer Phase
  • Keine aussagekräftigen Logs im Debug-Modus

Lösung:

Token-Limits sind modellspezifisch. Bloom begrenzt max_tokens automatisch auf das Maximum des Modells, aber falsche Werte können trotzdem Probleme verursachen.

Empfohlene Werte für gängige Modelle:

Claude (claude-sonnet-4, claude-opus-4.5):

understanding:
  max_tokens: 8000
ideation:
  max_tokens: 16000
rollout:
  max_tokens: 8000
judgment:
  max_tokens: 16000

OpenAI (gpt-4o, gpt-5):

understanding:
  max_tokens: 8000
ideation:
  max_tokens: 16000
rollout:
  max_tokens: 8000
judgment:
  max_tokens: 8000

Debugging-Strategie:

  1. Reduzieren Sie max_tokens schrittweise
  2. Führen Sie die Phasen einzeln aus (siehe „Erweiterte Fehlersuche“)
  3. Prüfen Sie die globals.py für Modell-Definitionen
  4. Testen Sie mit einem anderen Modell

Best Practices für erste Tests

1. Klein anfangen

Die mitgelieferten Konfigurationsdateien sind bereits für schnelle erste Tests optimiert:

  • total_evals: 5 – schnell und günstig
  • max_turns: 4 – kurze Gespräche
  • max_concurrent: 8 – gute Performance

2. Debug-Modus nutzen

# Zeigt Token-Verbrauch und detaillierte Logs:
python bloom.py test_delusion_sycophancy_claude.yaml --debug

3. Kosten überwachen

# Nach jedem Test:
# → API Dashboard prüfen: console.anthropic.com oder platform.openai.com

4. Ergebnisse dokumentieren

# Erstellen eines Test-Logs:
mkdir -p logs
python bloom.py test_delusion_sycophancy_claude.yaml --debug > logs/test_$(date +%Y%m%d_%H%M%S).log 2>&1

5. Konfigurationen anpassen

Option 1: seed.yaml direkt bearbeiten

# Standard-Konfiguration bearbeiten:
# seed.yaml öffnen und Parameter anpassen
python bloom.py  # verwendet seed.yaml

Option 2: Eigene Konfigurationsdatei erstellen

# Beispieldatei als Vorlage kopieren:
cp test_delusion_sycophancy_claude.yaml my_custom_test.yaml
# Dann my_custom_test.yaml nach Bedarf anpassen
python bloom.py my_custom_test.yaml

Option 3: seed.yaml als Vorlage

# seed.yaml kopieren und anpassen:
cp seed.yaml my_test.yaml
# my_test.yaml bearbeiten
python bloom.py my_test.yaml

Erweiterte Fehlersuche: Phasen einzeln ausführen

Wenn die vollständige Pipeline Probleme verursacht, können die 4 Phasen einzeln ausgeführt werden. Dies hilft bei der Fehlersuche, da man genau identifizieren kann, in welcher Phase ein Problem auftritt.

Die 4 Phasen einzeln starten

Bloom bietet Scripts für jede Phase im scripts/ Verzeichnis:

# Phase 1: Understanding
python scripts/step1_understanding.py --config your_config.yaml

# Phase 2: Ideation  
python scripts/step2_ideation.py --config your_config.yaml

# Phase 3: Rollout
python scripts/step3_rollout.py --config your_config.yaml

# Phase 4: Judgment
python scripts/step4_judgment.py --config your_config.yaml

Wichtig: Jede Phase benötigt die Ausgaben der vorherigen Phase im results/ Verzeichnis.

Typischer Fehlersuche-Workflow

1. Understanding Phase testen:

python scripts/step1_understanding.py --config test_delusion_sycophancy_claude.yaml
# Prüfen: results/transcripts/delusion-sycophancy/understanding.json

2. Ideation Phase testen:

python scripts/step2_ideation.py --config test_delusion_sycophancy_claude.yaml
# Prüfen: results/transcripts/delusion-sycophancy/ideation.json

3. Rollout Phase testen:

python scripts/step3_rollout.py --config test_delusion_sycophancy_claude.yaml
# Prüfen: results/transcripts/delusion-sycophancy/transcript_*.json

4. Judgment Phase testen:

python scripts/step4_judgment.py --config test_delusion_sycophancy_claude.yaml
# Prüfen: results/transcripts/delusion-sycophancy/judgment.json

Vorteile der phasenweisen Ausführung

  • Präzisere Fehleridentifikation: Genau sehen, wo der Fehler auftritt
  • Schnelleres Debugging: Nur die problematische Phase wiederholen
  • Token-Probleme isolieren: Leichter erkennen, welches Modell Probleme macht
  • Zwischenergebnisse prüfen: Outputs jeder Phase inspizieren
  • Kosten sparen: Nicht die ganze Pipeline neu starten

Beispiel: Token-Problem isolieren

# Wenn judgment fehlschlägt:
python scripts/step4_judgment.py --config my_config.yaml --debug

# Fehlermeldung gibt Hinweis auf Token-Limit
# → max_tokens in judgment-Sektion der YAML anpassen
# → Nur judgment neu ausführen, nicht die ganze Pipeline

Nächste Schritte

Geschafft! 🎉 Bloom läuft und der erste Test wurde erfolgreich durchgeführt.

Schnelle Verbesserungen

Die Konfigurationsdateien können einfach angepasst werden:

Mehr Tests durchführen:

  • In der YAML-Datei total_evals: 20 ändern (statt 5)

Längere Gespräche:

  • In der YAML-Datei max_turns: 6 ändern (statt 4)

Andere Verhaltensweisen testen:

  • behavior.name: "self-preferential-bias" (Bevorzugt sich selbst)
  • behavior.name: "flattery" (Schmeichelt übermäßig)
  • behavior.name: "defer-to-users" (Stimmt Nutzern zu)
  • Vollständige Liste in behaviors/behaviors.json

Verschiedene Modelle vergleichen:

  • rollout.target: "gpt-4o" ändern (für OpenAI)
  • rollout.target: "claude-opus-4" ändern (für leistungsfähigeres Modell)

Hilfreiche Ressourcen

Offizielle Dokumentation:

Support:


Zusammenfassung

Was in diesem Tutorial erreicht wurde:

  • ✅ Bloom erfolgreich installiert
  • ✅ API-Keys konfiguriert
  • ✅ Erste erfolgreiche Evaluierung durchgeführt (Test auf Delusion-Sycophancy)
  • ✅ Ergebnisse verstanden und interpretiert
  • ✅ Häufige Probleme kennengelernt und gelöst

Wichtigste Erkenntnisse:

  1. Bloom nutzt 4 Phasen (Understanding → Ideation → Rollout → Judgment)
  2. Konfiguration erfolgt über YAML-Dateien (Standard: seed.yaml)
  3. Eigene YAML-Dateien ermöglichen verschiedene Testkonfigurationen
  4. Korrekte CLI-Verwendung: python bloom.py [dateiname.yaml] (OHNE --config!)
  5. Behavior Presence Score 1-10: niedriger = besser
  6. Elicitation Rate: Anteil problematischer Tests

Fragen oder Probleme? Kommentare sind willkommen!


Anhang: API-Keys erhalten

Anthropic API-Key

Schritte:

  1. Account erstellen auf console.anthropic.com
  2. Zu „API Keys“ navigieren
  3. „Create Key“ klicken
  4. Key kopieren (beginnt mit sk-ant-api03-...)
  5. Credits hinzufügen

Der Key beginnt mit sk-ant-api03- und kann dann in der .env Datei eingetragen werden.

OpenAI API-Key

Schritte:

  1. Account erstellen auf platform.openai.com
  2. Zu „API Keys“ navigieren
  3. „Create new secret key“ klicken
  4. Key kopieren (beginnt mit sk-proj-... oder sk-...)
  5. Credits hinzufügen

Der Key beginnt mit sk-proj- oder sk- und kann dann in der .env Datei eingetragen werden.

Bloom Viewer Alternative Installation

https://github.com/isha-gpt/bloom-viewer

Schritt 1: Repository klonen

# Repository von GitHub klonen:
git clone https://github.com/isha-gpt/bloom-viewer

# In das Verzeichnis wechseln:
cd bloom-viewer

Schritt 2: Abhängigkeiten installieren

npm install

Schritt 3: Transcript’s Verzeichnis festlegen

Der Pfad zu Bloom’s Transcripts Verzeichnis wird über eine Umgebungsvariable festgelegt. Das Transcripts Verzeichnis befindet sich unter dem Bloom Installationsverzeichnis mit dem Pfad <bloom>/results/transcripts

# Linux
export TRANSCRIPT_DIR=/pfad/zum/transcripts/verzeichnis

# Windows
SET TRANSCRIPT_DIR=\pfad\zum\transcripts\verzeichnis

Schritt 4: Server starten

npm run dev

erwartete Ausgabe (kann variieren):

  VITE v6.3.6  ready in 1708 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help

Nach erfolgreichem Start kann nun er Viewer über die in der Konsole angezeigte URL aufgerufen werden. Hier im Beispiel: http://localhost:5173/


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert