Thursday, December 26, 2024

OpenAI Embeddings und Vektor-Datenbanken Crashkurs

Ein umfassender Leitfaden zu Embeddings und Vektordatenbanken

In der Welt der KI sind Embeddings und Vektordatenbanken wesentliche Werkzeuge für den Aufbau beliebiger KI-Produkte. In diesem Artikel werden wir erläutern, was sie sind und wie man sie mit OpenAI und deren APIs verwendet. Wir werden dies in drei Teilen behandeln: die Theorie, die Verwendung und schließlich die Integration. Nachdem Sie diesen Artikel gelesen haben, werden Sie in der Lage sein, ein Langzeitgedächtnis für einen Chat-GPT zu erstellen oder semantische Suchen basierend auf einer riesigen Datenbank von PDFs durchzuführen, die direkt mit einer KI verbunden ist.

Was sind Embeddings?

Um es einfach auszudrücken, sind Embeddings Daten wie Wörter, die in ein Zahlenarray umgewandelt wurden, das als Vektor bezeichnet wird und Beziehungsmuster enthält. Die Kombination dieser Zahlen, die den Vektor ausmachen, fungiert als mehrdimensionale Karte zur Messung von Ähnlichkeiten. Zum Beispiel werden die Wörter “Hund” und “Welpe” oft in ähnlichen Situationen verwendet. In einem Wortembedding würden sie durch Vektoren repräsentiert, die nahe beieinander liegen. Dies ist ein einfaches 2D-Beispiel für eine einzelne Dimension. In Wirklichkeit hat der Vektor Hunderte von Dimensionen, die die komplexe mehrdimensionale Beziehung zwischen Wörtern abdecken. Auch Bilder können in Vektoren umgewandelt werden, und so funktionieren ähnliche Bildsuchen von Google. Die Bildabschnitte werden in Zahlenarrays aufgeschlüsselt, sodass Sie Muster von Ähnlichkeit für solche mit eng verwandten Vektoren finden können.

Was sind Vektordatenbanken?

Sobald ein Embedding erstellt wurde, kann es in einer Datenbank gespeichert werden. Eine Datenbank, die voll von solchen Embeddings ist, wird als Vektordatenbank bezeichnet und kann auf verschiedene Arten verwendet werden, einschließlich Suche, Clustering, Empfehlungen und Klassifizierung. In diesem Artikel werden wir uns nur auf die Suche konzentrieren, da dies die am häufigsten verwendete Methode ist. Es gibt viele praktische Möglichkeiten, dies zu tun, aber OpenAI hat ein großartiges KI-Modell bereitgestellt, um speziell Embeddings zu erstellen. Es bietet jedoch keine Möglichkeit, sie zu speichern. Dafür werden wir später im Artikel eine Cloud-Datenbank verwenden.

Erstellen von Embeddings mit OpenAI

Um ein Embedding zu erstellen, müssen wir auf die OpenAI-Seite zugreifen. Wir gehen zur OpenAI-Website, wo wir ein neues Konto erstellen oder uns in ein bestehendes einloggen können. Die Anmeldung ist kostenlos, wenn Sie sich anmelden möchten. Wir melden uns mit unseren Google-Anmeldeinformationen an und gelangen zu einigen Optionen. Zwischen Chat GBT, Dali und anderen APIs gehen wir zur API-Seite. Hier möchten wir uns die Dokumentation zu den Embeddings ansehen, die wir hier finden können.

Um ein Embedding zu erstellen, müssen wir eine POST-Anfrage mit einigen Eingaben stellen und eine Antwort erhalten. Wir könnten Code schreiben, um dies zu tun, oder es in einem Terminal durchführen, aber der einfachste Weg ist in einer GUI-Software namens Postman. Es ist eine API-Plattform und auch der Sponsor für den heutigen Artikel. Postman ist eine Software und auch eine Web-App, die vollständig kostenlos ist und es Ihnen ermöglicht, alle Arten von API-Anfragen durchzuführen.

