Der moderne Data Science Stack für die Informationsbeschaffung

Entdecken Sie, wie Lucidworks ein robustes und skalierbares, KI-gestütztes Erlebnis aufbaut, ohne die Front-End-Nutzer mit der Komplexität der Plattform zu überfordern.

Die für den Betrieb von Data Science erforderlichen Technologiepakete entwickeln sich ständig weiter und werden immer schneller. Dies ist eine aufregende und zugleich nervenaufreibende Zeit, vor allem, wenn Sie für die Architektur von Systemen zur Unterstützung der weitreichenden Möglichkeiten von Data Science im Unternehmen zuständig sind.

Unabhängig davon, ob Sie Produkt- oder Entwicklungsleiter bei einem Softwareanbieter oder Unternehmensarchitekt bei einem kundenorientierten Unternehmen sind, müssen Sie Entscheidungen über die Architekturkomponenten und Topologien zur Unterstützung von Datenspeicherung, Datenbewegung, KI-Berechnungen, API-Integration und Dev-Ops-Prozessen für eine Vielzahl von Anwendungen treffen.

Bei Lucidworks haben wir in den letzten zehn Jahren skalierbare, verteilte Systeme für die Informationsbeschaffung (IR) in Hunderten von Unternehmen entwickelt und implementiert. Diese Systeme kombinieren verschiedene Arten von Rechenparadigmen, Architekturkomponenten und KI-Prozesse, die in maßgeschneiderte Prozesse und Arbeitsabläufe implementiert werden.

In diesem Blog werden wir über unsere Erfahrungen beim Aufbau dieser Systeme berichten und darüber, wie wir sie weiterentwickelt haben, um auf die veränderten KI-Bedürfnisse im IR-Bereich zu reagieren. Die größte Herausforderung bestand darin, ein robustes, skalierbares und vielseitiges Backend zu entwickeln, das die Front-End-Erfahrung unterstützt, ohne den Nutzern der Plattform diese Komplexität vor Augen zu führen.

Ein bisschen Geschichte

Die Lucidworks Platform (Fusion), wie wir sie heute kennen, hat sich als „Open Core“-Stack entwickelt, der hauptsächlich auf Apache Solr als Hauptsuchindex basiert. Im Laufe der Zeit wurden der Plattform weitere Komponenten hinzugefügt, um mehr Intelligenz in die Entwicklung von IR-Anwendungen zu integrieren. Der erste Vorstoß in die Intelligenz, der über die Stichwortsuche hinausging, war das Hinzufügen von ML-Modellen, um die Verwendung von Signalen zu verbessern und die Ergebnisse und die Relevanz auf der Grundlage des Benutzerverhaltens zu erhöhen. Um die Aufnahme von Signalen und ML-Jobs besser handhaben zu können, integrierte Lucidworks Anfang 2017 Apache Spark.

Die nächste Revision der Plattform war Fusion 4, die eine Menge Verbesserungen in Bezug auf die Stabilität der Unternehmensplattform mit sich brachte. Aus der Perspektive von KI/ML/Analytik wurde Fusion 4 hinzugefügt:

  • leistungsstarke ML für das Verstehen von Abfragen (Rewrites),
  • die Möglichkeit, Geschäftsregeln zu überlagern, um die ML-Ausgabe mit Domain-Override zu ergänzen,
  • und eine leistungsstarke und skalierbare SQL-Engine, die auf Apache Solr aufbaut.

Bis zu diesem Zeitpunkt war die Architektur von Fusion ein mehrschichtiger, monolithischer Stack, der zwar stabil war, aber Probleme mit der Elastizität, der Aufrüstbarkeit und dem Fehlen bestimmter Funktionen auf der ML/AI-Seite aufwies.

September 2019 war der Meilenstein, an dem die neue re-faktorisierte, servicebasierte Fusion-Architektur erreicht wurde. Abgesehen von den offensichtlichen Vorteilen dieser Cloud-nativen Architektur in Bezug auf die Pflege und Versorgung der Plattform eröffnete die dienstbasierte Architektur der Fusion-Plattform eine Menge Innovationen bei der Art und Weise, wie wir die KI-Funktionalität unterstützen.

