Dieser Artikel zeigt auf, wie sensible Daten mit Hilfe von KI-Modellen anonymisiert werden können. Das Risiko, echte Unternehmens-, Nutzer- oder Kundendaten ungewollt zu exponieren, wird vermieden. Das im Folgenden beschriebene Verfahren kann grundsätzlich in allen Situationen eingesetzt werden, in denen die Verwendung echter Personendaten kritisch ist.
Anonymisierung ist relativ leicht zu bewerkstelligen, falls die Daten in strukturierter Form vorliegen. Datenfelder wie Vorname, Nachname, Geburtsdatum, IBAN, Kundennummer usw. müssen in separaten technischen Feldern abgespeichert sein. Anders sieht es bei unstrukturierten Feldern aus. Man denke zum Beispiel an das Verwendungszweckfeld in Kontoumsätzen, Gesprächsnotizen in einem CRM-System oder E-Mailnachrichten von Kunden.
1. Wie personenbezogene Informationen (Personally Identifiable Information, PII) aus unstrukturierten Datenfeldern entfernt werden können.
Praktisches Beispielszenario als Proof of Concept:
Kundennachrichten anonymisieren
Als Datenbasis für einen Proof of Concept haben wir 1.000 synthetische (fiktive) Texte generiert. Sie enthalten Informationen wie Vorname, Nachname, Geburtsdatum und Kontonummer. Abbildung 1 zeigt exemplarisch eine Ausgangsnachricht (links) und die zugehörige anonymisierte Version (rechts).
Das Anonymisieren erfolgt über das sogenannte Prompt Engineering:
Eine generative KI wandelt den Ausgangstext in die anonymisierte Version um, indem es die Vorgaben eines sogenannten Prompts befolgt. In diesem konkreten Fall lautet das Prompt:
„Ersetze die personenbezogenen Daten in der nachfolgenden Nachricht. Ersetze personenbezogenen Daten auf folgende Weise:
- Ersetze Vornamen durch den Platzhalter [VORNAME]
- Ersetze Nachnamen durch den Platzhalter [NACHNAME]
- Ersetze ein Geburtsdatum durch den Platzhalter [GEBURTSDATUM]
- Ersetze Straßennamen ohne Hausnummer durch den Platzhalter [STRASSE]
- Ersetze Straßennamen mit Hausnummer durch den Platzhalter [STRASSE_UND_HAUSNUMMER]
- Ersetze Postleitzahlen durch den Platzhalter [PLZ]
- Ersetze Ortsnamen durch den Platzhalter [Ort]
- Ersetze Telefonnummern durch den Platzhalter [TELEFONNUMMER]
- Ersetze E-Mail-Adressen durch den Platzhalter [E-MAIL]
- Ersetze Kundennummern durch den Platzhalter [KUNDENNUMMER]
- Ersetze IBAN durch den Platzhalter [IBAN]“
Nachricht:
<Text der nicht anonymisierten Nachricht hier>
Nachdem das Large Language Model (LLM) mit diesem Prompt aufgerufen wurde liefert es eine entsprechend anonymisierte Nachricht als Antwort. Für jeden zu anonymisierender Freitext wird das LLM separat aufgerufen. Schematisch ergibt sich also ein Ablauf, wie in Abbildung 2 dargestellt.
2. Den Datenschutz während des Prozesses gewährleisten
Nun stellt sich noch die Frage, welches Sprachmodell (LLM) für den Anonymisierungsprozess verwendet werden sollte. Derzeit setzt GPT-4 als führendes Sprachmodell den (Gold-)Standard. Für unseren Proof of Concept haben wir uns jedoch gegen GPT-4 entschieden und LeoLM ausgewählt (für mehr Infos siehe https://laion.ai/blog-de/leo-lm/). Die wesentlichen Gründe für die Auswahl von LeoLM sind:
- Es handelt sich um ein Open Source-Sprachmodell, welches auch lokal bzw. im eigenen Rechenzentrum (On-Premise) betrieben werden kann. Hierdurch kann der Schutz sensibler personenbezogener Daten gewährleistet werden.
- Bei hohen Datenvolumina kann die Verwendung eines Cloud-gehosteten kommerziellen Sprachmodells erhebliche Kosten verursachen. Alle etablierten Anbieter rechnen pro generiertem Wort ab (genauer gesagt pro generiertem Wortfragment, dem sogenannten Token). Bei On-Premise-Lösungen fallen ebenfalls Kosten an, diese sind aber üblicherweise geringer.
- LeoLM basiert auf dem bekannten, von Meta veröffentlichten Sprachmodell LLama2. Im Gegensatz zu LLama2 ist LeoLM spezifisch auf das Verstehen und die Generierung von Texten in deutscher Sprache angepasst, man spricht hierbei vom sogenannten Finetuning.
Im Rahmen des Proof of Concept stellte sich heraus, dass LeoLM durchaus zum Anonymisieren großer Textkorpora geeignet ist. Im Test lieferte bereits das Sprachmodell LeoLM 13B Chat gute Ergebnisse. Auf der Plattform huggingface können Sie dieses Chatmodell kostenlos testen (Registrierung erforderlich). Auf die Verwendung des leistungsfähigeren Sprachmodells LeoLM 70B Chat wurde verzichtet, da dessen Verwendung ressourcenintensiver ist.
3. Die verwendeten Rechenressourcen im Auge behalten
Wie groß dürfen die zu verarbeitenden Datenmengen sein? Der begrenzende Faktor ist hierbei die Inferenzzeit des Sprachmodells, also die für das Erzeugen des anonymisierten Textes benötigte Zeit. Unter Verwendung eines einfachen Hardwaresetups wurden im Testlauf circa 1.200 Text-Anonymisierungen pro Stunde erzielt. Technische Details:
- Verwendete Hardware: NVIDIA V100 GPU
- Maximale Kontextlänge der generierten Texte war 2048 Tokens
Die Anzahl der Text-Anonymisierungen pro Stunde kann durch eine Optimierung des Software-Setups, Verwendung von mehr Hardware-Ressourcen und eines eventuellen Generierten kürzerer Texte erheblich gesteigert werden. Je nach verfügbarem Budget ist ein Durchsatz von 100.000 bis 1.000.000 Anonymisierungen pro Stunde realistisch.
4. Fazit
Im Rahmen der Machbarkeitsstudie hat sich die Anonymisierung durch Sprachmodelle als durchaus erfolgreich erwiesen. Subjektiv eingeschätzt waren die Ergebnisse bei circa 90% der zu anonymisierenden Texte gut, d.h. ohne Beanstandung. Dabei ist zu beachten, dass es sich um synthetische Daten handelt, die genannte Quote von 90% kann je nach konkreter Datenbasis stark variieren. Da LLMs zum Beispiel dazu neigen, zu Halluzinieren (falsche Antworten zu geben), empfiehlt es sich zusätzliche Algorithmen einzusetzen, sozusagen als „Sicherungsnetz“ für den Fall, dass sich ein LLM täuscht. Exemplarisch verweise ich auf die Python-Bibliotheken SpaCy und NLTK , mit deren Hilfe z.B. Namen in Texten identifiziert werden können (sogenannte Named Entity Recognition, NER).
Falls Sie Fragen zu dieser Methode haben oder eine Beratung zu Ihrem KI-Vorhaben benötigen, schreiben Sie mir gerne eine Nachricht: