Vor fast einem Monat habe ich am Hackathon für synthetische Gesundheitsdaten des Hospital Clínico de Madrid teilgenommen. Am meisten hat mich beeindruckt, dass trotz aller Anstrengungen und enormer Investitionen in Informationssysteme hochwertige Informationen knapp sind. Das macht eine Transformation des Gesundheitssystems durch Daten und künstliche Intelligenz fast zu einem Wunschtraum.
Dr. David Rey
18. Dezember 2025
Wirklich überrascht war ich allerdings nicht. Nach meiner Erfahrung der letzten Jahre tritt dieses Problem in jeder Branche auf. Selbst in digital geborenen Unternehmen erfordert der Weg zu hochwertigen Daten eine andere Arbeitsweise, und wir wissen ja: „Culture eats strategy for breakfast“ … und manchmal gibt es nichts Starreres als das menschliche Gehirn.
Doch im Laufe des Tages beruhigte ich mich etwas. Es schien, als könnten wir, wenn die echten Daten nicht existierten, eine ausreichend gute Nachbildung bauen (synthetische Daten). Natürlich sind das immer noch „erfundene“ Daten, und in einem so sensiblen Umfeld kam mir eine zweite Frage: Sind sie gut genug?
Fast sofort erinnerte ich mich an den Entstehungsprozess von DeepSeek R1 Anfang dieses Jahres, bei dem – extrem vereinfacht – das Reasoning-Modell mit Daten trainiert wurde, die ein Hilfsmodell (DeepSeek R1-Zero) erzeugt hatte. Durch Reinforcement Learning erwarb das Modell immer ausgefeiltere Fähigkeiten zum Schlussfolgern. Ein wesentlicher Teil dieses Erfolgs lag gerade in der Nutzung synthetischer Daten.
CONDITION
Krankheiten, Diagnosen, Störungen, Symptome und Zeichen.
DRUG
Medikamente, Wirkstoffe und Arzneimittel.
PROCEDURE
Medizinische Prozeduren, Bildgebung, Operationen und Eingriffe.
MEASUREMENT
Klinische Tests oder Messgrößen (das Messkonzept).
LAB_RESULT
Numerische oder qualitative Ergebnisse, die im Text genannt werden.
OBSERVATION
Nicht-diagnostische Fakten: Gewohnheiten, soziale Faktoren, Befunde.
DEVICE
Verwendete, eingeführte oder implantierte Medizinprodukte.
ANATOMY
Körperstellen, anatomische Strukturen oder Regionen.
UNIT
Maßeinheiten.
TEMPORAL
Klinisch relevante Zeitangaben: Häufigkeit, Dauer, Zeitpunkt.
Parallel dazu verbesserten wir in den letzten Wochen bei Tietai das Modul zur Erkennung von Datenentitäten in Freitext, nach dem Datenmodell OMOP CDM (das ein gemeinsames, standardisiertes Datenmodell für jede Art klinischer Daten sein soll).
Unser Ziel war ein sehr effizientes und präzises System, das große Textmengen aus dem Gesundheitssystem verarbeitet, ohne vorab ihre Struktur zu berücksichtigen: Krankengeschichten in natürlicher Sprache, Entlassberichte, Verlaufsdokumentationen usw.
Das Problem ist nicht neu, denn solche Aufgaben litten mit traditionellen NLP-Techniken unter geringer Präzision. Das jüngste Aufkommen großer Sprachmodelle (LLMs) und ihrer kleineren Varianten (SLMs) hat jedoch ein Fenster für Verbesserungen geöffnet: Die technische Komplexität ist gesunken, Kosten und Laufzeiten für große Prozesse bleiben aber hoch.
Ließen sich die eher traditionellen Ansätze zur Entitätsmarkierung in Texten (die effizienter sind) mit synthetischen Daten verbessern? Anders gesagt: Können wir ein Modell bauen, das im Text Elemente der folgenden Typen erkennt?
Konkret hatte ich mich auf spezifische Modelle mit BERT-artigen Architekturen wie Clinical Bert konzentriert, aber auf meine Aufgabe ausgerichtet. Das erste Problem war, dass ich eine Datenbasis aufbauen musste, das zweite, wie ich sicherstellen konnte, dass ich durch die Inzucht, selbst erzeugte Daten zu nutzen, kein Overfitting verursacht hatte.
Also machte ich mich daran, den Datensatz in diesem Format aufzubauen:
{
"text": "Ibuprofen 500 mg every morning for headache after bronchoscopy of the left lung",
"tokens": ["Ibuprofen", "500", "mg", "every", "morning", "for", "headache",
"after", "bronchoscopy", "of", "the", "left", "lung"],
"tags": ["B-D", "O", "B-U", "B-T", "I-T", "O", "B-C",
"O", "B-P", "O", "O", "B-A", "I-A"]
}- B- Erstes Token einer Entität
- I- Folgende Tokens derselben Entität
- O Außerhalb jeder Entität
- Die Buchstaben nach dem Bindestrich sind die Entitätstypen oben (D = DRUG, U = UNIT, T = TEMPORAL …)
Beispielhafter Datensatz.
Insgesamt sollten 20.873 Datensätze erzeugt werden, verteilt auf drei Gruppen:
- Trainingsset: 16.699 (80 %)
- Testset: 2.087 (15 %)
- Validierungsset: 2.087 (15 %)
Diese Daten wurden nicht völlig zufällig erzeugt; vielmehr wird erzwungen, dass die Datensätze einen Mindestanteil positiver Fälle je Kategorie sowie negative oder stark negative Fälle enthalten.
Wie bauen wir den Datensatz und das Modell?
Die Grundidee ist, einen Datensatz aufzubauen, der durch Verallgemeinerung der beobachteten Fehler verfeinert wird. Der Prozess besteht aus mehreren Schritten:
- Synthetische Daten mit einem großen Tutor-Modell erzeugen.
- Die Qualität der synthetischen Daten mit einem weiteren Tutor-Modell prüfen, um die Qualität der verwendeten Daten sicherzustellen.
- Den erzeugten Datensatz in 3 disjunkte Teile aufteilen: (1) Training (60 %), (2) Test/Validierung im Training (20 %), (3) Out-of-Sample-Validierung (20 %).
- Ein effizientes, kleines Modell feinabstimmen, das Domänenwissen mitbringt, aber das Validierungsset nicht enthält. In diesem Fall PlanTL-GOB-ES/bsc-bio-ehr-es, vortrainiert auf 278.000 Dokumenten und klinischen Notizen.
- Auf dem ursprünglichen Validierungsset analysieren wir mit einem weiteren Tutor-Modell (Gemini 2.5 Flash), um Muster aus den Fehlern im Testset zu verallgemeinern.
- Für jeden Fehler erzeugen wir einen neuen Datensatz mit 3 Beobachtungen pro Muster.
- Schließlich verfeinern wir das Modell erneut in Schritt 4 über 3 Iterationen, bis sich die Validierungsmetriken des Systems nicht mehr verbessern.
- 1
Erzeugen
Ein großes Tutor-Modell schreibt synthetische Datensätze.
- 2
Validieren
Ein zweites Tutor-Modell prüft ihre Qualität.
- 3
Aufteilen
Training 60 %, Test während des Trainings 20 %, Out-of-Sample-Validierung 20 %.
- 4
Feinabstimmen
Ein kleines Domänenmodell (bsc-bio-ehr-es) lernt aus dem Trainingsanteil.
- 5
Fehler analysieren
Gemini 2.5 Flash verallgemeinert die im Testanteil beobachteten Fehlermuster.
- 6
Gezielt ergänzen
Drei neue Beispiele pro Fehlermuster fließen zurück in die Feinabstimmung, über drei Iterationen.
Vorher: eine einzige breite OBSERVATION
OStates that in recent months he has had high work stress, but denies persistent sadness, loss of interest in activities, negative thoughts or problems sleeping.
Nachher: getrennte Condition- und Temporal-Entitäten
States that Tin recent months he has had Chigh work stress, but denies Cpersistent sadness, Closs of interest in activities, Cnegative thoughts or Cproblems sleeping.
Fehlermuster: verschiedene Entitäten in einem Abschnitt zusammengefasst und als OBSERVATION typisiert.
Das Bild oben erklärt den Kern dieses Prozesses besser: Das Tutor-Modell prüft die Fehler und versucht, eine falsche Klassifikation zu erklären. Das ist die Eingabe, mit der ein anderes Modell synthetisch positive Beobachtungen erzeugt, die eine korrekte Klassifikation stärken.
Lassen sich diese Ergebnisse verallgemeinern?
Nun haben wir ein Modell, das klinische Informationen präzise markieren kann (bezogen auf unser Ausgangsset), aber die Frage ist: Ist diese Qualität echt, oder liegt sie nur daran, dass wir die Daten nach unserem Geschmack „gekocht“ haben?
Bevor ich ein Geheimnis lüfte, zeige ich kurz das Ergebnis des Modells. Wie man sieht, erkennt es im Text Muster, die den Entitäten entsprechen:
Has also noticed Cdifficulty concentrating at work and lower tolerance to exercise: before ran L5 Ukm without difficulty and now gets Texhausted L1–L2 Ukm.
- C CONDITION
- L LAB_RESULT
- U UNIT
- T TEMPORAL
Das Klassifikationsmodell hatte zudem mehr als ordentliche Metriken erzielt:
- Genauigkeit: 98 %
- Recall: 92 %
- F1: 94 %
So weit, so gut, aber es musste bestätigt werden, dass das Experiment gut verallgemeinert. Dazu prüfte ich, wie es auf einem öffentlichen Krankheitsdatensatz namens CANTEMIST funktionierte. Mit diesen Daten stellte ich sicher, dass ich Ergebnisse mit Out-of-Sample-Daten bewertete.
Außerdem wollte ich die Leistung meines Modells mit einem ähnlichen Modell vergleichen, das für eine spezifische Aufgabe trainiert war. Glücklicherweise hatten SEDIA und das BSC ein Klassifikationsmodell auf derselben Basis wie meines trainiert, aber mit CANTEMIST als Trainings- und Validierungsset. Sie hatten es mit 30.565 Beobachtungen trainiert.
Um beide Modelle zu vergleichen, nutzte ich Genauigkeitsmaße auf Datensatzebene (statt auf Token-Ebene wie in der Arbeit zum zuvor genannten Modell). Die Ergebnisse waren mehr als überraschend: Beide Modelle funktionierten sehr ähnlich.
Damit war ich etwas beruhigter. Das gebaute Modell erreichte nicht nur ähnliche Präzisionswerte wie ein speziell für die Aufgabe trainiertes Modell, sondern konnte auch andere Entitätstypen klassifizieren. Meine Hypothese, dass synthetische Daten in diesem Bereich nützlich sind, war damit experimentell bestätigt.
Fazit
Abschließend lässt sich sagen, dass der Einsatz systematisch erzeugter und validierter synthetischer Daten nicht nur technisch machbar ist, sondern eine geeignete Alternative, wenn Daten schwer zu beschaffen sind.
In so sensiblen Bereichen wie der Gesundheit können synthetische Daten eine gute Alternative sein (manchmal sogar die einzige).
Die wichtigsten Erkenntnisse:
- Es ist möglich, Mehrzweckmodelle zu bauen, die eine mit hochspezialisierten Lösungen vergleichbare Leistung bieten, die Abhängigkeit von Ad-hoc-Entwicklungen verringern und die Wiederverwendung in verschiedenen Anwendungsfällen erleichtern.
- Der Wissenstransfer von großen auf kleinere, effizientere Modelle ermöglicht eine Balance zwischen Qualität und Kosten und damit produktive Einsätze mit geringeren Infrastrukturanforderungen.
- Die Pipeline aus Erzeugung, automatischer Validierung und iterativer Verfeinerung synthetischer Daten minimiert Overfitting-Risiken und verbessert die Verallgemeinerung.
- Die sehr geringen Kosten der Datenbeschaffung (35 $) sind ein klarer Vorteil dieser Methode, besonders in Bereichen, in denen der Zugang zu echten Daten begrenzt oder teuer ist.
- Dennoch möchte ich klarstellen, dass menschliche Annotation ideal ist; mit diesem Test können wir aber sagen, dass es eine valide Quelle ist, solange Validierungssets verfügbar sind (wie in unserem Fall).



