Zusammenfassung
- Behandelt HCL Informix VectorBlade für native Vektorspeicherung und -suche.
- Zeigt, wie man RAG-Workflows mit Betriebsdaten erstellt.
- Schlägt eine Brücke zwischen traditionellen Datenbanken und modernen Generative AI .
- Bietet fachkundige Beratung durch Informix-Architekten und -Strategen.
Kapitel
Hallo zusammen und vielen Dank, dass ihr an diesem Webinar teilnehmt. Mein Name ist JC und ich bin Chefarchitekt bei Informix. Für diejenigen, die mich noch nicht kennen: Ich arbeite seit 1991 bei Informix – einer magischen Zeit, als noch Dinosaurier die Erde bevölkerten.
Ich wurde im Frontline-Support eingestellt, nicht als Programmierer. Als ich später in die Entwicklung wechselte, hatte ich also bereits alle Ebenen des Supports durchlaufen. Natürlich besteht meine Aufgabe jetzt darin, mich auf Innovation zu konzentrieren.
Aber ich gehe gerne davon aus, dass mir – nachdem ich einen Großteil der Mitte der 90er Jahre mit einem Pager an der Hüfte verbracht und Tag und Nacht ausgefallene Systeme wieder zum Laufen gebracht habe – die Softwarequalität wirklich genauso am Herzen liegt wie Innovation. Eine wichtige Innovation, die Informix damals einführte, war die Erweiterbarkeit. Unter den vier großen Datenbanken – Informix, Oracle, DB2 und Sybase – war Microsoft damals noch nicht der Akteur, zu dem es erst einige Jahre später wurde.
Von diesen vier war IVS jedoch tatsächlich das erste System, das es externen Entwicklern ermöglichte, eigene Datentypen sowie eigenen C- oder Java zu erstellen, der innerhalb des Servers als vollwertiger Bestandteil ausgeführt werden konnte. Wir nannten jedes zusammenhängende Bündel aus Nutzer Typen und Nutzer Routinen ein „Datablade“, und viele Entwickler nutzten diese Funktion ausgiebig. Wir taten das ebenfalls.
Wir haben eine Handvoll eigener Datablades geschrieben, die auch 30 Jahre später noch verfügbar und beliebt sind. Wenn Sie IVS im Jahr 2026 herunterladen, erhalten Sie im Lieferumfang ein Blade für die einfache Textsuche, ein Geodaten-Blade und ein Zeitreihen-Blade. Anfang dieses Jahres haben wir uns nun zum Ziel gesetzt, IVS zu einer hervorragenden Plattform für die native Speicherung und Nutzung von Vektoren zu machen – einem komplexen Datentyp, der zwar technisch gesehen nicht neu ist, dessen Bedeutung für die Welt jedoch relativ neu ist.
Und uns war sofort klar, dass wir dies am besten erreichen konnten, indem wir unsere eigene Erweiterungstechnologie nutzten. Nun, fünf Monate später, sind wir hier. Wir haben es geschafft.
Und heute stellen wir das HCL Informix Vector Blade vor. Ich möchte gleich zu Beginn darauf hinweisen, dass dieses Blade nicht mit einem IBM Informix-Backend kompatibel ist. Es läuft ausschließlich mit HCL Informix und wird von keiner Serverversion unter 15.0.1 unterstützt.
Ich werde Ihnen etwas später die genaue Mindestversion nennen, die wir empfehlen. In der Zwischenzeit steht ein Team bereit, das Ihnen das Thema gerne vorstellen möchte, also lassen Sie uns gleich loslegen. Wir haben den Datenstrategen, IBM-Champion und langjährigen Informix-Champion Jean George-Perrin, bekannt als JGP, zu Gast, der Ihnen erklären wird, was Vektoren sind und warum sie in Anwendungen der künstlichen Intelligenz so nützlich sind.
Dann werde ich das Wort ergreifen und darüber sprechen, welche Möglichkeiten Ihnen unsere Lösung in dieser neuen Welt eröffnet, und anschließend gibt es eine Demo Scott Norris, einem Außendiensttechniker bei Informix und rundum großartigen Kerl. Während all das läuft, könnt ihr gerne Fragen stellen, und das Team wird sein Bestes tun, um diese live zu beantworten. Nutzt bitte die Q&A-Funktion und das entsprechende Fenster in Zoom anstelle des Chats, wenn möglich, denn dort werden wir nach den Fragen Ausschau halten.
Nochmals vielen Dank, dass ihr dabei seid, und JGP, bitte übernehme du jetzt. Alles klar.
Hallo zusammen. Ich bin auch schon seit einer Weile in der Informix-Welt unterwegs. Okay?
Also nicht so lange wie JC und wahrscheinlich auch nicht so prominent wie JC, aber ich habe meine Migration Informix bereits 1997 bei einer Firma namens 4js Development Tools begonnen. Und es fing an … Etwas, das ich gerne über Informix erzähle, ist, dass ich davor nur Kenntnisse über Datenbanken auf Hochschulniveau hatte und sie wirklich gehasst habe. Und dann schlug das Karma zu, und es ließ mich nicht mehr los.
Als ich also vor fast genau einem Jahr zu Actian kam, war es wirklich ein interessanter Moment, wieder Teil dieser fantastischen Informix-Familie zu sein. Und ich freue mich sehr, dass dieses Webinar um 1:00 Uhr morgens in Sydney so gut besucht ist.
Okay. Warum beschäftigen wir uns also mit Vektoren? Okay.
Die ganze Idee dahinter ist also, dass Vektoren die Grundlage für Ähnlichkeiten bilden, und das ist der beste Weg, den wir bisher gefunden haben, um das zu erreichen – zumindest im Moment, wenn es darum geht, verschiedene Dinge miteinander zu vergleichen. Okay? Zum Beispiel beim Vergleich von Texten oder so – ein Welpe ist ein Hund.
Und genau diese Art von Vergleichen müssen wir anstellen, um die Eingabeaufforderungen, die Fragen und den semantischen Ansatz bei der KI-Entwicklung besser zu verstehen. Es gibt also tatsächlich zwei Möglichkeiten, dies zu tun. Die Algorithmen selbst sind, wie wir noch sehen werden, nicht neu.
Und es ist immer dasselbe: Big Data , mehr Analysen durchzuführen. Jetzt haben wir die Rechenleistung KI tatsächlich so einzusetzen, wie wir es uns schon immer erträumt haben. Okay?
Es gibt also eigentlich zwei Möglichkeiten, das zu bewerkstelligen. Die derzeitige oder gängige Vorgehensweise besteht darin, dies tatsächlich in einer NoSQL-Datenbank zu erledigen, also eine Art Vektordatenbank zu installieren, die man herunterlädt, installiert und verwalten . Das ist eine eigenständige Lösung.
Man muss Pipelines aufbauen und warten, und wir alle wissen, dass Pipelines von Natur aus anfällig sind. Man hat doppelte Daten. Man muss sich in ein neues System und ein neues Sicherheitsmodell für diese Datenbanken einarbeiten.
Und natürlich gehört es zum Lebenszyklus all dessen, dass man Backups erstellen muss, und natürlich muss man auch die Infrastruktur bereitstellen. So wird es derzeit also gehandhabt. Oder man vertraut einfach auf das, was man hat.
Und wenn Sie Informix derzeit nutzen, dann wahrscheinlich deshalb, weil Sie schon seit Langem darauf vertrauen, und Sie können einfach genau dieselben Vorgänge ausführen, als würden Sie die Engine nutzen. Okay? Das ist ein Nutzen was JC gerade über diese undurchsichtigen Typen gesagt hat, die tatsächlich Teil unserer Strategie sind.
Nächste Folie. Also, wir wissen ja alle – okay, wir wissen alle –, dass KI eine Herausforderung ist und dass es nicht einfach ist, den ROI von KI zu ermitteln. Als ChatGPT auf den Markt kam, haben wir außerdem die Faszination erlebt, eine Frage zu stellen und eine gute Antwort zu erhalten.
Ich bitte „Code Code“, etwas Code zu generieren, und erhalte dabei gute Ergebnisse. Aber wenn es um Unternehmensdaten und Unternehmenswissen geht, ist es tatsächlich sehr schwierig, etwas zu erhalten, okay? Und diese Zahlen sind schon ein bisschen beängstigend.
Okay? Du hast doch sicher das MIT-Zitat gesehen, wonach GenAI in 95 % der Fälle keinen ROI GenAI . Und du weißt sicher auch, dass McKinsey gesagt hat, dass die Einführung von Agenten sehr schwierig ist.
Sie sehen ja, dass Gartner davon ausgeht, dass 40 % des Programms aufgegeben werden, okay? Das birgt also wirklich eine große Gefahr. Die Herausforderung liegt auf der Hand: Wollen Sie da wirklich noch eine neue Datenbank oder eine neue Datenbankstrategie hinzufügen?
Das sind also wirklich die Fragen, die man sich stellen kann, okay? Und wenn wir uns den Eisberg ansehen, den Eisberg, den wir alle schon oft gesehen haben: 20 % der Daten sind strukturiert, und das ist eine Schätzung, die Gartner schon seit langer Zeit im Umlauf hat.
Und die 80 % der unstrukturierten Daten. Okay? Es gab also schon immer den Mythos, dass wir die unstrukturierten Daten in strukturierte Daten umwandeln könnten, aber das passiert nicht, okay?
Und die Sache ist die: Niemand macht das. Eine Möglichkeit wäre also, all diese unstrukturierten Elemente – all diese unstrukturierten Texte, Bilder und so weiter – tatsächlich in eine Datenbank zu speichern, in der man dann nahtlos Abfragen durchführen kann, so wie man es bei einer normalen SQL-Abfrage tun würde. Okay?
Das ist also auch einer der Vorteile davon. Und wie JC bereits sagte, haben die BLADE-Technologie, die das Herzstück von Informix bildet, und die Gestaltung der Architektur es ermöglicht, viele verschiedene Modelle zu unterstützen. Okay?
Ich erinnere mich an zahlreiche Bemühungen im Bereich Zeitreihen, was Informix zu einer sehr beliebten Wahl in der Telekommunikationsbranche machte. Oder auch daran, dass Informix eine der ersten Datenbanken war, die XML nativ unterstützte. Das war zu einer Zeit, als XML gerade im Kommen war.
Ich mag XML immer noch. Das alles bedeutet also im Grunde, dass man eine Datenbank nicht aufgrund eines aktuellen Trends auswählt. Okay?
So nach dem Motto: „Oh, wir arbeiten mit Vektordaten, also richten wir eine neue Datenbank für Vektordaten ein.“ „Oh, wir arbeiten mit relationalen Daten. Richten wir eine neue Datenbank für relationale Daten ein.“ Okay? So können wir die vorhandenen Ressourcen und die vorhandenen Daten wirklich nutzen, ohne sie verschieben zu müssen und so weiter.
Das ist also der eigentliche Grund, warum es jetzt dieses neue achte Datenmodell in dieser Architektur, dieser Informix-Architektur, gibt. Und das sieht man, wenn man es mit verschiedenen Produkten vergleicht, oder? Hier habe ich gerade vier beliebte Datenbanken verglichen.
Also, da ist unser geliebtes Informix, und dann gibt es noch die anderen Anbieter, okay? Wir waren also immer erfolgreich, weil wir die technischen und technologischen Aspekte dank der vorhandenen Architektur richtig umgesetzt haben. Okay.
Wenn man zum Beispiel über Replikation spricht, ist diese Funktion – unabhängig von der Art des Produkts – fast schon standardmäßig enthalten. Und das macht einen Unterschied. Ja, manche sind Open Source, manche sind kostenlos, aber es geht hier nicht nur um die anfallenden Lizenzkosten, sondern auch um den kognitiven Aufwand, der erforderlich ist, um zu verstehen, wie diese neuen Produkte tatsächlich funktionieren.
Und wenn man mal darüber nachdenkt, ist das für Informix eigentlich nichts Neues. Wir haben damit angefangen, und ich erinnere mich, dass ich damals schon mit Excalibur herumgespielt habe. Es war – wie so vieles bei Informix – seiner Zeit wahrscheinlich voraus und kam ein wenig früher, als wir die eigentlichen Anwendungsfälle und die besonders beliebten Anwendungsfälle hinzugefügt haben.
Mit dieser neuen Generation der Indizierung ist es uns nun gelungen, eine äußerst wettbewerbsfähige Vektorarchitektur für Ihre Datenanforderungen zu entwickeln. Okay. Ich denke, das haben wir erreicht.
Das ist ziemlich beeindruckend, und ich freue mich schon ein bisschen darauf, euch daran teilhaben zu lassen und ein bisschen mehr über die technischen Details zu erfahren, die JC gleich erläutern wird, sowie über die Demo Scott direkt im Anschluss zeigen wird. Also, JC, zurück zu dir. Okay.
Wie ich bereits erwähnt habe, ist die Erweiterbarkeit eine Stärke von Informix. Und um ehrlich zu sein, hat das Hinzufügen eines nativen Vektordatentyps zu IDS etwa einen Tag gedauert. Es handelt sich dabei einfach um einen undurchsichtigen benutzerdefinierten Datentyp (UDT) mit variabler Größe, je nachdem, wie viele Dimensionen Ihr Vektor hat.
Und es wird intern gespeichert, so wie man es erwarten würde. Es handelt sich um ein Array aus vier Byte großen Float-Werten, dem eine Anzahl von Dimensionen vorangestellt ist. Wir haben die Größe so gewählt, dass die maximale Anzahl an Dimensionen derzeit bei 1536 liegt, was mit dem „Three Small Vector“-Format für Text-Embeddings von OpenAI übereinstimmt.
Sollte jedoch Bedarf an größeren Vektoren bestehen, können wir den Typ problemlos erweitern – der übrigens „Lvector_embedding“ heißt. Ich bin sehr gespannt darauf zu sehen, wie die Nutzer dieses Moduls einsetzen und was ihnen ihrer Meinung nach noch fehlt. Wir haben einige sehr kreative und clevere Kunden, daher habe ich keinen Zweifel daran, dass wir in den nächsten sechs Monaten ohnehin einige interessante Verbesserungen vornehmen werden.
Erstellen Sie den benutzerdefinierten Datentyp `Lvector_embedding` sowie einige unterstützende Funktionen. Sie benötigen zwei Konvertierungsroutinen, die von einem `VARCHAR` in einen Vektor und zurück konvertieren. Außerdem benötigen Sie Ein- und Ausgaberoutinen sowie Routinen zum Senden und Empfangen über das Netzwerk.
Dieser Teil war relativ einfach. Ich weiß nicht, ob es einen Tag gedauert hat, aber es war wahrscheinlich fast ein Tag. Etwas aufwendiger ist es, Vektoren mit Tausenden von Dimensionen zu indizieren und diese effizient zu durchsuchen.
Anstatt also das Rad neu zu erfinden, haben wir uns entschieden, für einen Großteil dieser aufwendigen Arbeit eine Open-Source-Bibliothek zu nutzen. Google bietet eine an. Es gibt auch eine von Microsoft.
Letztendlich haben wir uns jedoch für LanceDB entschieden. LanceDB gibt es zwar als eigenständiges Datenbankprodukt, aber darum geht es hier nicht. Es gibt außerdem eine C-Bibliothek, die einen großen Teil der Funktionen des eigenständigen Produkts unterstützt, und genau diese haben wir in die Blade integriert.
Diese Bibliothek ist bereits recht ausgereift und bietet eine Vielzahl von Indextypen wie beispielsweise „IVF-flat“ sowie eine interessante Kombination aus IVF und HNSW. Und natürlich die drei wichtigsten Methoden zur Distanzberechnung: euklidisch, Kosinus und Skalarprodukt. Also haben wir die LanceDB-Bibliothek mit einer eigenen Schnittstellenschicht, bestehend aus etwa 30 UDRs, zu einer gemeinsamen Bibliothek namens „Lvector.bld“ zusammengefasst.
Wie alle Blades wird auch dieses unter dem Verzeichnis „Informix extend“ installiert. Sobald das Blade installiert ist, wird es automatisch registriert, sofern Sie HCL Informix Version 15.0.1.10 oder höher verwenden. Sie können es auch mit Version .9 nutzen, vielleicht sogar schon mit einer früheren Version.
Allerdings funktioniert die automatische Registrierung in diesen früheren Versionen von 15.0.1 nicht ganz so reibungslos. Das bedeutet: Wenn Ihre Anwendung zum ersten Mal eine dieser 30 UDRs für eine bestimmte Datenbank aufruft, führt die Engine automatisch einige Schritte durch. Zunächst führt sie das Skript „objects.sql“ aus, das Teil des Blades ist, und die Definitionen für diese UDRs sowie die Lvector-Einbettungs-UDT werden den Systemkatalogen hinzugefügt.
Falls Sie noch keine VP der Klasse „Lvec“ laufen haben, wird automatisch eine erstellt. Selbstverständlich empfehlen wir Ihnen, eine Zeile in Ihre Konfigurationsdatei einzufügen – eine Zeile der Klasse „VP“, die eine „Lvec“-Klasse mit der gewünschten Anzahl an VPs enthält, die Sie ausführen möchten. Zu Beginn werden Sie jedoch wahrscheinlich noch keine haben, daher erstellen wir automatisch eine für Sie.
Anschließend wird die Lvector-Shared-Library geladen und dynamisch in die Lvec-VPs eingebunden. Ab diesem Zeitpunkt ist Ihr Blade aktiv und einsatzbereit. Was können Sie also damit machen?
Nun, hier ist ein mögliches Szenario. Man kann beispielsweise eine Informix-Tabelle anlegen, die eine Spalte vom Typ „Lvector_embedding“ enthält. Diese Tabelle verfügt außerdem über eine „serial“- oder „big serial“-Spalte, die jeden Vektor eindeutig identifiziert, und das ist ziemlich wichtig.
Außerdem enthält sie eine varchar-Spalte namens Metadaten“. Die Spalte muss tatsächlich Metadaten heißen. Dort kann beliebiger Text gespeichert werden, aber normalerweise trägt man dort Kategorien oder Stichwörter ein, nach denen man möglicherweise filtern möchte.
Darüber hinaus kann die Tabelle Spalten enthalten, in denen das jeweils eingebettet Objekt gespeichert ist, beispielsweise eine `varchar`-Spalte für einen Textabschnitt oder eine `blob`-Spalte oder etwas in dieser Art. Dies ist nur ein einfaches Beispiel. Sie können also Tausende oder Millionen von Vektoren in diese Tabelle laden und jeden Vektor anhand der Spalte „serial“ identifizieren.
Sie können diese Vektoren anschließend indizieren und nach den nächsten Nachbarn durchsuchen, indem Sie eine Spalte oder eine Lance-Tabelle erstellen und diese per Flash-Synchronisierung mit Ihrer Informix-Tabelle verknüpfen. Dadurch werden alle Vektoren sowie die IDs und Metadaten sehr schnell Metadaten die Lance-Tabelle kopiert, die dann indiziert und durchsucht werden kann. Sie können die Lance-Tabelle eigenständig durchsuchen.
Tut mir leid, Nick, wir wollen zurückgehen. Wir sind noch nicht bei der nächsten Folie. Tut mir leid.
Geh noch ein bisschen weiter zurück. Noch einmal. Okay.
Also bitte zur nächsten Folie. Hier stehen wir gerade. Das ist der aktuelle Stand.
Sie können also direkt in der „Lance“-Tabelle suchen oder diese Tabelle natürlich mit der herkömmlichen Informix-Tabelle oder einer beliebigen Anzahl von Informix-Tabellen verknüpfen, um beispielsweise die X nächsten Nachbarn eines bestimmten Vektors abzurufen – zusammen mit den Texten, Bildern oder anderen Objekten, die diesen Nachbarn zugeordnet sind. Sie können hybride Abfragen durchführen. Tatsächlich sind diese sogar auf mehreren Ebenen möglich.
Beispielsweise speichert die Lance-Tabelle, wie bereits erwähnt, die Metadaten mit den Vektoren, und diese Metadaten ihrerseits indiziert und als Filterkriterium verwendet werden. Sie können auch nach einer oder mehreren Spalten in Ihrer Informix-Tabelle filtern, wenn Sie eine Verknüpfung durchführen. Der Zweck dabei wäre beispielsweise, die 10 nächsten Nachbarn eines Vektors sowohl anhand der Semantik als auch anhand bestimmter Schlüsselwörter zu ermitteln, um diese Liste der Nachbarn anschließend durch Filtern nach beliebigen Kriterien aus der oder den Informix-Tabellen abzurufen.
Diese Verfeinerung mithilfe von Hybridabfragen kann die Halluzinationen der KI – von denen wir wissen, dass sie ein Problem darstellen – erheblich reduzieren, und mit diesem „Vector Blade“ ist das kinderleicht. Woher bekommt man nun all diese Vektoren? In welchem Teil Ihrer Anwendung findet die Einbettung statt?
Nun, das liegt ganz bei Ihnen. Sie können Ihre eigenen Einbettungen mitbringen, und IDS wird diese gerne indizieren, durchsuchen und speichern – zusammen mit allen zugehörigen Objekten wie Bildern, Ton, Text oder was auch immer –, so wie es das bisher schon immer getan hat. Der Einfachheit halber haben wir jedoch auch eine UDR namens „L vector_embed“ in das Blade integriert, die einen `varchar`-Wert als Argument entgegennimmt, einbetten String bei OpenAI einbetten und einen Vektor mit 1.536 Dimensionen zurückgibt.
Die einzige Voraussetzung ist, dass Sie über einen OpenAI-API-Schlüssel verfügen und diesen Schlüssel über einen neuen Konfigurationsparameter an IDS übermitteln. Nächste Folie, bitte. Hier sehen Sie ein anschauliches Beispiel für einen konkreten RAG use case den „Blade“.
Ihr Unternehmen verfügt über eine Vielzahl vertraulicher Dokumente. Dabei kann es sich um technische Spezifikationen, interne Richtlinien oder alles andere handeln, was für Sie oder Ihr Unternehmen wichtig ist und das Sie nicht im Internet veröffentlichen möchten. Sie geben diese Dokumente in eine Anwendung ein, die den Text in Abschnitte unterteilt, d. h., ein trainiertes Modell zerlegt das Dokument in sich überlappende Abschnitte.
Jeder Chunk wird dann eingebettet einem Modell Ihrer Wahl eingebettet , und Sie verwenden das Vector Blade, um die resultierenden Vektoren zusammen mit ihren Chunks in IDS zu speichern und zu indizieren. Nächste Folie, bitte. Nun ist es an der Zeit, diese Vektoren zu durchsuchen.
Nehmen wir also an, ein Nutzer eine Eingabe in natürlicher Sprache in Ihre App Nutzer , die diese Eingabe mithilfe desselben Modells einbettet. Sie übergeben den daraus resultierenden Vektor an IDS und fragen beispielsweise nach den 10 nächsten Nachbarn. Sie möchten keine Vektoren als Ergebnis zurückerhalten.
Was Sie benötigen, sind Vektor-IDs, mit denen Sie dann die zugehörigen Textabschnitte in einer Informix-Tabelle finden können. Diese Textabschnitte übergeben Sie anschließend an ein LLM, das die Antwort formatiert, die dann dem Nutzer angezeigt wird – so in etwa. Nächste Folie, bitte.
Das Tolle an dieser Komponente – worauf JGP bereits hingewiesen hat – ist, dass sie nur ein einziger, vollständig integrierter Teil des IDS-Gesamtkonzepts ist. Alle hier beschriebenen Vorgänge könnten in einer Ecke Ihrer Produktionsdatenbank ablaufen, ohne die Leistung anderer Produktionsaufgaben zu beeinträchtigen. Sie benötigen keine separate Datenbank.
Alle Ihre relationalen Daten können mit von der Partie sein, und alle verstehen sich gut. Nächste Folie, bitte. Und so können Sie loslegen.
Vermutlich haben Sie HL Informix 15.0.1.10 oder höher bereits installiert und in Betrieb, und Sie haben die TAR-Datei für das Blade heruntergeladen. Es handelt sich dabei eigentlich nur um eine TAR-Datei, die Sie zur Erweiterung in Informix installieren. Sie müssen einige Einstellungen vornehmen, beispielsweise Ihren OpenAI-API-Schlüssel, falls Sie mit dem Blade Embeddings erstellen möchten.
Anschließend registrieren Sie das Blade in Ihrer Datenbank, und schon kann es losgehen. Sie können das Blade manuell registrieren oder die automatische Registrierung vornehmen lassen, wie ich bereits erwähnt habe. Im Verzeichnis „Informix Direct Extend“ finden Sie ein Unterverzeichnis namens „samples“, in dem wir einige Beispiel-SQL-Skripte bereitgestellt haben, die Sie sich ansehen und sogar ausführen können.
An dieser Stelle könnten Sie damit beginnen, mit den rund 30 UDRs unter Verwendung des Datenbankzugriffs zu experimentieren. Und von dort aus können Sie mit der Entwicklung Ihrer Anwendung beginnen. Nächste Folie, bitte.
Das ist also ein etwas komplexeres Ablaufdiagramm, das einige zusätzliche Punkte aufzeigt. Bevor Sie Ihre Anwendung online stellen, haben Sie wahrscheinlich bereits eine Menge Daten eingelesen. Diese Phase ist dort unten dargestellt.
Sie haben Vektoren für Text und Bilder erstellt und diese Einbettungen zusammen mit den zugehörigen Objekten mithilfe des Blades in Informix geladen. Anschließend haben Sie die Vektoren indiziert. Wenn Sie nun einen Index für eine Lance-Tabelle erstellen, die Vektoren enthält, wird die Tabelle dadurch nicht statisch.
Sie können Vektoren problemlos einfügen und löschen, und Ihre Suchanfragen nutzen weiterhin den Index. Nach der Erfassungsphase starten Sie also Ihre Anwendung, und ein Kunde sucht nach einem Produkt anhand einer Beschreibung in natürlicher Sprache statt anhand eines bestimmten Produktnamens. „Zeigen Sie mir Ihre günstigsten Mountainbikes mit Scheibenbremsen“, zum Beispiel.
Diese Eingabeaufforderung wird eingebettet dem von Ihnen gewählten Modell eingebettet . Der daraus resultierende Vektor wird anschließend in einer abfragen Informix verwendet, die die IDs der von Ihrer Anwendung angeforderten nächsten Nachbarn zurückgibt. Diese IDs werden für einen Join verwendet, um die relevantesten Einträge in Ihrem Katalog zu ermitteln, und anschließend wird die Liste nach den Kosten sortiert.
Theoretisch lässt sich all das in einer einzigen abfragen erledigen. Die Ergebnisse werden dann an den Nutzer zurückgesendet, oder man könnte auch ein LLM einsetzen, um die Ergebnisse vor der Anzeige zu formatieren und zu ergänzen. Das entspricht im Wesentlichen dem, was wir haben, und nun ist Scott bereit, Ihnen eine Demo zu zeigen, Demo genau dasselbe veranschaulicht.
Los geht’s, Scott. Alles klar.
Danke, JC. Okay. Ich werde jetzt meinen Bildschirm freigeben.
Nein. Mach weiter mit der nächsten – eigentlich, Nick, mach bitte mit der nächsten Folie weiter. Tut mir leid.
Okay. Wie JC bereits erwähnt hat, möchten wir sicherstellen, dass wir Informix 15.01.10 oder höher verwenden. Bislang haben wir umfangreiche Tests unter Red Hat Linux durchgeführt.
Sie möchten sich bei OpenAI anmelden und einen Schlüssel erstellen. Oft wird gefragt, ob damit Kosten verbunden sind. Sie können jedoch einen kostenlosen Schlüssel erhalten.
Ich glaube, ich habe etwa 10 Dollar bezahlt, und dafür bekommt man eine Menge Einbettungen. Man sollte darauf achten, dass man genügend Speicherplatz hat. Als wir diesen Vorgang durchliefen, stieß ich an die Zwei-Gigabyte-Grenze.
Also wären zwei Gigabyte und mehr zu bevorzugen. Und dann Ihr Archiv. Nächste Folie.
Okay. Wie JC bereits erwähnt hat: Um das zu bewerkstelligen, holt ihr euch von uns die TAR-Datei mit den Vektor-Blade-Einbettungen. Ihr exportiert all diese Befehle in eure Shell und ladet dann in eurer on-config all diese Informationen vorab.
Und dann, wenn wir damit anfangen, werden Sie die Engine registrieren. Also weiter, zur nächsten Folie. Und hier sind noch einmal ein paar Beispiel-SQL-Skripte.
Ich werde mir das notieren. Wir überarbeiten das gerade, also orientieren Sie sich bitte nicht wörtlich an diesen Folien. Wir werden Ihnen anschließend eine aktualisierte Präsentation zusenden.
Nächste Folie. Und hier noch ein paar allgemeine Beispiele dafür, wie wir einige der Einbettungen vornehmen. Auch hier gilt: Wenn euch eine der UDRs auffällt, beginnt mit dem L-Vektor, einem Unterstrich und dem jeweiligen Befehl.
Na gut. Und die nächste Folie. Und die nächste Folie.
Und nun möchte ich euch diese Demo zeigen. Okay, ich werde hier meinen gesamten Bildschirm freigeben. Können das alle sehen?
Okay. Danke. Ja.
Na gut. Also, zunächst haben wir erwähnt, dass wir tatsächlich eine Reihe von Proben haben, die mit der Klinge in Zusammenhang stehen. Deshalb möchte ich ganz offen mit euch sein und euch einige der von uns entnommenen Proben zeigen.
Im Grunde genommen bedeutet die Einrichtung des Blades also, dass wir eine Datenbank anlegen, in die wir alle unsere neuen Informationen einspeichern. Wir führen die `PREPARE`-Anweisung aus. Dadurch wird das Blade für die Verwendung registriert.
Und dann werden wir uns einige CREATE-Anweisungen ansehen. Also, lassen Sie mich das machen. Also werden wir das jetzt tun.
Drückt mir alle die Daumen, dass die Datenbankgötter heute gnädig mit mir sind. Wie ihr seht, haben wir hier ein paar Datenbanken, also wählen wir einfach eine aus und führen dann einige unserer Beispiele aus. Zunächst geht es also nur um die Einrichtung.
Wir führen also gerade die Einrichtung durch, und wir werden damit fortfahren. Im Grunde geht es dabei darum, alle Informationen in das Blade einzugeben, das Blade zu registrieren und alles einzurichten. Als Nächstes werde ich meinen Schlüssel festlegen – auch hier handelt es sich wieder um den OpenAI-Schlüssel.
Das kannst du in deiner Konfigurationsdatei vornehmen. Mir ist aufgefallen, dass ich jedes Mal, wenn ich eine neue Datenbank angelegt habe, diesen Schlüssel gewissermaßen zurücksetzen oder sicherstellen musste, dass er zugeordnet ist. Also ordne ich diesen Schlüssel einfach zu und führe das Ganze dann aus.
Dadurch wird das Blade automatisch für den Einsatz registriert. Jetzt können wir es also nutzen. Einer der Schritte, die wir gerade abgeschlossen haben, war die Einrichtung aller UDRs im Blade.
Schauen wir uns das doch mal an. Natürlich. Danke, Demo .
Nach dem Wort „from“ fehlt ein Leerzeichen. Ja, okay. Das Wort „from“.
Oh, danke. Und wo denn noch? Hm.
Na gut, also… – Ich glaube, der Zeilenumbruch ist durcheinander geraten. Ja. So sieht man es live, die Debugging-SQL von… – Ah, ja.
Damit können wir hier unseren Lebensunterhalt verdienen. Na gut. Im Grunde zeigt uns das hier also einfach alle LDRs an, die mit diesem Rotorblatt verbunden sind.
Wie JC bereits erwähnt hat, gibt es dort mehrere Funktionen: die üblichen Befehle zum Erstellen von Tabellen, zum Aufbau und zur Synchronisierung. Du teilst also deinen Bildschirm nicht mehr, Scott. Wirklich?
Na gut. Wir sehen dein hübsches Gesicht. Hmm.
Ich sehe Scott. Ich sehe seinen Bildschirm. Ja.
Na gut. Er versucht wohl, uns seine Demo zu zeigen. Nein, siehst du den Bildschirm?
Du siehst den Bildschirm also nicht? Ja, ich sehe den Datenbankzugriff und – Okay. Ja.
Ach, wirklich? Ja. Das sehe ich aber nicht so.
JC, du bringst mich ganz aus der Fassung. Ich glaube schon, tut mir leid. Aus irgendeinem Grund sehe ich nur dich.
Na gut. Kein Problem. Na gut.
Also, lasst uns hier mal loslegen. Und wir werden einfach eine einfache Demo machen. Im Grunde genommen werden wir hier also eine Tabelle erstellen.
Wir werden nun eine Lanzen- oder Vektortabelle anlegen. Der Name lautet „Demodocs“. Und noch ein kleiner Hinweis: Falls Sie diese Skripte ausführen und dazu neigen, sie immer wieder zu wiederholen – wenn Sie die Datenbank löschen, werden die Vektortabellen dabei nicht entfernt. Sie müssen diese also ebenfalls löschen, damit Sie wieder bei Null anfangen können.
Aber das sind Dinge, auf die ich gestoßen bin, als wir das durchgesehen haben. Na gut. Es gibt das also bereits.
Na dann, los geht’s. Mal sehen. Tja.
Nachdem ich mich mit all dem herumgeschlagen habe und du … nicht hinter mir aufgeräumt hast. Na gut.
Wie auch immer. Das hat also konkret dazu geführt, dass mehrere Vektoreinträge in unsere Vektortabelle aufgenommen wurden. Wir haben also ein paar Anmerkungen zu den Zahlenwerten gemacht, und jetzt führen wir das aus und speichern unsere Arbeit.
Wenn wir also aus dieser Tabelle eine Auswahl treffen, sollten wir unsere nächstgelegenen Einstiegspunkte sehen, die in diesem Fall nur drei sind. Nun werde ich das natürlich wieder vermasseln, da es ja dort steht. Na toll.
Na gut. So viel zum Thema, das im Voraus zu planen und… Ja.
Mal sehen. Ich habe es hier unten. Tut mir leid. Das ist das andere.
Okay. Warte mal kurz. Also, wie ich schon gesagt habe, ich...
Das habe ich. Die sind alle angelegt, deshalb stürzt es bei mir ab. Na gut.
Nun ja … Eine interessante Sache, die man dabei beachten sollte, während Scott das durchgeht, ist, dass Scott in diesem Szenario keine eigene Einbettung erstellt, sodass man dort die OpenAI-Schlüssel nicht verwendet. Okay, also … – Richtig.
In diesem Szenario sieht man also den Vektor und diese begrenzte Zeichenfolge dort. Richtig. Und man muss OpenAI überhaupt nicht nutzen, um die Klinge zu verwenden.
Es ist einfach – ja … das ist praktisch. Mm-hmm.
Bei mir läuft nichts davon. Also, was machen wir jetzt? Das tut mir leid.
Bin in einen seltsamen Zustand geraten. Nein. Tisch.
Was ist denn jetzt los? Na gut, ich habe das total vermasselt. Tja, ja, das habe ich tatsächlich vermasselt.
Entschuldigung. DBA. Also, Scott, gibt es für dich keine Möglichkeit, DocuLens vorzuführen?
Ja, nicht DocuLens, weil der DocuLens-Container beschädigt wurde. Oh. Also, wenn er das nicht ganz schnell aufrufen kann, dann können wir das zeigen.
Das könnte ich vielleicht. Mal sehen. Während du das klärst, findet doch eine Demo Kims Informix-Party statt, oder?
Kim, du kannst gerne im Chat einen Hinweis auf deine bevorstehende Veranstaltung in Kuala Lumpur einfügen. Dann sind wir dort schon vorbereitet. Ja.
In der letzten Woche war es ein ziemliches Durcheinander, hier alles in Ordnung zu bringen. Und eigentlich lässt sich das mit DocuLens etwas besser veranschaulichen, aber … Ich starte das Programm gerade und kann es euch vielleicht in einer Sekunde zeigen.
Mein Server fährt gerade hoch. Er ist fast bereit. Wir haben hier Demo eines Dokumentenanalysators Demo einem Container, genauer gesagt in einem Docker-Container.
Also starte ich das gerade. Während JC das startet. In diesem ersten Beispiel – und noch einmal: Wir greifen nicht auf OpenAI zu, sondern fügen all diese Anweisungen in unsere Vektortabelle ein.
Der Befehl, den ich gerade ausgeführt habe, wird die drei nächstgelegenen dieser Zeilen aus dieser Vektortabelle abrufen. Und da es nur drei sind, erhalten wir hier wieder die drei Antworten. Okay.
Also werde ich mal versuchen, das zu teilen. Okay. Ich höre jetzt wieder auf, das zu teilen.
Wie gesagt, ich bin noch ein Zoom-Neuling, mal sehen, wie gut das klappt. Zoom fordert eine Umgehung an. Bitte zulassen.
Bildschirme. Ich werde meinen gesamten Bildschirm freigeben. Können wir das sehen, JC?
Ja. Wir sehen Docker. Okay.
Wie ich bereits sagte, läuft bei mir ein Container mit einem Informix-Server und dem Blade. Und das hier ist nur eine kleine Demo einer meiner Kollegen schnell zusammengestellt hat, um das Blade zu nutzen, und mit der ich Dokumente hochladen kann. Ich werde also Dokumente hochladen von…
Mal sehen. Ich versuche es mal mit einem Ordner. Vermutlich handelt es sich hierbei um Dokumente, die urheberrechtlich Ihrer Organisation vorbehalten sind.
In meinem Fall habe ich einige Skripte, die ich geschrieben habe, und einige allgemeine Designspezifikationen für Funktionen in Informix. Und das soll nur sozusagen einen Fall simulieren, in dem man proprietäre Dokumente hat, die man nicht im Internet veröffentlichen möchte. Ups.
Das hat nicht geklappt. Tja, anscheinend habe ich ähnlich wenig Glück wie du, Scott. Ich versuche es noch einmal.
Ich werde es mit einem einzelnen Dokument versuchen.
Ja, wenn du es mit einer einzelnen Person versuchen würdest, würde das funktionieren. Oder mit ein paar Personen. Also im Moment ist es…
Oh. Es könnte sein, dass mein Netzwerk nicht richtig eingerichtet ist. Gehen wir einfach mal davon aus.
Demo dieser Demo die Dokumente jedoch hochgeladen und in Blöcke unterteilt, diese Blöcke wurden dann vektorisiert, und anschließend konnte man Abfragen in natürlicher Sprache daran stellen – und das funktioniert tatsächlich ziemlich gut. Derzeit kann ich die Dokumente jedoch nicht hochladen, wahrscheinlich aufgrund eines Netzwerkproblems. Ich fürchte, wir müssen das daher leider aufgeben.
Aber kommen wir nun zu… Ich werde die Bildschirmfreigabe beenden, und dann machen wir mit der Fragerunde weiter. Ich habe hier einige Fragen, die Scott und ich beantworten werden.
Ich sehe, dass da etwas von John ist. Ja, wir haben ein paar Fragen aus dem eigentlichen Frage-und-Antwort-Fenster. Darauf komme ich gleich noch zurück.
Also, Scott, kannst du sagen, wie viel das Vector Blade kostet? Das ist wahrscheinlich eine naheliegende Frage, die die Leute stellen werden. Richtig.
Das Vector Blade ist also im Lieferumfang von Informix 15 enthalten. Es fallen also keine Kosten dafür an. Okay.
Und eine weitere Frage ist, welche Version von Informix das Vector Blade unterstützt. Darauf bin ich ja schon kurz eingegangen. Es muss HL Informix sein, und zwar Version 15.01.
Wir empfehlen nun die Version 15.01.10 oder höher, da wir in dieser Version die automatische Registrierung programmiert haben. Sie können das Blade zwar auch mit einer früheren Version manuell registrieren, aber es ist einfach viel bequemer, die Version zu verwenden, die die automatische Registrierung unterstützt. Mit älteren Versionen wie 14.10 oder 12.10 funktioniert dies nicht.
Und wenn Sie also eine ältere Version nutzen, könnte das ein triftiger Grund für ein Upgrade sein. Also zur nächsten Frage: Verfügt IBM Informix über diese Funktion? Diese Frage ist an Sie gerichtet, Scott.
Ja. IBM Informix verfügt also nicht über das „Vector Blade“, und wir werden auch nicht zulassen, dass es innerhalb von IBM Informix verwendet wird. Okay.
Gibt es eine einfache Anleitung, mit der ich die Fähigkeiten des Vector Blade ausprobieren kann? Ja. Wie ich bereits sagte: Wenn Sie das Blade installieren, entpacken Sie diese Datei in das Verzeichnis „Informix“, um die Erweiterung zu installieren. Dort finden Sie ein Unterverzeichnis namens „samples“, das vier Beispielskripte enthält, die wirklich funktionieren – das verspreche ich Ihnen.
Ja. Und sie werden immer komplexer und interessanter. Das erste Programm erkennt also lediglich die Klinge und führt eine sehr einfache Aktion aus.
Wenn du bei Nummer vier angelangt bist, machst du Folgendes: Du verwendest Trigger, um Zeilen in deine Informix-Tabelle einzufügen und diese automatisch mit deiner Lance-Tabelle zu synchronisieren, und das ist noch interessanter. Also – Richtig. Weiter.
Ja. Dazu nur kurz: Ja, sie funktionieren alle, denn ich habe sie heute Morgen und gestern Abend getestet, und alle haben bei mir schon vor der Sitzung hier funktioniert. Ja.
So ist das Leben wohl. Also, Scott, wie bekomme ich – für dich – eine Testlizenz? Genau.
Also, und vielleicht möchtest du das im Chat posten, Nick, aber wir haben eine E-Mail-Adresse, über die du dich an uns wenden kannst, um eine Testlizenz zu erhalten, und die geht an die Produktmanagerin, Emily Taylor, und an mich, und wir werden uns dann bei dir melden und die Sache ins Rollen bringen. Okay. Ich beantworte hier gerade ein paar Fragen.
John fragte: „Gibt es bei HCL ein Äquivalent zur IBM Informix Developer Edition?“ Auf der IBM-Seite gibt es also diese Editionen, während wir auf der HCL-Seite in der Regel keine vergleichbare Struktur haben. Ja. Und die Antwort auf diese Frage lautet: Nein, das haben wir nicht.
Bei uns ist die HCL Informix-Version immer die „Advanced Enterprise“-Version, vergleichbar mit der von IBM. HCL unterstützt und vertreibt jedoch nur diese eine Version. Okay.
Colin fragt: „Werden sich die Open-Source-Abhängigkeiten auf ISVs und OEMs auswirken, die möglicherweise Lösungen auf Basis des Vector Blade verkaufen?“ Das geht, fürchte ich, über meinen Zuständigkeitsbereich hinaus. Natürlich ist LanceDB, die von uns verwendete C-Bibliothek, eine Open-Source-Bibliothek, und wir haben eine normale Apache-Lizenz für diese Open-Source-Bibliothek. Scott oder jemand anderes aus der Diskussionsrunde: Wisst ihr, ob sich dies auf den Weiterverkauf auswirkt?
Das tue ich nicht. Das tue ich nicht. Das tue ich nicht.
Wir müssen uns noch einmal bei Colin melden. Wir können das aufgreifen und weiterverfolgen. Ich hoffe wirklich nicht.
Aber wir werden uns das mal ansehen. Ja, wir bieten Support für das Produkt, okay? Also werden wir den Support dafür nicht auslagern, wenn er Teil des Produkts ist, oder?
Stimmt. Ja. Ja.
Okay, ich sehe keine weiteren Fragen mehr, also … Oh, da ist noch eine von John. „Wie wollen Sie neue HCL-Informix-Kunden gewinnen, ohne eine Entwicklerversion anzubieten, insbesondere mit Blick auf den Vector Blade, der doch ein wichtiges Alleinstellungsmerkmal zu sein scheint?“ Diese Frage überlasse ich Scott.
Ja, das kann ich übernehmen. Also, uns ist klar, dass, wenn wir das tun – da wir nur diese eine Version verkaufen und jeder Nutzer anders Nutzer , wir uns jedoch sehr bemüht haben, sicherzustellen, dass wir Ihnen dieses Produkt bereitstellen können. Das ist also ein Thema, bei dem ich Ihnen gerne weiterhelfe und die Besonderheiten Ihrer Umgebungen verstehen möchte.
Aber, wie mir mein Managementteam schon mehrmals gesagt hat: Lass dich nicht von den Kosten davon abhalten, einen Deal abzuschließen. Also… Und wie Kevin bereits angemerkt hat – das ist ein ernst gemeintes Versprechen, Scott.
Okay? Oh ja. Na ja, du hast ja keine Ahnung, wie viel ich hinter den Kulissen jongliere, damit hier alles läuft.
Also, so hat Emily John Ritson zitiert: „Jeder interessierte Nutzer kann eine kostenlose Testlizenz für einen begrenzten Zeitraum erhalten. Was man dabei testen kann, ist die HCL Informix Enterprise Edition.“ Das ist ja irgendwie cool. Mm-hmm.
Aber das ist nur für begrenzte Zeit. Richtig. „Hast du dieses Datenblatt in deiner Muttersprache ausprobiert?“ Oh, vielleicht geht es also um andere Sprachen als Englisch.
Das ist eine wirklich gute Frage. Tatsächlich hat mir JGP diese Frage gestellt, und ich hatte vor, es mal mit einer französischen Eingabe zu versuchen, bin aber nie dazu gekommen. Das habe ich noch nicht ausprobiert.
Das hängt davon ab – wir nutzen das LLM von OpenAI und deren Embedding-Modell, und ich vermute, dass es nicht nur auf Englisch beschränkt ist, aber das habe ich noch nicht ausprobiert. Das ist eine wirklich gute Frage. Das werde ich mal ausprobieren müssen.
Okay. Als ich dort die Frage von Boyko gelesen habe, habe ich – als er von „Muttersprache“ sprach – an Informix 4GL oder so etwas gedacht. Ja.
Also würde ich davon ausgehen, dass es mit 4GL funktioniert. Also… Also, JGP, du hast das OpenAI-Embedding-Modell oder LLM noch nicht mit Französisch ausprobiert, oder?
Nein, das habe ich nicht. Und ich kann es kaum erwarten, die Klinge selbst auszuprobieren. Aber ich war in letzter Zeit ein bisschen zu viel unterwegs – Ja ...
um das zu tun.
Aber das steht ganz oben auf meiner Wunschliste. Also, Boyko – ich hoffe, ich spreche deinen Namen richtig aus. Boyko hat erwähnt, dass er Bulgarisch lernen möchte.
Das geht sogar noch einen Schritt weiter. Ich wüsste zwar nicht, wie man das testen könnte, aber es besteht die Möglichkeit, dass es funktioniert. Wie wir bei der Nutzung dieser KI-Tools feststellen, tun sie manchmal Dinge, die wir nicht von ihnen erwarten.
Sie machen das besser, als wir erwartet haben. Also müssen wir viele verschiedene Sprachen ausprobieren. Es sieht so aus, als wären die Fragen hier ein wenig abgeklungen.
Und natürlich gibt es bei unserer Demo noch ein paar kleine Probleme, die wir beheben müssen. Aber hoffentlich haben Sie einen Eindruck davon bekommen, was das Blade leistet, und Sie haben Interesse daran, es auszuprobieren, und unser Webinar hat Ihnen gefallen. Ich denke, wir können das Webinar nun beenden.
Vielen Dank an alle fürs Kommen. Danke. Tschüss.
Bis bald. Und alles Gute—