<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Jessica Moszkowicz - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Jessica Moszkowicz - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/de/search-labs/author/jessica-moszkowicz</link>
    </image>
    <link>https://www.elastic.co/de/search-labs/author/jessica-moszkowicz</link>
    <atom:link href="https://www.elastic.co/de/search-labs/rss/author/jessica-moszkowicz.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[de]]></language>
    <lastBuildDate>Fri, 11 Sep 2026 09:23:18 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Entitätsauflösung mit Elasticsearch, Teil 4: Die ultimative Herausforderung]]></title>
    <description><![CDATA[Lösung und Bewertung von Herausforderungen bei der Entitätsauflösung in einem äußerst vielfältigen Datensatz zur „ultimativen Herausforderung“, der entwickelt wurde, um Abkürzungen zu verhindern.]]></description>
    <content:encoded><![CDATA[<p>Wir haben nun die Implementierung intelligenter Entitätsauflösung auf zwei Arten gesehen. Beide Ansätze beginnen auf dieselbe Weise: Aufbereitung und Extraktion der Entitäten, gefolgt vom Abruf der Kandidaten mit Elasticsearch. Anschließend bewerten wir diese Kandidaten mithilfe eines großen Sprachmodells (LLM), entweder durch promptbasierte JSON-Generierung oder durch Funktionsaufrufe, und fordern vom Modell eine transparente Begründung für seine Entscheidung.</p><p>Wie wir im <a href="https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-function-calling">vorherigen Beitrag</a> gesehen haben, ist die Konstanz, die durch Funktionsaufrufe ermöglicht wird, nicht nur eine praktische Optimierung, sondern essenziell. Nachdem wir strukturelle Fehler aus dem Evaluationskreislauf entfernt hatten, verbesserten sich die Ergebnisse in Standardszenarien (wie denen im Tier-4-Datensatz) dramatisch.</p><p>Doch eine offensichtliche Frage bleibt noch zu beantworten:</p><p><em>Funktioniert dieser Ansatz noch, wenn es kompliziert wird?</em></p><p>Die Entitätsauflösung in der realen Welt schlägt selten in einfachen Fällen fehl. Sie scheitert, wenn Namen Sprach-, Kultur-, Schrift-, Zeit- und Unternehmensgrenzen überschreiten. Sie scheitert, wenn auf Menschen mit Titeln anstelle von Namen Bezug genommen wird, wenn Unternehmen Namen ändern, wenn Transliterationen nicht konstant sind und wenn Kontext (nicht die Schreibweise) das Einzige ist, was eine Erwähnung mit einer realen Entität verbindet.</p><p>Für den letzten Beitrag dieser Serie haben wir das System einer sogenannten <strong>ultimativen Herausforderung</strong> unterzogen.</p><h2>Was macht dies zur ultimativen Herausforderung?</h2><p>In früheren Auswertungen haben wir das System mit zunehmend komplexeren Datensätzen getestet. Als wir die im vorherigen Beitrag besprochene Stufe 4 erreichten, hatten wir es bereits mit einer Mischung aus Spitznamen, Titeln, mehrsprachigen Namen und semantischen Bezügen zu tun. Diese Tests zeigten, dass die Architektur selbst solide war, aber dass Zuverlässigkeitsprobleme, insbesondere fehlerhaftes JSON, den Rückruf unterdrückten.</p><p>Mit dem implementierten Funktionsaufruf hatten wir endlich eine stabile Grundlage. So konnten wir eine interessantere Frage stellen:</p><p><em>Kann eine einheitliche Pipeline </em><em><strong>viele verschiedene Arten</strong></em><em> von Entitätsauflösungsproblemen gleichzeitig bewältigen?</em></p><p>Der ultimative herausfordernde Datensatz wurde darauf ausgelegt, genau diese Dimension zu erreichen.</p><p>Anstatt sich auf eine einzelne Schwierigkeit (wie Spitznamen oder Transliteration) zu konzentrieren, kombiniert dieser Datensatz <strong>mehr als 50 verschiedene Herausforderungstypen</strong>, darunter:</p><ul><li><p>Kulturelle Namenskonventionen.</p></li><li><p>Titelbasierte Referenzen.</p></li><li><p>Geschäftliche Beziehungen und historische Namensänderungen.</p></li><li><p>Mehrsprachige und skriptübergreifende Erwähnungen.</p></li><li><p>Zusammengesetzte Herausforderungen, die mehrere der oben genannten Punkte kombinieren.</p></li></ul><p>Entscheidend ist, dass es hier nicht um die Optimierung für einen einzigen, eng begrenzten Anwendungsfall geht. Es geht darum zu testen, ob das <em>Entwurfsmuster</em> Bestand hat, wenn sich die Regeln von Entität zu Entität ändern.</p><h2>Der Datensatz auf einen Blick</h2><p>Der ultimativ herausfordernde Datensatz besteht aus:</p><ul><li><p><strong>50 Entitäten</strong>, darunter Personen, Unternehmen und Institutionen.</p></li><li><p><strong>~60 Artikel</strong>, mit unterschiedlicher Struktur und sprachlicher Komplexität.</p></li><li><p><strong>51 verschiedene Herausforderungskategorien</strong>, grob unterteilt in:</p><ul><li><p>Kulturelle Namenskonventionen.</p></li><li><p>Titel und beruflichem Kontext.</p></li><li><p>Geschäfts- und Unternehmensbeziehungen.</p></li><li><p>Mehrsprachigkeit und Transliterationsherausforderungen.</p></li><li><p>Kombinierten und Grenzfall-Szenarien.</p></li></ul></li></ul><p>Zu Beginn der Serie haben wir gesehen, dass die Verwendung von generativer KI (GenKI) zur Erstellung von Datensätzen ein zweischneidiges Schwert sein kann. Ohne sie wäre es äußerst schwierig, ausreichend große und vielfältige Testdaten zusammenzustellen. Aber wenn das Modell nicht kontrolliert wird, neigt es dazu, die Dinge zu einfach zu machen.</p><p>Bei einer frühen Generationsüberprüfung stellten wir beispielsweise fest, dass das Modell Formulierungen wie „der russische Präsident“ als expliziten Aliasnamen für Wladimir Putin enthielt. Das mag heute vernünftig erscheinen, aber es widerspricht dem Zweck der Prüfung der Kontextauflösung. Was passiert, wenn der Artikel Russland in den 1990er Jahren behandelt? Das System sollte die richtige Entität aus dem Kontext ableiten und sich nicht auf einen fest codierten Alias verlassen.</p><p>Aus diesem Grund wurde dieser Datensatz bewusst so konzipiert, dass <strong>Abkürzungen nicht funktionieren</strong>. Pseudonyme werden nicht explizit aufgeführt, wenn das System die Bedeutung erschließen soll. Beschreibende Phrasen sind nicht vorab mit Entitäten verknüpft. Korrekte Treffer hängen oft vom Kontext auf Artikelebene ab, nicht nur vom lokalen Text.</p><p><strong>Wichtiger Hinweis:</strong> Obwohl wir die Fähigkeiten des Systems in verschiedenen Szenarien demonstrieren, ist dies dennoch ein Bildungsprototyp. Produktionssysteme, die die Überwachung von sanktionierten Entitäten in der realen Welt handhaben, würden zusätzliche Validierung, Compliance-Prüfungen, Audit-Trails und eine spezialisierte Handhabung für sensible Anwendungsfälle erfordern.</p><h2>Warum diese Szenarien schwierig sind</h2><p>Im ersten Beitrag dieser Reihe haben wir ein einfaches, aber mehrdeutiges Beispiel vorgestellt: „Das neue Swift-Update ist da!“ Die Herausforderung besteht darin, dass „Swift“ je nach Kontext auf mehrere reale Entitäten aufgelöst werden kann. Dieses Beispiel verdeutlicht eine grundlegendere Wahrheit: Natürliche Sprache ist von Natur aus mehrdeutig.</p><p>Die Entitätsauflösung ist daher nicht nur ein Problem des Zeichenfolgenabgleichs. Menschen verlassen sich routinemäßig auf gemeinsames Wissen, kulturelle Normen und situativen Kontext, um Referenzen zu lösen, und oft merken wir gar nicht, dass wir das tun.</p><p>Betrachten wir ein paar gängige Fälle:</p><ul><li><p>Ein Titel wie „der Präsident“ ist ohne geopolitischen und zeitlichen Kontext bedeutungslos.</p></li><li><p>Ein Firmenname kann sich je nach Zeitpunkt der Artikelveröffentlichung auf ein Mutterunternehmen, eine Tochtergesellschaft oder eine ehemalige Marke beziehen.</p></li><li><p>Der Name einer Person kann in verschiedenen Reihenfolgen, Schriften oder Transliterationen erscheinen, abhängig von Sprache und Kultur.</p></li><li><p>Die gleiche Phrase kann in verschiedenen Kontexten legitimerweise auf unterschiedliche Entitäten verweisen, und das System muss in der Lage sein, Matches genauso zuversichtlich <em>abzulehnen</em>, wie sie zu akzeptieren.</p></li></ul><p>Es gibt kein einzelnes Regelwerk, das all dies sauber abdeckt. Deshalb trennt dieser Prototyp die verschiedenen Bereiche so konsequent:</p><ul><li><p>Elasticsearch schränkt den Kandidatenraum effizient und transparent ein.</p></li><li><p>Das LLM wird nur dort verwendet, wo ein Urteil erforderlich ist, und ist gezwungen, sich selbst zu erklären.</p></li><li><p>Abruf und Schlussfolgerung bleiben getrennte Schritte.</p></li></ul><p>Diese Trennung wird umso wichtiger, je größer die Vielfalt der Herausforderungen ist.</p><h2>So geht das System mit Vielfalt ohne Spezialfälle um</h2><p>Eines der interessantesten Ergebnisse dieser Bewertung ist, was <em>sich nicht geändert hat</em>:</p><ul><li><p>Wir haben <strong>keine</strong> spezielle Logik für japanische Namen hinzugefügt.</p></li><li><p>Wir haben <strong>keine</strong> benutzerdefinierten Regeln für arabische Patronyme hinzugefügt.</p></li><li><p>Wir haben <strong>keine</strong> fest codierten Mappings für historische Firmennamen hinzugefügt.</p></li></ul><p>Stattdessen basierte das System auf denselben Kernzutaten, die früher in der Serie eingeführt wurden:</p><ul><li><p>Mit Kontext angereicherte Entitäten, die für semantische Suchen indexiert sind.</p></li><li><p>Hybrider Abruf (exakt, per Alias und semantisch) in Elasticsearch.</p></li><li><p>Eine kleine, gut definierte Gruppe von Kandidatenmatches.</p></li><li><p>LLM-Bewertung eingeschränkt durch Funktionsaufruf und Minimalschemata.</p></li></ul><p>Das deutet darauf hin, dass die Flexibilität des Systems von <strong>Repräsentation und Architektur</strong> herrührt, nicht von einer ständig wachsenden Sammlung von Regeln.</p><p>Wenn das System erfolgreich ist, liegt das daran, dass die richtigen Kandidaten ermittelt werden und das LLM ausreichend Kontext hat, um zu erklären, warum eine Referenz einer bestimmten Entität zugeordnet wird oder nicht.</p><h2>Ergebnisse: Wie hat es abgeschnitten?</h2><p>Im ultimativ herausfordernden Datensatz erzielte das System folgende Gesamtergebnisse:</p><ul><li><p><strong>Präzision:</strong> ~91 %</p></li><li><p><strong>Rückruf:</strong> ~86 %</p></li><li><p><strong>F1-Score:</strong> ~89 %</p></li><li><p><strong>LLM-Annahmequote:</strong> ~72 %</p></li></ul><h3>Leistung nach Herausforderungstyp</h3><p>Die Aufschlüsselung der Ergebnisse nach Herausforderungstyp zeigt Stärken und Schwächen:</p><p><strong>Die stärkste Leistung (100 % F1-Score)</strong> wurde in folgenden Bereichen beobachtet:</p><ul><li><p>Schriftübergreifender Abgleich (kyrillische, koreanische, chinesische Unternehmen).</p></li><li><p>Hebräische Szenarien (Patronyme, Berufstitel, religiöse Titel, Transliteration).</p></li><li><p>Unternehmenshierarchien (Luft- und Raumfahrt, diversifizierte Fertigungsunternehmen, Konzerne mit mehreren Geschäftsbereichen).</p></li><li><p>Berufsbezeichnungen (akademisch, militärisch, politisch, religiös).</p></li><li><p>Kombinierte japanische Szenarien mit mehreren Schriftsystemen.</p></li></ul><p><strong>Starke Leistung (80–99 % F1-Score)</strong> umfassten:</p><ul><li><p>Internationale politische Persönlichkeiten (98 %).</p></li><li><p>Historische Namensänderungen (90 %).</p></li><li><p>Komplexe Unternehmenshierarchien (89 %).</p></li><li><p>Japanische Firmennamen (93 %).</p></li><li><p>Cross-Script-Transliteration (86 %).</p></li><li><p>Arabische Patronyme (86 %).</p></li></ul><p><strong>Problematischere Bereiche</strong> waren:</p><ul><li><p>Erweiterte Transliteration (Chinesisch, Koreanisch): 0 % F1.</p></li><li><p>Bestimmte japanische Szenarien (Höflichkeitsformen, Namensreihenfolge, Variationen des Schriftsystems): ~67 % F1.</p></li><li><p>Einige arabische Szenarien (Unternehmensnamen, institutionelle Referenzen): ~40 % F1.</p></li></ul><p>Wichtig ist hier, <em>warum</em> das System in diesen Fällen Schwierigkeiten hatte. Die Fehler waren nicht auf das Scheitern des Gesamtansatzes zurückzuführen, sondern auf Einschränkungen in bestimmten Komponenten, insbesondere dem dichten Vektormodell, das für die semantische Suche in bestimmten mehrsprachigen Szenarien verwendet wird.</p><p>Da Abruf und Beurteilung klar getrennt sind, erfordert die Leistungssteigerung keine Neuprogrammierung des Systems. Der Austausch eines leistungsfähigeren mehrsprachigen Einbettungsmodells, die Anreicherung des Entitätskontextes oder die Verfeinerung der Suchstrategien würde die Ergebnisse in diesen Kategorien verbessern, ohne die Kernarchitektur zu verändern.</p><p>Aus architektonischer Sicht ist das der eigentliche Erfolgsmaßstab.</p><h2>Was uns das über das Design verrät</h2><p>Beim Rückblick auf die Serie lassen sich einige Muster erkennen:</p><ul><li><p><strong>Vorbereitung ist wichtiger als kluges Matching. </strong>Die Anreicherung von Entitäten mit Kontextinformationen im Vorfeld reduziert spätere Mehrdeutigkeiten erheblich.</p></li><li><p><strong>LLMs sind als Bewertungs- und nicht als Abrufsysteme am wertvollsten. </strong>Sie um eine Erklärung zu bitten, <em>warum</em> eine Übereinstimmung sinnvoll ist, ist weitaus wirkungsvoller als sie um eine Suche zu bitten.</p></li><li><p><strong>Zuverlässigkeit ermöglicht Genauigkeit. </strong>Der Funktionsaufruf hat nicht nur JSON bereinigt, sondern auch den Abruf von Informationen freigegeben, die bereits in der Abrufphase latent waren.</p></li><li><p><strong>Verallgemeinerung schlägt Spezialisierung. </strong>Eine kleine Anzahl gut gewählter Abstraktionen bewältigte Dutzende von Aufgabentypen ohne benutzerdefinierte Logik.</p></li></ul><p>Aus diesem Grund ist der Prototyp bewusst Elasticsearch-nativ und konservativ in der Verwendung von LLMs. Das Ziel besteht nicht darin, das Suchen zu ersetzen. Es geht darum, das Suchen in Situationen erklärbar zu machen, in denen die Bedeutung wichtig ist.</p><h2>Fazit</h2><p>Die ultimative Herausforderung bestand nicht darin, perfekte Metriken zu verfolgen; es ging darum, eine grundlegendere Frage zu beantworten:</p><p><em>Kann eine transparente, suchbasierte, LLM-gestützte Architektur mit der Mehrdeutigkeit realer Entitäten umgehen, ohne in Regeln oder Blackboxes zu zerfallen?</em></p><p>Für diesen Bildungsprototyp lautet die Antwort ja, mit klaren Vorbehalten in Bezug auf Produktionshärtung, Compliance, Überwachung und Datenqualität. Wenn Sie Systeme erstellen, die begründen müssen, <em>warum</em> ein Entitätsabgleich vorgenommen wurde, ist dieses Muster eine ernsthafte Überlegung wert. Ich hoffe, diese Serie hat gezeigt, dass die Entitätsauflösung kein Mysterium sein muss. Mit der richtigen Aufteilung der Anliegen wird sie zu etwas, worüber man nachdenken, was man messen und verbessern kann.</p><p>Diese Arbeit deutet auch auf ein breiteres architektonisches Muster hin. Daraus entsteht eine leichte, aber wichtige Weiterentwicklung der klassischen Retrieval-Augmented-Generation (RAG). Anstatt die Abfrage direkt in die Generierung einfließen zu lassen, führen wir einen expliziten Bewertungsschritt ein. Das LLM wird zunächst zur Beurteilung und Plausibilitätsprüfung der abgerufenen Kandidaten verwendet, und nur die als geeignet befundenen Ergebnisse dürfen die Generierung erweitern. Sie können sich das als Generation-Augmented Retrieval-Augmented Generation with Evaluation oder GARAGE vorstellen, denn wer weiß nicht ein gutes Akronym zu schätzen?</p><p>Welche anderen Anwendungsfälle könnten von diesem Muster profitieren? Systeme, die Vertrauen, Transparenz und nachvollziehbare Argumentation erfordern, sind natürliche Kandidaten. Die künftige Arbeit in diesem Bereich sollte sich als ebenso überzeugend erweisen wie die Ergebnisse, die wir hier gesehen haben, und ich bin gespannt, wie sich die Gemeinschaft weiter entwickelt.</p><h2>Nächste Schritte: Versuchen Sie es selbst</h2><p>Möchten Sie die ultimative Herausforderung in Aktion sehen? Schauen Sie sich das <a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/notebooks#:~:text=5%20minutes%20ago-,05_ultimate_challenge_v3.ipynb,-Initial%20public%20lab"><strong>Ultimate Challenge-Notebook</strong></a> für eine vollständige Anleitung mit realen Implementierungen, detaillierten Erklärungen und praktischen Beispielen an.</p><p>Die vollständige Pipeline zur Entitätsauflösung demonstriert die Kernkonzepte und die Architektur, die für den produktiven Einsatz erforderlich sind. Sie können es als Grundlage nutzen, um Systeme zu entwickeln, die Nachrichtenartikel überwachen, Erwähnungen von Entitäten verfolgen und Fragen beantworten, welche Entitäten in welchen Artikeln erscheinen – und das alles, während Transparenz und Erklärbarkeit erhalten bleiben.
</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/entity-resolution-elasticsearch-llm-challenges</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/entity-resolution-elasticsearch-llm-challenges</guid>
    <category><![CDATA[KI]]></category>
    <category><![CDATA[Hybride Suche]]></category>
    <dc:creator><![CDATA[Jessica Moszkowicz]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltc58be329ffebcd60/6a17043e47d49c0bc62d88ab/70fb0ff949f6db9ac9b8a28ecb4329ab915ebf46-720x420.png" length="0" type="image/png"/>
    <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[Entitätsauflösung mit Elasticsearch & LLMs, Teil 2: Abgleich von Entitäten mit LLM-Bewertung und semantischer Suche]]></title>
    <description><![CDATA[Verwendung semantischer Suche und transparenter LLM-Bewertung zur Entitätsauflösung in Elasticsearch.]]></description>
    <content:encoded><![CDATA[<p>In<a href="https://www.elastic.co/search-labs/blog/entity-resolution-llm-elasticsearch"> Teil 1</a> haben wir unsere Watchlist vorbereitet und Entitätserwähnungen extrahiert. Nun können wir die schwierige Frage beantworten: Auf welche Entität bezieht sich die Erwähnung eigentlich? Kehren wir zu dem Beispiel im ersten Blog dieser Serie zurück, das verdeutlicht, warum wir eine Entitätsauflösung benötigen: „Das Swift-Update ist da!“ Stellen Sie sich vor, diese Überschrift wird von etwas mehr Kontext begleitet:</p><ol><li><p>Das neue Swift-Update ist da! Entwickler sind gespannt darauf, die neuen Features auszuprobieren.</p></li><li><p>Das neue Swift-Update ist da! Das neue Album erscheint nächsten Monat.</p></li></ol><p>Mit diesem zusätzlichen Kontext sollten wir den Namen „Swift“ der richtigen Entität zuordnen können.</p><p>Im <a href="https://www.elastic.co/search-labs/blog/entity-resolution-llm-elasticsearch">vorherigen Beitrag</a> haben wir unsere Watchlist eingerichtet und die Entitäten mit zusätzlichem Kontext angereichert. Anhand unserer obigen Beispiele müssen wir mindestens die folgenden beiden Elemente in der Liste haben: Taylor Swift und Swift Programming Language. Wir haben auch besprochen, wie wir Entitätserwähnungen aus Text extrahieren. Beide Beispiele würden „Swift“ extrahieren. Mit diesen Zutaten, der angereicherten Watchlist und den extrahierten Entitäten, sind wir endlich bereit, den Star der Show vorzustellen: den Entitätsabgleich.</p><p><strong>Denken Sie daran:</strong> Dies ist ein pädagogischer Prototyp, der entwickelt wurde, um Konzepte zum Abgleich von Entitäten zu vermitteln. Produktionssysteme könnten verschiedene große Sprachmodelle (LLMs), benutzerdefinierte Abgleichsregeln, spezialisierte Bewertungspipelines oder Ensemble-Ansätze verwenden, die mehrere Abgleichsstrategien kombinieren.</p><h2>Das Problem: Warum der Abgleich schwierig ist</h2><p>Die menschliche Sprache ist eine bemerkenswerte Sache. Eine ihrer interessantesten Eigenschaften ist ihre unendliche Kreativität. Wir können eine unendliche Anzahl neuer Sätze erzeugen und verstehen. Ist es dann verwunderlich, dass exakte Übereinstimmungen bei der Entitätsauflösung selten sind? Autoren bemühen sich, kreativ zu sein, wenn sie können. Es wäre ziemlich mühsam, wenn wir immer die vollständigen Namen schreiben und lesen müssten, wenn eine Entität erwähnt wird. Exakte Übereinstimmungen sind zwar einfach, aber die Realität sieht so aus, dass wir einen ausgefeilteren Ansatz zur Entitätsauflösung benötigen: einen, der robust genug ist, um zumindest einen Teil der grenzenlosen Kreativität menschlicher Autoren zu bewältigen. Deshalb unterteilen wir das Problem in zwei Schritte: Mit Elasticsearch werden plausible Kandidaten skaliert abgerufen, und anschließend wird mit einem LLM beurteilt, ob sich diese Kandidaten tatsächlich auf dieselbe reale Entität beziehen.</p><h2>Die Lösung: Dreistufiger Abgleich mit transparenter LLM-Bewertung</h2><p>Wir befinden uns mitten in einem Paradigmenwechsel in der Art und Weise, wie wir Computer nutzen. Genauso wie der Aufstieg des Internets uns vom lokalen Computing zu einem global vernetzten Netzwerk geführt hat, verändert die generative KI grundlegend die Art und Weise, wie Inhalte, Code und Informationen erstellt werden. Tatsächlich wurde der pädagogische Prototyp, der diese Serie begleitet, fast ausschließlich „Vibe-codiert“ unter Verwendung eines LLMs mit sorgfältiger Eingabe durch den Autor. Das soll nicht heißen, dass LLMs die Produktivität der menschlichen Sprache erreicht haben oder erreichen werden, aber es bedeutet, dass wir jetzt eine leistungsstarke Ressource haben, die uns bei der Entitätsauflösung unterstützt.</p><p>Ein häufiges Muster, das wir mit GenAI verwenden, ist Retrieval-Augmented Generation (RAG). Hier bedeutet <em>Abrufen</em> das Abrufen von Entitätskandidaten (nicht das Generieren von Antworten), und das LLM wird ausschließlich für die Bewertung und Erklärung von Übereinstimmungen verwendet. Obwohl wir ein LLM um Unterstützung bei der End-to-End-Lösung von Entitäten bitten <em>könnten</em>, ist das sowohl zeitlich als auch finanziell kostspielig. RAG hilft LLMs bei ihrer Arbeit, indem es effizientere Wege nutzt, um dem LLM Kontext bereitzustellen, und ermöglicht es dem LLM so, effizient bei der Entitätsauflösung zu helfen.</p><p>Für den Abrufteil von RAG greifen wir erneut auf Elasticsearch zurück. Zunächst ermitteln wir potenzielle Übereinstimmungen mithilfe einer Kombination aus exaktem Abgleich, Abgleich mit Aliasen und hybrider Suche, die Stichwort- und semantische Suche kombiniert. Sobald wir diese potenziellen Übereinstimmungen gefunden haben, schicken wir sie an ein LLM zur Bewertung. Das LLM fungiert als der letzte Übereinstimmungsbewerter. Wir lassen das LLM außerdem seine Argumentation erläutern, was ein wichtiges Unterscheidungsmerkmal zu anderen Entitätsauflösungssystemen darstellt. Ohne diese Erklärungen ist die Entitätsauflösung eine Blackbox; mit ihnen können wir selbst sehen, warum eine Übereinstimmung Sinn ergibt.</p><h2>Schlüsselkonzepte: Drei-Schritte-Abgleich, hybride Suche und transparente LLM-Bewertung</h2><p><strong>Was ist der Drei-Schritte-Abgleich?</strong> Zu Beginn dieses Projekts haben wir die Hypothese aufgestellt, dass die semantische Suche ein entscheidender Bestandteil des Systems sein wird, aber nicht jeder Abgleich erfordert eine so ausgefeilte Suche. Um effizient Übereinstimmungen zu finden, gehen wir das Problem progressiv an. Zuerst überprüfen wir exakte Übereinstimmungen mit der Stichwortsuche. Wenn wir eine solche Übereinstimmung finden, ist unsere Arbeit getan und wir können weitermachen. Wenn der exakte Abgleich fehlschlägt, wenden wir uns dem Aliasabgleich zu. Im Prototyp wird der Einfachheit halber auch der Aliasabgleich mit Stichwörtern durchgeführt. In der Produktion können Sie diesen Schritt durch Normalisierung, Transliterationsregeln, Fuzzy Matching oder kuratierte Aliastabellen erweitern. Wenn wir in den ersten beiden Schritten immer noch keinen potenziellen Treffer gefunden haben, dann ist es an der Zeit, die semantische Suche über die hybride Suche von Elasticsearch mit Reciprocal Rank Fusion (RRF) einzuführen.</p><p><strong>Was ist die hybride Suche?</strong> In Elasticsearch können wir die semantische Suche nutzen, um bedeutungsvolle Übereinstimmungen zu finden, die Kontext berücksichtigen. Elasticsearch wird häufig für Vektorsuche und hybride Abfrageverfahren eingesetzt. Semantische Ähnlichkeit ist sehr aussagekräftig, aber sie ist kein Ersatz für strukturiertes Filtern (z. B. nach Zeitspannen, Orten oder Identifikatoren) und ist oft unnötig, wenn eine exakte Übereinstimmung verfügbar ist. Elasticsearch hat sich mit der lexikalischen Suche einen Namen gemacht, die sich hervorragend für Aufgaben eignet, bei denen die semantische Suche nicht ausreicht. Um beide Ansätze voll auszuschöpfen, verwenden wir die lexikalische Suche neben der semantischen Suche in einer einzigen hybriden Abfrage. Anschließend führen wir die Ergebnisse zusammen, um mithilfe von RRF die wahrscheinlichsten Übereinstimmungen zu finden. Im Prototyp werden die oberen zwei Ergebnisse zu potenziellen Übereinstimmungen, die zur LLM-Bewertung gesendet werden können.</p><p><strong>Warum die LLM-Bewertung?</strong> LLM-Bewertungen und -Erklärungen ermöglichen es unserem System, Ambiguität und Kontext transparent zu behandeln. Dies ist entscheidend für Fälle wie „der Präsident“, die sich auf mehrere Entitäten beziehen können, abhängig vom Kontext, aber es ermöglicht auch, dass Dinge wie Spitznamen und kulturelle Variationen gut im System funktionieren. Und schließlich müssen wir bei geschäftskritischen Aufgaben, wie der Identifizierung von Personen aus Sanktionslisten, wissen, warum ein Treffer akzeptiert wurde, um dem System vertrauen zu können. Entscheidend ist, dass das LLM nicht den gesamten Korpus durchsucht; es bewertet nur die kleine Anzahl von Kandidaten, die von Elasticsearch zurückgegeben werden.</p><h2>Reale Ergebnisse: Übereinstimmung mit der LLM-Argumentation</h2><p>Eine große Herausforderung bei jeder Aufgabe der natürlichen Sprachverarbeitung ist die Erstellung eines Referenzdokuments, eines „Lösungsschlüssels“, der uns mitteilt, was die zu erwartenden Ergebnisse sind. Ohne diese Grundlage ist es nahezu unmöglich zu beurteilen, wie gut ein System eine Aufgabe erfüllt. Doch die Erstellung eines solchen Dokuments kann ein mühsamer Prozess sein. Für den Prototyp zur Entitätsauflösung haben wir uns erneut an generative KI gewandt, um Unterstützung bei der Einrichtung von Testdaten zu erhalten.</p><p>Zunächst definierten wir mehrere Herausforderungstypen, wie Spitznamen und Transliteration, und baten dann das LLM, eine gestufte Sammlung von Datensätzen zu erstellen, die für das System zunehmend größer und anspruchsvoller werden sollte. Die Erstellung der Datensätze war weniger einfach, als man es sich erhoffen könnte. Das LLM hatte eine starke Neigung zum „Betrügen“, indem es zu einfach wurde, die richtige Antwort zu erhalten. Eine der Herausforderungen konzentrierte sich zum Beispiel auf den semantischen Kontext. Zu dieser Art gehörte beispielsweise die Auflösung von „russischer Autor“ zu „Leo Tolstoi“. Das LLM hat fälschlicherweise „russischer Autor“ als Alias für „Leo Tolstoi“ verwendet, was die Notwendigkeit einer Hybridsuche zum Finden der Übereinstimmung negierte.</p><p>Nach mehreren Refaktorierungen, um Probleme wie dieses zu beheben, hatten wir fünf Datensatzstufen, mit denen wir arbeiten konnten. Die Stufen 1–4 waren zunehmend größer und boten mehr Herausforderungstypen. Stufe 5 war der Datensatz der „ultimativen Herausforderung“, der aus den kniffligsten Beispielen aller Herausforderungstypen bestand. Sämtliche Testdaten sind im <a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/comprehensive_evaluation">umfassenden Auswertungsverzeichnis</a> verfügbar.</p><p>Zur Evaluierung unseres auf Eingabeaufforderungen basierenden Ansatzes zur Entitätsauflösung konzentrierten wir uns auf den Stufe-4-Datensatz. Ein wichtiger Hinweis ist, dass die Bewertung als kontrolliertes Experiment durchgeführt wurde, so dass wir uns auf die Qualität der Entitätsübereinstimmung konzentrieren konnten. Die Daten der Watchlist wurden vorab mit Kontext angereichert, und Entitäten wurden im Voraus aus dem Artikel extrahiert. Dadurch wurde sichergestellt, dass sich die Bewertung auf den Abgleich und nicht auf die Genauigkeit der Extraktion konzentrierte. Dies isoliert die Qualität der Übereinstimmungen; die Gesamtleistung hängt zusätzlich von der Trefferquote bei der Extraktion und der Qualität der Anreicherung ab.</p><h3>Evaluationsdatensatz</h3><p>Der Evaluierungsdatensatz der Stufe 4 bietet einen umfassenden Test der Leistungsfähigkeit des Systems:[1]</p><ul><li><p><strong>Watchlist-Entitäten:</strong> 66 Entitäten unterschiedlichster Art (Personen, Organisationen, Standorte).</p></li><li><p><strong>Testartikel:</strong> 69 Artikel über reale Szenarien zur Auflösung von Entitäten.</p></li><li><p><strong>Erwartete Übereinstimmungen:</strong> 206 erwartete Entitätsübereinstimmungen in allen Artikeln.</p></li><li><p><strong>Herausforderungstypen: </strong>15 verschiedene Herausforderungstypen, die verschiedene Aspekte der Entitätsauflösung prüfen.</p></li></ul><p>Die in den Datensätzen enthaltenen Herausforderungstypen sind:</p><ul><li><p><strong>Spitznamen:</strong> „Bob Smith“ → „Robert Smith“ (sieben Artikel).</p></li><li><p><strong>Titel und Ehrenbezeichnungen:</strong> „Dr. Sarah Williams“ → „Sarah Williams“ (fünf Artikel).</p></li><li><p><strong>Semantischer Kontext:</strong> „Russischer Autor“ → „Leo Tolstoi“ (acht Artikel).</p></li><li><p><strong>Mehrsprachige Namen:</strong> Umgang mit Namen in verschiedenen Skripten (sechs Artikel).</p></li><li><p><strong>Geschäftseinheiten:</strong> Variationen von Firmennamen (sieben Artikel).</p></li><li><p><strong>Referenzen von Führungskräften: </strong>„Microsoft CEO“ → „Satya Nadella“ (fünf Artikel).</p></li><li><p><strong>Politische Führungspersönlichkeiten:</strong> Titelbasierte Referenzen (fünf Artikel).</p></li><li><p><strong>Initialen:</strong> „J. Smith“ → „John Smith“ (drei Artikel).</p></li><li><p><strong>Varianten der Namensreihenfolge:</strong> Verschiedene Konventionen für die Namensreihenfolge (drei Artikel).</p></li><li><p><strong>Abgekürzte Namen:</strong> Teilweise Namensübereinstimmungen (drei Artikel).</p></li><li><p><strong>Namensaufteilung:</strong> Namen, die über Text verteilt sind (drei Artikel).</p></li><li><p><strong>Fehlende Leerzeichen/Bindestriche:</strong> Formatierungsabweichungen (zwei Artikel).</p></li><li><p><strong>Transliteration:</strong> Skriptübergreifender Namensabgleich (zwei Artikel).</p></li><li><p><strong>Kombinierte Herausforderungen:</strong> Mehrere Herausforderungen in einem Artikel (sechs Artikel).</p></li><li><p><strong>Komplexe Geschäftsbeziehungen:</strong> Hierarchische Geschäftsbeziehungen (fünf Artikel).</p></li></ul><p>Mal sehen, wie die auf Eingabeaufforderungen basierende Entitätsauflösung funktioniert hat.</p><h3>Gesamtleistung</h3><p>Die Ergebnisse zeigen, dass die LLM-gestützte Übereinstimmungsbewertung vielversprechend ist, aber sie offenbaren auch ein erhebliches Zuverlässigkeitsproblem. Da jedes Kandidatenpaar vom LLM bewertet werden muss, können Fehler im strukturierten Ausgang die Akzeptanz und das Erinnern unterdrücken, selbst wenn der Abruf gut funktioniert.</p><p>Metrik</p><p>Wert</p><p>Präzision</p><p>83,8 %</p><p>Abruf</p><p>62,6 %</p><p>F1-Score</p><p>71,7 %</p><p>Gesamtanzahl der Übereinstimmungen</p><p>344</p><p>LLM-Annahmequote</p><p>44,8 %</p><p>Fehlerquote</p><p>30,2 %</p><h3>Das Problem mit der Fehlerrate</h3><p>Zur Erinnerung: Der erste Schritt im Prototyp besteht darin, mithilfe von Elasticsearch potenzielle Übereinstimmungspaare zu erstellen. Jede dieser potenziellen Übereinstimmungen muss vom LLM bewertet werden. Um all diese Übereinstimmungen effizient zu verarbeiten, fassen wir die LLM-Aufrufe in Batches zusammen. Dies reduziert die API-Kosten und die Latenzzeit, aber es besteht auch ein erhöhtes Risiko, dass der Ausgang fehlerhaftes JSON enthält. Mit zunehmender Batchgröße wird das JSON länger und komplexer, wodurch die Wahrscheinlichkeit steigt, dass der LLM ungültiges JSON generiert. Hier liegt der Ursprung der Fehlerquote von 30 %. In der Bewertung haben wir eine Batch-Größe von fünf Übereinstimmungen pro Anfrage verwendet. Selbst bei dieser konservativen Batchgröße beobachten wir immer noch JSON-Parsing-Fehler, welche die Auswertungsergebnisse erheblich verfälschen.</p><h2>Nächstes Ziel: Optimierung der LLM-Integration</h2><p>Nachdem wir nun Entitäten mithilfe semantischer Suche und LLM-Bewertung abgeglichen haben, verfügen wir über eine vollständige Entitätsauflösungspipeline. Dieser Ansatz führt jedoch einen neuen Ausfallmodus ein, wenn die Einschätzung des Modells richtig ist, sein Ausgang jedoch nicht nutzbar ist. Wir können die LLM-Integration im Hinblick auf höhere Zuverlässigkeit und Kosteneffizienz optimieren. Im nächsten Beitrag werden wir untersuchen, wie Sie Funktionsaufrufe für einen strukturierten Ausgang verwenden können, der garantierte Struktur- und Typsicherheit bietet und gleichzeitig Fehler und Kosten reduziert.</p><h2>Probieren Sie es selbst aus</h2><p>Möchten Sie den Entitätsabgleich in Aktion sehen? Schauen Sie sich das <a href="https://github.com/jesslm/entity-resolution-lab-public/tree/main/notebooks#:~:text=5%20minutes%20ago-,03_entity_matching_v3.ipynb,-Initial%20public%20lab">Entitätsabgleich-Notizbuch</a> für eine vollständige Anleitung mit realen Implementierungen, detaillierten Erklärungen und praktischen Beispielen an. Das Notizbuch zeigt Ihnen genau, wie Sie Entitäten mithilfe der dreistufigen Suche, der hybriden Suche mit RRF und der LLM-gestützten Bewertung mit Schlussfolgerungen abgleichen.</p><p><strong>Denken Sie daran:</strong> Dies ist ein pädagogischer Prototyp, der entwickelt wurde, um die Konzepte zu vermitteln. Bei der Entwicklung von Produktionssystemen sollten zusätzliche Faktoren wie Modellauswahl, Kostenoptimierung, Latenzanforderungen, Qualitätsvalidierung, Fehlerbehandlung und Überwachung berücksichtigt werden, die in diesem lernorientierten Prototyp nicht behandelt werden.</p><h2>Anmerkungen</h2><ol><li><p>Diese Datensätze sind synthetisch und für Bildungszwecke konzipiert; sie nähern sich realen Herausforderungen an, sind aber nicht repräsentativ für eine einzelne Produktionsdomäne.</p></li></ol>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-semantic-search</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/elasticsearch-entity-resolution-llm-semantic-search</guid>
    <category><![CDATA[KI]]></category>
    <category><![CDATA[Hybride Suche]]></category>
    <dc:creator><![CDATA[Jessica Moszkowicz]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltefc59243d9990405/6a17056ab339d5778f769ebf/473ca4357c7d60f690edbd2a844acda169aca9c3-720x420.jpg" length="0" type="image/jpeg"/>
    <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>