Wir sind jetzt in der Lage, die Denkweise des „offenen Kerns“ und der „Services“ auf die nächste Ebene zu bringen. Wir können uns direkt darauf konzentrieren, wie Fusion KI-Workflows verwalten kann, insbesondere die Einbindung externer Modelle, das Training und die Bereitstellung von Modellen, und das alles in einer Dev-ops-orientierten Cloud-Umgebung. Wir können jetzt die besten verfügbaren Dienste – kommerzielle oder Open-Source-Dienste – für die anstehenden Aufgaben auswählen und sie in Fusion integrieren.

Künstliche Intelligenz in der Fusion

Die Vision besteht darin, die Entwicklung intelligenter KI-Anwendungen durch den Einsatz von intuitiven Low-Code-Umgebungen zu beschleunigen, die auf Prozessen und Workflows beruhen, in der Fusion-Sprache „Jobs“ und „Pipelines“ genannt. Wie wir alle wissen, erfordert ein KI-Prozess, der für die Benutzer einfach aussieht, nicht nur eine gut gestaltete Benutzeroberfläche, sondern auch ein gut gestaltetes Back-End. Konzentrieren wir uns nun auf die architektonischen Entscheidungen, die wir getroffen haben, um eine intuitive und reichhaltige Erfahrung für den gesamten KI-Prozess in Fusion zu bieten.

Die KI-gestützte Suche ist ein Prozess, der eine Mischung aus Workload-Profilen und Workflows für die Einbettung von KI-Funktionen direkt in die IR-Anwendungen erfordert. IR hat im Allgemeinen zwei Stufen:

1. Indizierung (Datenaufnahme und -verarbeitung), die in der Regel eine Mischung aus Batch- und Fast-Echtzeit-Verarbeitung ist, und

2. Abfragen, die in Echtzeit erfolgen, wobei die Geschwindigkeit in Anfragen pro Sekunde (RPS) gemessen wird.

Die Einbindung von KI in diese Phasen setzt eine Trainings-/Lernphase für die Modellentwicklung voraus und dann den Einsatz der Intelligenz in den Index- oder Abfragephasen nach Bedarf. Dies erfordert ein robustes verteiltes System mit Komponenten, die vollständig integriert arbeiten und dennoch einzeln verwaltet werden können. Wir haben Fusion so konzipiert, dass es diese Komplexität nahtlos bewältigt und es den Benutzern und Administratoren der Plattform ermöglicht, ihre Zeit mit wertschöpfenden Aufgaben zu verbringen.

Skalierung der Infrastruktur mit den besten Services

Der dienstleistungsbasierte Ansatz der Architektur hat es uns ermöglicht, die besten Dienste für die jeweilige Aufgabe anzubieten. Nachfolgend finden Sie eine Übersicht über die Dienste, auf die wir eingehen werden:

Wir verwenden das Konzept der „Skalierung“ als allgemeine Referenz für die Skalierung der Infrastruktur, aber auch für den Prozess, wie sie aufgebaut, bereitgestellt und unterstützt wird. Bei der Entwicklung der Plattform und ihrer Komponenten haben wir uns auf die folgenden Skalierungsprozesse konzentriert:

  • Infrastruktur skalieren
  • Skala Lexikalische Suche
  • Analytik skalieren
  • Skalieren Sie Ihre Datenwissenschaft
  • Skalenvektor-Suche
  • Workflow skalieren

Infrastruktur skalieren: Kubernetes

Anfang 2019 wechselten wir von einer mehrstufigen, monolithischen Topologie zu einer cloud-nativen, servicebasierten Architektur. Diese neue Architektur musste mehrere Workload-Profile unterstützen, darunter Suche, Analytik, KI und Systemkommunikation, sowie mehrere entkoppelte Dienste, von denen einige den Status beibehalten mussten, um die SLAs der geschäftskritischen IR zu erfüllen. Kubernetes war die klare Option als Container-Orchestrator für die Verwaltung dieser Art von Hochleistungsarchitektur.

