annotations4all — LLM-based arbitrary annotation framework
Bibliotheksfamilie für LLM-gestützte Span-Annotation: annotations4all annotiert, annotations-evaluate misst, annotations-orchestration fährt die Läufe — schema-first, provider-agnostisch, lokal oder über APIs. Poster auf der deRSE26.
annotations4all ist ein modulares Framework für Textannotations-Aufgaben mit Large Language Models. Der Punkt ist nicht das Prompten selbst, sondern die Reproduzierbarkeit: Prompt-Templates, Modell-Interaktion, Antwort-Parsing und Evaluation sind getrennte, konfigurierbare Stufen, und am Ende kommen strukturierte Span-Annotationen in Standardformaten heraus. Schema-first heißt: Das Datenmodell steht am Anfang, der Prompt wird daraus abgeleitet — nicht umgekehrt.
Entstanden ist es im Umfeld von NER4All, wo kontextuelles Prompting auf historischen Texten die klassischen NER-Werkzeuge (spaCy, flair) geschlagen hat. annotations4all generalisiert dieses Vorgehen, damit sich LLM-Annotations- Workflows auf neue Korpora und Domänen übertragen lassen — lokal über Ollama oder über OpenAI-kompatible APIs.
Die Familie
Aus dem Framework sind drei Pakete geworden, die zusammen eine Pipeline ergeben und gemeinsam versioniert werden:
| Paket | Rolle in der Pipeline | Anmerkung |
|---|---|---|
annotations4all |
Annotieren: Schema → Prompt → Provider-Aufruf → Parser/Merge → validierte Spans | Provider-Policies, optionaler rein lesender Terminal-Viewer (view-Extra) |
annotations-evaluate |
Messen: Precision/Recall/F1 gegen Gold-Annotationen | nested-Standardreport (Verschachtelungstiefe, Eltern-Kind-Struktur, Span-Länge, Decode-Rate) plus SemEval-2013-konformer Flachmodus; nur Standardbibliothek, keine Fremdabhängigkeiten |
annotations-orchestration |
Fahren: wiederaufnehmbarer, manifest-getriebener Parallel-Scheduler über Experiment-Manifeste | Metriken kommen aus annotations-evaluate; optionaler annotations4all-Runner, Provider-Metadaten, Textual-Konfigurationseditor |
Wie sie ineinandergreifen: annotations-evaluate ist die Messschicht und versteht verschachtelte und überlappende Annotationen — genau die Form, die in historischen Korpora (BeNASch/HLR-GT) vorkommt und die flache BIO-Auswertungen nicht abbilden. annotations-orchestration ist die Laufschicht darüber: Sie zerlegt ein Experiment in Manifest-Einträge, fährt sie parallel und wieder- aufnehmbar (ein abgebrochener Lauf setzt dort wieder an) und bringt keine eigene Metriklogik mit, sondern ruft annotations-evaluate auf. annotations4all ist die Annotationsschicht, die die eigentlichen Spans erzeugt. Die Pakete sind einzeln benutzbar, aber als Familie gedacht: Wer nur annotieren will, nimmt das erste; wer publizierte NER-Zahlen vergleichen will, das zweite; wer Modelle, Prompts oder Provider gegeneinander fahren will, das dritte.
Auf Zenodo ist annotations4all der Eltern-Datensatz: Seine Records verweisen per hasPart auf annotations-orchestration und annotations-evaluate, per continues auf den NER4All-Preprint und per isReferencedBy auf das Poster — die Familie hängt also auch bibliografisch zusammen, nicht nur im Code. Konzeption: Nicole Dresselhaus, Supervision: Till Grallert.
Releases
Jede Veröffentlichung hat eine eigene Zenodo-Version-DOI; die Konzept-DOI zeigt immer auf die neueste Version. Letzte Veröffentlichung: 20. Oktober 2026 (annotations4all 0.3.1 und annotations-orchestration 0.3.0).
annotations4all — Konzept-DOI 10.5281/zenodo.22011370
| Version | Datum | Zenodo |
|---|---|---|
| 0.3.1 | 2026-10-20 | 10.5281/zenodo.23494842 |
| 0.3.0 | 2026-10-19 | 10.5281/zenodo.23471533 |
| 0.2.0 | 2026-09-16 | 10.5281/zenodo.22790107 |
| 0.1.1 | 2026-08-19 | 10.5281/zenodo.22011371 |
annotations-orchestration — Konzept-DOI 10.5281/zenodo.22015763
| Version | Datum | Zenodo |
|---|---|---|
| 0.3.0 | 2026-10-20 | 10.5281/zenodo.23495464 |
| 0.2.0 | 2026-09-16 | 10.5281/zenodo.22797759 |
| 0.1.0 | 2026-08-19 | 10.5281/zenodo.22015764 |
annotations-evaluate — Konzept-DOI 10.5281/zenodo.22795382
| Version | Datum | Zenodo |
|---|---|---|
| 0.1.0 | 2026-09-16 | 10.5281/zenodo.22795383 |
Verweise
- PyPI:
annotations4all·annotations-evaluate·annotations-orchestration - Quellcode (GitLab der HU):
annotations4all·annotations-evaluate·annotations-orchestration - Poster und Abstract (deRSE26): doi.org/10.5281/zenodo.18834190
- Methodischer Hintergrund: NER4all-Preprint · Case Study: Local LLM-Based NER