Link in Zwischenablage kopiert.
- Ferdi Güran, Olaf von Voss, Falk Borgmann
Stell dir vor, du könntest innerhalb von nur 5 Minuten deinen eigenen KI-Chatbot erstellen. Klingt zu schön, um wahr zu sein? Aber das ist es nicht! In diesem Blogbeitrag kannst du hautnah miterleben, wie dieser Prozess abläuft. Und zwar von einfach - mit Hilfe von OpenAI und GPT Models - hin zu custom im Sinne von lokal gehostet und ohne Anbindung an proprietäre Services.
In einem einfachen Setup werden die Daten aus verschiedenen Quellen in einer Anwendung zusammengeführt und mithilfe der KI-Schnittstelle (embeddings) von OpenAI in maschinell verortbare Vektoren, also Zahlenreihen, umgewandelt. Diese Vektoren ermöglichen es, die Daten, Texte oder Bilder mit anderen Anfragen zu verknüpfen.Damit diese Vektoren nicht bei jeder Anfrage neu berechnet werden müssen, speichert man diese in einem sogenannten Index. Wichtig zu wissen ist allerdings, dass die erforderlichen Berechnungen mit der Generierung von sogenannten Tokens seitens OpenAI einhergeht, was wiederum mit Kosten verbunden ist (z.B. das Ada v2 Embedding Model von OpenAI für $0.0001 pro 1 Kilo Tokens).
Ebenfalls gilt es zu bedenken, dass die relevanten Daten vektorisiert, über die OpenAI API an eine Version von GPT, das Sprachmodell hinter ChatGPT gesendet werden. Wird nun eine Frage an das Modell gestellt, liefert dieses wiederum Vektoren als Antwort. Zusammen mit den im Index gesammelten Vektoren der Kontextdaten können daraus die Antworten mit Bezug zum eigenen Kontext erstellt werden.
Aber wie sehen eigentlich die Daten aus, mit denen hier gearbeitet wird? Daten, in der Form wie Maschinen sie verarbeiten, sind für Menschen meist schwer verständlich.Das menschliche Gehirn ist es gewohnt, Dinge oder Situationen in verschiedenen Dimensionen wahrzunehmen und parallel zu verarbeiten: Geschmack, Farbe, Größe, Lautstärke, Alter, Aussehen, etc. repräsentieren dabei jeweils eine eigene Dimension die bei der Verortung hilft.
Für KI-Modelle, also Maschinen, sind numerische Repräsentationen wie Zahlenreihen aber von immenser Bedeutung wenn es darum geht Eingaben korrekt zu verorten. Diese Verortung von Zahlenreihen, auch Embeddings genannt, hilft den Modellen dabei, Texte, Wörter und andere Informationen einzuschätzen und in Kategorien zu sortieren, die Informationen also sprichwörtlich (in mehrdimensionale) Schubladen zu stecken.
Natürlich ist die Auswahl des richtigen Modells entscheidend, damit die angesprochene Verortung der Vektoren später korrekt erfolgt.
Um das Ganze besser zu verstehen, gibt es visuelle Darstellungen von solchen Zahlenreihen (Vektoren), wie zum Beispiel mithilfe der t-SNE (t-distributed Stochastic Neighbor Embedding) Methode (Link). Dieser mathematische Algorithmus ermöglicht es, die Vektoren dreidimensional darzustellen und so für Menschen überhaupt „lesbar“ oder besser, erfassbar zu machen. Mit den richtigen Tools und Anwendungen wird das Ganze so visuell sinnvoll aufbereitet und Zusammenhänge werden deutlich.
(Vektorisierte Daten via OpenAI Embeddings von unserer Webseite aus dem Bereich Wissen)
Jetzt stellt sich die Frage: Was passiert eigentlich mit all diesen Daten? Es gibt einige Aspekte zu beachten, insbesondere wenn es um sensible Daten und GDPR Compliance geht. Bei Software, die nicht aus der EU stammt, muss damit gerechnet werden, dass standardmäßig Telemetrie-Optionen aktiviert sein könnten. Auch beliebte Werkzeuge zur Visualisierung, wie die Chroma Vector Datenbank (Link) oder Nomic AI's Atlas (Link), senden Telemetrie-Daten „nach Hause“. Hier ist also eine bewusste opt-out Entscheidung bezüglich der Datenweitergabe und -speicherung angeraten. Im Falle von Nomic werden bei Benutzung des Services üblicherweise die Embeddings sowie teilweise auch Metadaten hochgeladen und bei nomic.ai auf Servern gespeichert und verarbeitet.
Die Frage lautet also: wie viel Kontrolle über die eigenen Daten soll erzielt werden? Bei der Verwendung von OpenAI Embeddings API werden Daten möglicherweise auf externen Servern gespeichert und es ist unklar, ob und wann sie tatsächlich gelöscht werden.
Nachdem der erste Ansatz war, bestehende APIs und LLM Modelle von Firmen wie OpenAI (ChatGPT) zu verwenden, soll nun der nächste Schritt gewagt werden. Mithilfe der 3-dimensionalen Visualisierung von Vektoren wird das zugrundeliegende Datenmodell klarer und die Möglichkeit entsteht, sich von zweifelhaften Datenschutzerklärungen zu befreien.
Beispielsweise ließe sich die Embedding-Funktion, verantwortlich für die Berechnung der Vektoren, selbst bereitstellen. Dies erfordert jedoch ein eigenes Modell, das für persönliche oder kommerzielle Zwecke verwendet werden kann. Glücklicherweise hat hier die Community bereits für ein ganzes Spektrum an entsprechenden Modellen gesorgt.
Um das Ganze dann lokal ausführen zu können, reicht für klein(st)e Anwendungsfälle im Rahmen eines Proof of Concept oft eine CPU aus. Bei größeren Datenmengen sind GPUs oder TPUs (Tensor Processing Unit) unerlässlich.