27.03.2024

Wie funktioniert KI?

Wie funktioniert künstliche Intelligenz, welche Rolle spielt sie bei Suchen und was haben Vektoren damit zu tun? Diese Fragen beantwortet Nicolas Karrer leicht erklärt in unserer fünften Folge Web Wednesday. 

Wie funktioniert künstliche Intelligenz und welche Rolle spielt sie bei Suchen? Das klären wir im Gespräch zusammen mit Nicolas Karrer, der gerade seine Masterarbeit im Bereich KI und Baureglementen schreibt und als Lead Application Engineer bei Snowflake Productions arbeitet.

Das erwartet dich in dieser Folge:

  • Nicolas Masterarbeit - KI und Bauregelmente
  • Suchfunktionen im Allgemeinen
  • Wie funktioniert eine Suche?
  • Was ist eine Vektorsuche?
  • Was hat das mit KI zu tun und wie funktioniert eine KI?
  • Was versteht man unter einem Large Language Model?
  • Was hat KI für Schwächen?
  • Was gibt es für Möglichkeiten, diese Schwächen zu beheben?
Die Folge zum anhören findet ihr auf Spotify oder Apple Podcast
 
Oder ihr hört euch die Folge direkt hier an:
Wie funktioniert künstliche Intelligenz mit Nicolas Karrer

WebWednesday Episode #5

Ergänzend zu unserem Podcast gibt es hier noch einmal alle Informationen aus dem Interview zusammengefasst zum Nachlesen.

Bevor wir ins Thema einsteigen, womit beschäftigt sich denn ein Lead Application Engineer, wie sieht dein Arbeitsalltag aus?

Operative Aufgaben:

In meiner täglichen Arbeit beschäftige ich mich mit der Konzeption, Schätzung und Umsetzung von Webseiten und Webapplikationen. Zudem bin ich für die Qualitätssicherung der entwickelten Lösungen verantwortlich. Dies beinhaltet die Durchführung von Tests und die Sicherstellung, dass die Anwendungen den Anforderungen entsprechen und fehlerfrei funktionieren.

Strategische Aufgaben:

Neben meiner operativen Tätigkeit bin ich auch an der Verbesserung der strategischen Prozesse im technischen Bereich beteiligt. Dazu gehört die Definition von Arbeitsabläufen und die Evaluierung von Tools, um die Effizienz und Effektivität der Entwicklungsprozesse zu steigern.

In deiner aktuellen Masterarbeit versuchst du mittels künstlicher Intelligenz Informationen aus Baureglementen zu gewinnen - Wie kamst du auf dieses Thema und was begeistert dich daran?

Das Thema meiner Arbeit wurde mir von einem Dozenten an der Ostschweizer Fachschule zugeteilt. Es betrifft die Herausforderung in der Deutschschweiz, wo es fast 1400 Gemeinden gibt, jede mit ihrem eigenen Baureglement. Diese Reglemente liegen in PDF-Format vor und bieten ein reiches Feld für die Exploration durch Künstliche Intelligenz (KI). Das Kernziel dieser Arbeit ist es herauszufinden, wie KI, möglicherweise in Form eines Chatbots, zur Gewinnung von Informationen aus diesen Baureglementen eingesetzt werden kann. Dabei konzentriert sich die Untersuchung auf Fragen wie die Verbesserung der Informationsbeschaffung und die Anwendung dieser Technologien auf spezifische Domänen, beispielsweise unter Verwendung domänenbezogener Daten.

Bei Snowflake beschäftigen wir uns ebenfalls viel mit Suchen, das ist so mein Steckenpferd kann man sagen und das Ziel meiner Arbeit ist, beide Themenbereiche - Suche und künstliche Intelligenz zusammenzubringen.

Die Verbesserung der Suche ist ein weiterer Schlüsselpunkt meines Interesses. Hierbei konzentriere ich mich auf die Schwächen einer Standard-Textsuche, wie den Mangel an Kontext, die Notwendigkeit einer spezifischen Eingabe von Suchbegriffen, das Verständnis der Intention hinter einer Suche und die Qualität des Suchergebnisses.

Wie funktioniert eine Suche und was hat das mit künstlicher Intelligenz zu tun?