Unter Verwendung von Kubernetes als grundlegender Container-Plattform haben wir die Fusion-Dienste entwickelt und die Arbeitslasten in separaten Knotenpools geplant, die es den Benutzern ermöglichen, sie je nach Bedarf der Anwendung separat hoch- und herunterzuskalieren. So werden die Echtzeit-Abfragen und ML-Modelle, die zur Laufzeit benötigt werden, alle auf dem Abfrage-Knotenpool gehostet und skaliert. Alle Batch-Arbeitslasten wie Aggregationen, Modelltraining und die dafür benötigten Daten werden auf dem Analyseknoten-Pool untergebracht. Wenn wir auf diesen Knoten zusätzliche Feuerkraft benötigen, können wir dem Cluster GPU-Instanzen hinzufügen und die Verarbeitung für Deep Learning-Modelle und Empfehlungen beschleunigen. Schließlich werden die Systemdienste auf dem Systemknoten-Pool isoliert.

Kubernetes ist die Standardimplementierung der Fusion-Plattform. Alle Dienste, die die KI- und Analyseverarbeitung unterstützen, werden von Kubernetes containerisiert und orchestriert. Sobald diese Grundlage geschaffen war, wurde die Integration von Kubernetes-nativen Diensten rationalisiert.

Skalieren Sie die lexikalische (Schlüsselwort-) Suche: Apache Solr

Apache Solr ist das Backbone-Framework, das die lexikalische Suche (Stichwortsuche) für Fusion unterstützt. Apache Solr wurde im Laufe der Jahre mehrfach verbessert, um es schneller und skalierbarer für großen Echtzeitverkehr zu machen. Konzepte wie Sharding und Datenreplikation im Cluster wurden von der Solr-Community bereits gelöst.

Analytik skalieren: Apache Spark und Fusion SQL

Eine Suchmaschine produziert in der Produktion eine Menge Daten. Abfragen, Sitzungen, Klicks und Protokolle werden gespeichert und können für die kontinuierliche Verbesserung der Suchintelligenz verwendet werden. Die Ausführung von Datenpipelines, die die Daten aggregieren und für KI oder andere Prozessabläufe zur Verfügung stellen, war entscheidend. Wir brauchten eine skalierbare Analyse-Engine.

Apache Spark wurde schon früh in die Entwicklung unserer Plattform einbezogen, um Apache Solr zu ergänzen. Wir haben auch die ML-Funktionen von Apache Spark für Fusion genutzt, obwohl wir, wie wir im nächsten Abschnitt erklären werden, die Frameworks, die wir für die ML-Funktionen von Fusion verwenden, erweitert haben.

Als immer mehr Unternehmen Apache Solr als Speicher für Dokumente, URLs usw. verwendeten, nutzte Lucidworks die leistungsstarke SQL-Schnittstelle zur Abfrage der Apache Solr-Daten. Fusion SQL hat sich im Laufe der Zeit zu einem leistungsstarken Abfrageprogramm entwickelt, das die Vorteile von Apache Solr, Streaming Expressions und bei Bedarf auch Apache Spark nutzt.

Mit der Fusion SQL-Engine bietet Fusion eine Ad-hoc-Datenexploration mit der vertrauten Syntax und überlagert gleichzeitig leistungsstarke statistische Analyse- und Suchfunktionen direkt in SQL. Auf Fusion SQL kann in Tools wie Jupyter-Notebooks bis hin zu Visualisierungsplattformen wie Superset zugegriffen werden.

Datenwissenschaft skalieren: ML Service und Seldon Core

KI muss in die Suchprozesse eingebettet werden. Die Suche ist aus der Perspektive der KI-Bereitstellung interessant, weil sie die Phasen der Indizierung und Abfrage umfasst. Wie oben beschrieben, haben diese Phasen unterschiedliche Anforderungen in Bezug auf Antwortzeiten und Integration.