Speichern von Embeddings in einer Vektordatenbank

OpenAI stellt keine Datenbanken zur Verfügung, daher müssen wir unsere eigene erstellen. Eine Datenbank voller Embeddings wird oft als Vektordatenbank bezeichnet. Wir werden einen Anbieter namens SingleStore verwenden. Sie bieten eine Echtzeit-vereinheitlichte verteilte SQL-Datenbank an, die auch recht einfach zu verwenden ist, da sie in der Cloud gehostet wird. Darüber hinaus ermöglichen sie die Integration von Vektordatenbanken direkt darin.

Durchsuchen einer Vektordatenbank

Die Suche in einer Vektordatenbank nach Embeddings ist eigentlich recht einfach. Der erste Schritt besteht darin, festzulegen, wonach Sie suchen möchten. Zum Beispiel möchten wir möglicherweise nach allem suchen, was mit OpenAI zusammenhängt. Als nächstes müssen wir ein Embedding für unseren Suchbegriff erstellen. Schließlich würden wir eine Suche in der Datenbank gegen die vorhandenen Embeddings durchführen. Dies würde eine Liste mit der größten Ähnlichkeit oben zurückgeben.

Erstellen einer Funktion mit JavaScript

In diesem Teil des Artikels werden wir eine tatsächliche Funktion mit JavaScript auf Node.js erstellen, um mit Embeddings zu interagieren. Zunächst erstellen wir eine Fetch-Anfrage an die OpenAI-API. Wir stellen eine POST-Anfrage mit einigen Eingaben und erhalten eine Antwort zurück. Wir könnten Code schreiben, um dies zu tun, oder es in einem Terminal durchführen, aber der einfachste Weg ist in einer GUI-Software namens Postman. Es ist eine API-Plattform und auch der Sponsor für den heutigen Artikel. Postman ist eine Software und auch eine Web-App, die vollständig kostenlos ist und es Ihnen ermöglicht, alle Arten von API-Anfragen durchzuführen.

Vor- und Nachteile

Vorteile:

– Embeddings und Vektordatenbanken sind wesentliche Werkzeuge für den Aufbau beliebiger KI-Produkte.

– Sie ermöglichen semantische Suchen basierend auf einer riesigen Datenbank von PDFs, die direkt mit einer KI verbunden ist.

– Sie können für Suche, Clustering, Empfehlungen und Klassifizierung verwendet werden.

Nachteile:

– OpenAI stellt keine Datenbanken zur Verfügung, daher müssen Sie Ihre eigene erstellen.

– Das Erstellen von Embeddings kann zeitaufwändig sein.

Hervorhebungen

– Embeddings sind Daten wie Wörter, die in ein Zahlenarray umgewandelt wurden, das als Vektor Beziehungsmuster enthält.

– Vektordatenbanken sind Datenbanken voller Embeddings, die auf verschiedene Arten verwendet werden können, einschließlich Suche, Clustering, Empfehlungen und Klassifizierung.

– OpenAI stellt keine Datenbanken zur Verfügung, daher müssen Sie Ihre eigene erstellen.

– Die Suche in einer Vektordatenbank nach Embeddings ist eigentlich recht einfach.

FAQ

F: Was sind Embeddings?

A: Embeddings sind Daten wie Wörter, die in ein Zahlenarray umgewandelt wurden, das als Vektor Beziehungsmuster enthält.

F: Was sind Vektordatenbanken?

A: Vektordatenbanken sind Datenbanken voller Embeddings, die auf verschiedene Arten verwendet werden können, einschließlich Suche, Clustering, Empfehlungen und Klassifizierung.

F: Stellt OpenAI Datenbanken zur Verfügung?

A: Nein, OpenAI stellt keine Datenbanken zur Verfügung, daher müssen Sie Ihre eigene erstellen.

F: Ist die Suche in einer Vektordatenbank nach Embeddings schwierig?

A: Nein, die Suche in einer Vektordatenbank nach Embeddings ist eigentlich recht einfach.