In meiner Arbeit geht es um die Optimierung von Suchprozessen in umfangreichen Datensätzen. Die grundlegende Methode der Suche basiert darauf, dass eine Eingabe genau so gesucht wird, wie sie in den Daten vorkommt. Wenn ein bestimmter Begriff in einem Datensatz erscheint, wird angenommen, dass dieser Datensatz (vermutlich) zum Suchresultat gehört. Die Relevanz eines Suchergebnisses wird über einen Relevanz-Score bestimmt, der auf zwei Faktoren basiert: die Häufigkeit des Vorkommens eines Begriffs in einem bestimmten Datensatz und die Seltenheit des Begriffs in anderen Dokumenten.

Eine der vorgesehenen Verbesserungen in meinem Ansatz ist die Ignorierung von unrelevanten Stopwörtern wie "der", "die", "das", "ein", da diese Wörter mit hoher Wahrscheinlichkeit keinen Einfluss auf das Suchergebnis haben. Trotz dieser Verbesserungen bestehen noch einige Schwächen. So werden beispielsweise verwandte Wörter oder Synonyme standardmässig nicht berücksichtigt. Auch der Kontext spielt keine Rolle, was bedeutet, dass die Motivation hinter einer Suchanfrage möglicherweise verloren geht. Dies wird deutlich bei Anfragen wie "Wo kann ich Wein kaufen?" im Vergleich zu "Wie wird Wein hergestellt?", wo die unterschiedlichen Intentionen der Suchanfragen in einer standardmässigen Textsuche nicht erkannt werden.

Ein weiteres Problem ist, das die Suchresultate immer in Form eines Datensatz vorliegen und nicht die Antwort auf eine Frage sind. Das heisst, die Antwort auf die Frage, die ich gestellt habe muss manuell aus den Datensätzen extrahiert werden. Das ist sind Schwierigkeiten, die sich mit künstlicher Intelligenz verbessern lassen. So kann man eine KI aus den bestehenden Datensätzen eine Antwort generieren lassen. Hier bietet die Vektorsuche eine Verbesserung gegenüber der herkömmlichen Textsuche. Sie berücksichtigt nicht nur den gegebenen Text als Input, sondern auch die Ähnlichkeiten zwischen verschiedenen Wörtern oder Begriffen (Die Ähnlichkeiten werden über Zahlenwerte miteinander hergestellt). Zum Beispiel würde in der deutschen Sprache die Suche "Wer war der König von England im Jahr 1848?" zu Königin Victoria führen, da "König" und "Königin" dasselbe Stammwort haben. Im Englischen hingegen funktioniert dieses Beispiel mit "King" und "Queen" nicht auf die gleiche Weise. Hier können Vektoren helfen, da der Zahlenwert von "King" und "Queen" in einem Vektorraum nahe beieinander liegt. Diese Methode ermöglicht es, die Suche intelligenter und kontextsensitiver zu gestalten.

Kannst du kurz erklären, was Vektoren sind und was sie für eine Rolle spielen?

Ein Vektor in der Informatik ist ein Datentyp zur Auflistung von Zahlen. Ein Beispiel sind GPS Koordinaten, diese können als Vektor gesehen werden, mit Längen- und Breitengraden. Die Idee dahinter ist es, unstrukturierte Daten, wie zum Beispiel einem Freitext, eine Struktur zu gegeben in dem man jedes Wort in eine Zahl umwandelt. Die Texte werden dann besser miteinander vergleichbar. Das braucht zwar mehr Speicherkapazität und die Suche dauert unter Umständen etwas länger, dafür können mehr Information, wie z.B. der Kontext berücksichtigt werden. Und bei diesem Umwandlungsprozess von Text in Zahlen kommt künstliche Intelligenz zum Einsatz.

Kannst du den Zusammenhang zwischen einer Suche bzw. Vektorsuche und künstlicher Intelligenz genauer beschreiben?

Aktuell wird ja viel über ChatGPT, Google Gemini, Midjourney und so weiter gesprochen, das sind generative KIs, welche dazu dienen aus einer Texteingabe, Inhalte, wie z.B ein Text, Bilder oder Videos zu generieren. Das kann genutzt werden, um aus den Suchresultaten eine Zusammenfassung zu generieren oder die Antwort auf eine Frage aus einem grossen Freitext herauszupicken. Etwas weniger bekannt sind abfragebasierte Large Language Models. Diese dienen vorallem dazu, Datensätze und Suchanfrage in Vektoren umzuwandeln mit dem Ziel, die Schwächen einer klassischen Textsuche abzufangen und damit die Qualität der Suchresultate zu verbessern. 