Die KI-Modelle müssen nicht nur hochpräzise sein, sondern auch flexibel und schlank, um sowohl in der Stapelverarbeitung als auch in Echtzeit-Suchanwendungen mit einer Gleichzeitigkeit von bis zu 2000 Abfragen pro Sekunde eingesetzt werden zu können.

Die Fortschritte bei den Methoden, die in verschiedenen KI-Entwicklungstools und Frameworks (Tensorflow, PyTorch) zur Verfügung stehen, waren der Auslöser für unsere Ingenieure, einen steckbaren Dienst zu entwickeln, der es uns ermöglicht, zusätzlich zu den bereits in den Spark-Bibliotheken verfügbaren Optionen weitere Optionen anzubieten. Dieser Dienst eröffnete uns drei leistungsstarke Möglichkeiten:

Eigene Modelle erstellen und in Fusion einbetten:

Unser AI Labs Team nutzt die volle Flexibilität der Entwicklung von Modellen in Python, Tensorflow oder Pytorch und veröffentlicht die Modelle dann ganz einfach über den ML-Service in den Fusion Pipelines. Die Daten- und Parametereingaben, die für das Training und die Veröffentlichung der Modelle benötigt werden, sind direkt in die intuitive, programmierfreundliche Benutzeroberfläche von Fusion integriert, wobei intelligente Vorgaben die Erstellung und Bereitstellung von Modellen in Fusion beschleunigen.

Vorgefertigte Modelle der Industrie in die Fusion einbinden:

Wenn wir über denselben ML-Service Modelle finden, die mit umfangreichen Datensätzen aus der Community trainiert wurden, stellen wir diese direkt in Fusion zur Verfügung, indem wir auf kuratierte Container-Images zugreifen, die Benutzer einfach herunterladen und in Fusion veröffentlichen können. Dies beschleunigt die Wertschöpfung von KI-gestützten Suchanwendungen und behebt Kaltstartprobleme wie das Fehlen von Daten oder das Fehlen der für die Erstellung robuster Modelle erforderlichen Datenmenge.

Erlauben Sie Organisationen, Ihr eigenes Modell (BYOM) in Fusion einzubringen:

Die Informationsbeschaffung wird für die meisten Unternehmen zu einer sehr wichtigen Komponente der digitalen Transformation, sowohl auf Unternehmens- als auch auf E-Commerce-Seite. Data-Science-Teams stürzen sich zunehmend ins Getümmel und experimentieren mit einer Mischung aus hausgemachten Methoden und Community-Modellen. Da die letzte Meile der Modellbereitstellung in einem Geschäftsprozess – wie bei geschäftskritischen Suchanwendungen – eine der längsten im KI-Lebenszyklus ist, bietet der Fusion ML-Service einen rationalisierten Prozess, der diese letzte Etappe der Bereitstellung für Datenwissenschaftler beschleunigt.

Rationalisierung der Modellbereitstellung:

Das Rückgrat für die Bereitstellung von Modellen in unseren Kubernetes-basierten Umgebungen ist Seldon Core. Damit sind wir in der Lage, Modelle mit einer Vielzahl von Frameworks wie PyTorch, Tensorflow oder JAX auf konsistente Weise bereitzustellen. Außerdem können wir die Bereitstellungen mit Standard-Kubernetes-Richtlinien skalieren.

Skalen-Vektor-Suche: Milvus

Die Suchmethoden haben sich in den letzten Jahren rasant weiterentwickelt. Wortübereinstimmung und frequenzbasierte lexikalische (Schlüsselwort-) Suche wurden mit Signalen aus dem Nutzerverhalten angereichert, um die Relevanz zu erhöhen.

Diese Methoden funktionieren in bestimmten Fällen sehr gut. Wenn es jedoch darum geht, die Absicht mittlerer bis längerer Suchanfragen zu interpretieren (die eher an Fragen als an Schlüsselwörter erinnern) und relevante Antworten oder Abschnitte von Dokumenten, die eine ähnliche Bedeutung haben, wiederzugeben, sind neue Methoden erforderlich. Hier ist die Vektorsuche eine leistungsstarke Ergänzung. Diese Methode ist ein rechenintensiver Ansatz, bei dem tiefe neuronale Netze verwendet werden, um Modelle gegen Daten zu trainieren und diese semantischen/vektoriellen Ähnlichkeiten zwischen Werken, Sätzen und Phrasen zu verstehen.

