Wir sind Wissenschaftler der Technischen Universität München im Bereich Legal Technology. Für unsere nächste wissenschaftliche Publikation möchten wir drei Dinge vorstellen:
Aktuelle Aufgaben können work in progress sein; immer erst mal kontrollieren, dann lösen. Sobald was davon erledigt ist, bitte [erledigt] zu Beginn der Aufgabe schreiben; ich kontrolliere dann bei Gelegenheit.
Das Projekt folgt im Kern der Cookiecutter Data Science Projektstruktur. Skripte und Module sind unter courtpressger/ angeordnet.
Das CourtPressGER-Projekt ist in mehrere Module unterteilt, die verschiedene Funktionalitäten bereitstellen:
CourtPressGER/
├── courtpressger/ # Hauptmodul der Anwendung; enthält alle Module und Skripte
│ ├── data_cleaning/ # Module zur Datenbereinigung
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Datenbereinigung
│ │ ├── rule_based.py # Regelbasierte Bereinigungsmethoden
│ │ └── utils.py # Hilfsfunktionen
│ ├── synthetic_prompts/ # Module für synthetische Prompts
│ │ ├── cli.py # Kommandozeilenschnittstelle für Prompt-Generierung
│ │ ├── generator.py # Generator für synthetische Prompts
│ │ ├── rate_limiter.py # API-Ratenbegrenzung
│ │ ├── sanitizer.py # Bereinigung und Formatierung von Prompts
│ │ └── verify_checkpoints.py # Validierung von Checkpoints
│ ├── generation/ # Module zur Generierung von Pressemitteilungen
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Generierung
│ │ └── pipeline.py # Pipeline zur Generierung von Pressemitteilungen
│ ├── evaluation/ # Module zur Evaluierung
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Evaluierung
│ │ ├── metrics.py # Metriken für die Evaluierung
│ │ ├── models.py # Implementierung verschiedener LLMs
│ │ ├── pipeline.py # Pipeline zur Evaluierung der Modelle
│ │ └── utils.py # Hilfsfunktionen für Visualisierung und Analyse
│ ├── __init__.py # Initialisierung des Pakets
│ ├── dataset.py # Datenverwaltung und -zugriff
│ ├── download_eurobert.py # Skript zum Herunterladen des EuroBERT-Modells
│ ├── download_eurollm.py # Skript zum Herunterladen des EuroLLM-9B-Modells
│ ├── download_llama3_8b.py # Skript zum Herunterladen des Llama-3.1-8B-Modells
│ ├── download_teuken.py # Skript zum Herunterladen des Teuken-7B-Modells
│ └── main.py # Haupteinstiegspunkt der Anwendung
├── data/ # Datendateien
│ ├── raw/ # Rohdaten
│ ├── interim/ # Zwischendaten
│ ├── processed/ # Verarbeitete Daten
│ ├── checkpoints/ # Checkpoints für lange Verarbeitungsprozesse
│ ├── generation/ # Generierte Pressemitteilungen
│ └── evaluation/ # Evaluierungsergebnisse
├── notebooks/ # Jupyter Notebooks für Analysen
├── tests/ # Testmodule
│ ├── evaluation/ # Tests für Evaluierungskomponenten
│ │ ├── test_pipeline.py # Tests für die Evaluierungspipeline
│ │ └── test_factual_metrics.py # Tests für QAGS und FactCC Metriken
│ ├── examples/ # Beispieldaten für Tests
│ ├── test_generation_pipeline.py # Tests für die Generierungspipeline
│ ├── test_teuken_model.py # Tests für das Teuken-Modell
│ ├── test_checkpoint_generation.py # Tests für die Checkpoint-Funktionalität
│ └── test_csv_validator.py # Tests für die CSV-Validierung
├── models/ # Modellierte Daten und Modellkonfigurationen
│ ├── teuken/ # Teuken-7B-Modell für die lokale Generierung
│ ├── eurollm/ # EuroLLM-9B-Modell für die lokale Generierung
│ ├── eurobert/ # EuroBERT-Modell für BERTScore
│ ├── generation_config.json # Konfiguration für die Generierungsmodelle
│ ├── evaluation_config.json # Konfiguration für die Evaluierungsmodelle
│ └── evaluation_models_config.json # Erweiterte Konfiguration für Evaluierungsmodelle
├── references/ # Referenzdokumente und Schemadefitionen
├── reports/ # Generierte Berichte und Visualisierungen
├── pyproject.toml # Projekteinstellungen und Abhängigkeiten
├── uv.lock # Lock-Datei für uv-Paketmanager
├── .env # Umgebungsvariablen und API-Keys
├── Makefile # Automatisierungsscripts für häufige Aufgaben
└── README.md # Projektdokumentation
Das Projekt bietet folgende Hauptfunktionalitäten:
Seit neuestem unterstützt das Projekt auch fortgeschrittene Metriken zur Bewertung der sachlichen Konsistenz zwischen Gerichtsurteilen und generierten Pressemitteilungen:
QAGS (Question Answering for evaluating Generated Summaries)
FactCC (Factual Consistency Check)
LLM-as-a-Judge (Claude 3.7 Sonnet)
Diese Metriken können über folgende Befehle ausgeführt werden:
make eval-factual: Aktiviert QAGS und FactCC für die sachliche Konsistenzprüfungmake eval-llm-judge: Aktiviert die Bewertung durch Claude 3.7 Sonnetmake eval-full: Führt alle Evaluierungsmetriken inklusive sachlicher Konsistenzprüfung und LLM-as-a-Judge ausAlternativ können diese Funktionen über entsprechende Kommandozeilenoptionen aktiviert werden:
--enable-factual-consistency: Aktiviert QAGS und FactCC--enable-llm-as-judge: Aktiviert die Bewertung durch Claude 3.7 SonnetDas Projekt nutzt uv, um Pakete und Venvs zu verwalten. Im besten Fall sollen pakete durch uv add hinzugefügt werden, nur im Ausnahmefall durch uv pip install. Es wird eine einzige virtuelle Umgebung unter .venv verwendet, die für alle Aufgaben (CPU und GPU) geeignet ist.
Wir sind Wissenschaftler der Technischen Universität München im Bereich Legal Technology. Für unsere nächste wissenschaftliche Publikation möchten wir drei Dinge vorstellen:
Aktuelle Aufgaben können work in progress sein; immer erst mal kontrollieren, dann lösen. Sobald was davon erledigt ist, bitte [erledigt] zu Beginn der Aufgabe schreiben; ich kontrolliere dann bei Gelegenheit.
Das Projekt folgt im Kern der Cookiecutter Data Science Projektstruktur. Skripte und Module sind unter courtpressger/ angeordnet.
Das CourtPressGER-Projekt ist in mehrere Module unterteilt, die verschiedene Funktionalitäten bereitstellen:
CourtPressGER/
├── courtpressger/ # Hauptmodul der Anwendung; enthält alle Module und Skripte
│ ├── data_cleaning/ # Module zur Datenbereinigung
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Datenbereinigung
│ │ ├── rule_based.py # Regelbasierte Bereinigungsmethoden
│ │ └── utils.py # Hilfsfunktionen
│ ├── synthetic_prompts/ # Module für synthetische Prompts
│ │ ├── cli.py # Kommandozeilenschnittstelle für Prompt-Generierung
│ │ ├── generator.py # Generator für synthetische Prompts
│ │ ├── rate_limiter.py # API-Ratenbegrenzung
│ │ ├── sanitizer.py # Bereinigung und Formatierung von Prompts
│ │ └── verify_checkpoints.py # Validierung von Checkpoints
│ ├── generation/ # Module zur Generierung von Pressemitteilungen
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Generierung
│ │ └── pipeline.py # Pipeline zur Generierung von Pressemitteilungen
│ ├── evaluation/ # Module zur Evaluierung
│ │ ├── cli.py # Kommandozeilenschnittstelle für die Evaluierung
│ │ ├── metrics.py # Metriken für die Evaluierung
│ │ ├── models.py # Implementierung verschiedener LLMs
│ │ ├── pipeline.py # Pipeline zur Evaluierung der Modelle
│ │ └── utils.py # Hilfsfunktionen für Visualisierung und Analyse
│ ├── __init__.py # Initialisierung des Pakets
│ ├── dataset.py # Datenverwaltung und -zugriff
│ ├── download_eurobert.py # Skript zum Herunterladen des EuroBERT-Modells
│ ├── download_eurollm.py # Skript zum Herunterladen des EuroLLM-9B-Modells
│ ├── download_llama3_8b.py # Skript zum Herunterladen des Llama-3.1-8B-Modells
│ ├── download_teuken.py # Skript zum Herunterladen des Teuken-7B-Modells
│ └── main.py # Haupteinstiegspunkt der Anwendung
├── data/ # Datendateien
│ ├── raw/ # Rohdaten
│ ├── interim/ # Zwischendaten
│ ├── processed/ # Verarbeitete Daten
│ ├── checkpoints/ # Checkpoints für lange Verarbeitungsprozesse
│ ├── generation/ # Generierte Pressemitteilungen
│ └── evaluation/ # Evaluierungsergebnisse
├── notebooks/ # Jupyter Notebooks für Analysen
├── tests/ # Testmodule
│ ├── evaluation/ # Tests für Evaluierungskomponenten
│ │ ├── test_pipeline.py # Tests für die Evaluierungspipeline
│ │ └── test_factual_metrics.py # Tests für QAGS und FactCC Metriken
│ ├── examples/ # Beispieldaten für Tests
│ ├── test_generation_pipeline.py # Tests für die Generierungspipeline
│ ├── test_teuken_model.py # Tests für das Teuken-Modell
│ ├── test_checkpoint_generation.py # Tests für die Checkpoint-Funktionalität
│ └── test_csv_validator.py # Tests für die CSV-Validierung
├── models/ # Modellierte Daten und Modellkonfigurationen
│ ├── teuken/ # Teuken-7B-Modell für die lokale Generierung
│ ├── eurollm/ # EuroLLM-9B-Modell für die lokale Generierung
│ ├── eurobert/ # EuroBERT-Modell für BERTScore
│ ├── generation_config.json # Konfiguration für die Generierungsmodelle
│ ├── evaluation_config.json # Konfiguration für die Evaluierungsmodelle
│ └── evaluation_models_config.json # Erweiterte Konfiguration für Evaluierungsmodelle
├── references/ # Referenzdokumente und Schemadefitionen
├── reports/ # Generierte Berichte und Visualisierungen
├── pyproject.toml # Projekteinstellungen und Abhängigkeiten
├── uv.lock # Lock-Datei für uv-Paketmanager
├── .env # Umgebungsvariablen und API-Keys
├── Makefile # Automatisierungsscripts für häufige Aufgaben
└── README.md # Projektdokumentation
Das Projekt bietet folgende Hauptfunktionalitäten:
Seit neuestem unterstützt das Projekt auch fortgeschrittene Metriken zur Bewertung der sachlichen Konsistenz zwischen Gerichtsurteilen und generierten Pressemitteilungen:
QAGS (Question Answering for evaluating Generated Summaries)
FactCC (Factual Consistency Check)
LLM-as-a-Judge (Claude 3.7 Sonnet)
Diese Metriken können über folgende Befehle ausgeführt werden:
make eval-factual: Aktiviert QAGS und FactCC für die sachliche Konsistenzprüfungmake eval-llm-judge: Aktiviert die Bewertung durch Claude 3.7 Sonnetmake eval-full: Führt alle Evaluierungsmetriken inklusive sachlicher Konsistenzprüfung und LLM-as-a-Judge ausAlternativ können diese Funktionen über entsprechende Kommandozeilenoptionen aktiviert werden:
--enable-factual-consistency: Aktiviert QAGS und FactCC--enable-llm-as-judge: Aktiviert die Bewertung durch Claude 3.7 SonnetDas Projekt nutzt uv, um Pakete und Venvs zu verwalten. Im besten Fall sollen pakete durch uv add hinzugefügt werden, nur im Ausnahmefall durch uv pip install. Es wird eine einzige virtuelle Umgebung unter .venv verwendet, die für alle Aufgaben (CPU und GPU) geeignet ist.