Was versteht man denn unter einem Large Language Model?

Large Language Model (LLM) sind ein Model in der künstlichen Intelligenz, die spezialisiert sind in der Verarbeitung der natürlichen Sprache. Eine Eingabe wird verarbeiten, interpretiert und basierend darauf eine Ausgabe generiert.

Was gibt es für Schwächen von KIs?

Es gibt noch einige Schwächen von den bekannten Chatbots, dazu zählen unter anderem:

  • Die Aktualität der Daten, diese sind nicht tagesaktuell sondern sind zum Zeitpunkt des Lernens festgesetzt.
  • Teilweise fehlen bei den Antworten die Quellenangaben. Man kann also nicht nachvollziehen woher eine Antwort stammt. Auch das sogenannte Halluzinieren kann zum Problem werden. Es wird eine Antwort gegeben, aber ist diese nicht immer richtig, denn auch aus vielen falschen Antworten, gibt es eine Beste.
  • Weiterhin gibt es kontextabhängige Informationen, wie z.B. die Frage "Was beduetet die Abkürzung LSV?". Am gängigsten ist wohl die Antwort Lastschriftverfahren. Im Zusammenhang mit Baureglementen ist es aber wahrscheinlicher, dass die Lärmschutzverordnung gefragt ist. 
  • Und als Letztes ist es nicht immer ganz klar, was mit den eingegebenen Daten passiert und ob diese in irgendweiner Weise von den Anbietern wiederverwendet werden. Das ist natürlich nicht immer erwünscht.

Wie kann man diese Schwächen lösen?

Als Lösung für eigenen Applikationen kann man auf eine Technik namens Retrieval Augmented Generation zurückgreifen. Diese kombiniert abfragebasierte und generative Modelle. Man gibt der generativen KI die Daten vor, mit denen sie arbeiten soll, das kennt man auch von ChatGPT, wenn man einen Text eingibt und  sich diesen umformulieren lässt. Man lässt die künstliche Intelligenz also nur mit den eigen Daten arbeiten. Für eine lokale oder eigene Applikation, die auf einer Suche basiert, kann man in zwei Schritten vorgehen:

Schritt 1: Man sucht in den eigenen Daten, das kann als normale Textsuche oder als Vektorsuche mithilfe eines abfragebasierten LLMs passieren.

Schritt 2: Man schickt die Suchresultate dann an ein LLM wie z.B. ChatGPT um daraus eine Antwort generieren zu lassen. Der Vorteil dabei ist, dass die KI die richtige Antwort kennt und es somit nicht zu einer Halluzination kommt.

Weitere Voreil bei diesem Vorgehen sind, dass die Datenhoheit für die Quelldaten bei mir liegt. Zudem liegen die Datensätze als Quelle der generierten Antwort vor. Ich kann also sagen, auf welchen Daten die Antworten basieren.

Man muss dabei auch nicht zwingend auf einen der grossen Anbieter zurückgreifen. Es gibt einige kleinere, spezialisierte OpenSource KI-Modelle, die man verwenden kann.

Was unterscheidet kleinere Open Source Modelle von grossen Anbietern wie OpenAI oder Google?

Die Grösse, also die Anzahl Parameter sowie die Qualität der Trainingsdaten sind entscheidend, wie gut ein LLM Antworten generieren kann. Damit ein LLM entsprechend trainiert werden kann, braucht es eine gewisse Rechenleistung und entsprechendes Know-how. Auch das Aufbereiten von Trainingsdaten ist ein nicht zu unterschätzender Aufwand. Da sind die grossen Anbieter natürlich im Vorteil. Bei den Open Source Modellen besteht dafür die Möglichkeit, mit eigenen Daten ein Fine-Tuneing zu machen.


Nicolas, Andree und Luis bei der Podcastaufnahme

Über den Autor

Nicolas Karrer, Lead Application Engineer

Neben meiner Begeisterung für neue Technologien bin ich Snowflake Urgestein, Fussball- und Eishockeyfan, Squash-Spieler und TV-Serien-Junkie.