Sobald die Modelle trainiert sind, müssen sie in der für die Suche erforderlichen Größe und Geschwindigkeit eingesetzt werden. Vektorsuchmodelle können zur Indexierungszeit verwendet werden, um Einbettungen oder Vektordarstellungen der eingehenden Daten zu erstellen. Zur Abfragezeit nehmen dieselben Modelle die eingehende Abfrage, stellen sie als Vektor dar und vergleichen sie dann mit den verfügbaren, bereits indizierten Vektoren, um das ähnlichste Dokument oder den ähnlichsten Teil des Dokuments als Ergebnis für die Abfrage zu liefern.

Diese Methoden werden erfolgreich in Anwendungen für Frage- und Antwortsysteme wie Smart Answers, inhaltsbasierte Empfehlungssysteme, wenn wir eine Kaltstart-Situation ohne historische Daten haben, oder zur Lösung der Null-Ergebnis-Suche als Ersatz für die lexikalische Suche eingesetzt. Diese Anwendungsfälle setzen die Fähigkeit voraus, Millionen, wenn nicht Milliarden von Vektoren in Millisekunden-Geschwindigkeit zu verarbeiten. Dafür brauchten wir eine leistungsstarke und skalierbare Embedding-Engine.

Das war Milvus. Wir haben diese von Kubernetes stammende Embedding-Engine als Service in Fusion integriert, um das Volumen und die Geschwindigkeit zu unterstützen, die für die Bereitstellung vektorbasierter Deep Learning-Modelle erforderlich sind. Der Milvus-Ingenieur speichert die Modelle und Einbettungen und arbeitet Hand in Hand mit unserem Dokumentenindex (SOLR), um die ähnlichsten Dokumentendetails für jede Abfrage zu liefern.

Alles unter einen Hut bringen

Diese Services sollen die KI-Kapazitäten erweitern, wenn es um die Einsetzbarkeit von KI-Methoden, die Skalierbarkeit der Infrastruktur, die für die Ausführung von Hochleistungs-Suchanwendungen erforderlich ist, sowie um Prozesse geht, die die Bereitstellung von Modellen für Produktionsabläufe beschleunigen.

Das folgende Diagramm fasst zusammen, wie die Dienste den oben beschriebenen KI-Fluss überlagern:

Als Anbieter und Technologiepartner in diesem dynamischen Bereich der Suche und IR hat Lucidworks mit Unternehmen zusammengearbeitet, um die Wertschöpfungszeit für ihre Suchanwendungen zu verkürzen. Das Back-End, das das Front-End-Erlebnis unterstützt, muss robust, skalierbar und vielseitig sein, ohne die Komplexität für die Benutzer zu erhöhen.

Unsere Cloud-native, serviceorientierte Architektur ermöglichte es uns, ein hochintelligentes Echtzeitsystem zu entwickeln, das auf Workflows und eingebetteter KI basiert. Mit dieser grundlegenden Investition plant Lucidworks eine aggressive Entwicklung hin zu SaaS-Angeboten und insbesondere zu KI-gestützten Geschäftsanwendungen, die OOTB funktionieren und sich auf Bereiche wie Wissensmanagement, Kundensupport und Produkterkundung konzentrieren. Möchten Sie mehr darüber erfahren, wohin wir uns als nächstes wenden werden? Sehen Sie sich diesen Beitrag an:„Die nächste Grenze: Connected Experience Cloud„.

You Might Also Like

B2B-KI-Benchmarkstudie 2025: Was wir in den Schützengräben sehen

Laden Sie die B2B-KI-Benchmark-Highlights 2025 von Lucidworks herunter. Sehen Sie sich die...

Read More

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Quick Links