
Was sind Vektoreinbettungen?
Vektoreinbettungen sind numerische Darstellungen von Datenpunkten in einem hochdimensionalen Raum, in dem ähnliche Datenpunkte näher beieinander liegen und unähnliche Punkte weiter voneinander entfernt sind. Dieses Verfahren ermöglicht eine effizientere Verarbeitung und Identifizierung verwandter Daten. Zum Beispiel kann der Abstand zwischen Wörtern [semantische Ähnlichkeiten] (https://zilliz.com/glossary/semantic-similarity) in einem Vektorraum anzeigen. Paris und Tokio sind nahe beieinander, aber weit von Apple entfernt.
Vektoreinbettungen werden häufig im Bereich des maschinellen Lernens und der künstlichen Intelligenz verwendet, um die semantische Bedeutung von unstrukturierten Daten (wie Text, Videos, Bilder, Audio usw.) zu erfassen, was eine effizientere und genauere Analyse, Suche und Abfrage ermöglicht. Vektoreinbettungen werden in der Regel durch Neuronale Netze Modelle (oder modernere Transformer-Architektur) erzeugt.
Da die Repräsentation des Einbettungsvektors eines Datenobjekts nur Zahlen enthält, wird die Vektorähnlichkeitssuche manchmal auch als "dichte Vektorsuche " oder "Einbettungsvektorsuche" bezeichnet, die sich von der herkömmlichen Schlüsselwortsuche unterscheidet, bei der exakte Übereinstimmungen zwischen den Wörtern in der Suche und den zurückgegebenen Daten vorliegen müssen. "Lexikalische Suche" und "Sparse Vector Search" sind Begriffe, die sich gewöhnlich auf die traditionelle Stichwortsuche beziehen.
Vektoreinbettungen werden in der Regel in einer modernen [Vektordatenbank] (https://zilliz.com/learn/what-is-vector-database) zur Indexierung und effizienten Ähnlichkeitssuche gespeichert.
Wie werden Vektoreinbettungen erstellt?
Vektoreinbettungen werden häufig mithilfe von Modellen für maschinelles Lernen (auch Einbettungsmodell genannt) erstellt, die lernen, Rohdaten auf einen Vektorraum abzubilden. Das Einbettungsmodell wandelt jede Informationseinheit in einen Zahlenvektor um, und der Abstand zwischen zwei Vektoren gibt an, wie ähnlich sie sich semantisch sind.
Hier sind die wichtigsten Schritte zur Erstellung von Vektoreinbettungen:
- Der erste Schritt besteht darin, die Daten auszuwählen und zu entscheiden, welche Variablen Vektoren bilden sollen. Dazu können Wörter in einem Textkorpus, visuelle Bilder und Benutzerpräferenzen gehören.
Als Nächstes werden relevante Merkmale aus den Daten durch Tokenisierung und Stemming extrahiert, und die Wortentfernung für Textdaten wird eingestellt. Erwägen Sie den Einsatz von Convolutional Neural Networks (CNNs) zur Erkennung und Extraktion von Bildmerkmalen für Bilddaten.
Nach der Vorverarbeitung der Daten geben Sie diese in ein maschinelles Lernmodell wie Word2Vec, GloVe, OpenAI oder ein anderes tiefes neuronales Netzwerkmodell ein. Während des Trainings lernt das Modell, Vektordarstellungen für jedes Element des Datensatzes zu erstellen. Das Modell skaliert diese Vektoren neu, um die Unterschiede zwischen ähnlichen Elementen zu minimieren und die Unterschiede zwischen unterschiedlichen Elementen zu vergrößern.
Das Ergebnis ist ein mehrdimensionaler Vektorraum, in dem ein spezifischer Vektor jedes Element des Datensatzes repräsentiert. Ähnliche Elemente liegen in diesem Raum näher beieinander, während unähnliche Elemente weiter voneinander entfernt sind.
Sparse, Dense, Binary Vector Embeddings
Vektoreinbettungen können auf der Grundlage ihrer Darstellung und ihrer Eigenschaften grob in drei Typen eingeteilt werden: Dichte Einbettungen, spärliche Einbettungen und binäre Einbettungen. Jeder Typ hat seine eigenen Vorteile und Anwendungsfälle.
Dichte Einbettungen (dichte Vektoren)
Dichte Einbettungen oder [dichte Vektoren] (https://zilliz.com/learn/sparse-and-dense-embeddings) sind Vektoren, bei denen die meisten Elemente ungleich Null sind, was eine kompakte numerische Darstellung ermöglicht, die umfangreiche, kontinuierliche Datenmerkmale erfasst. In der Regel können niedrigdimensionale, dichte Einbettungen Informationen effizient in einem kleineren Raum kondensieren, was sie für die Speicherung und Berechnung nützlich macht. Dichte Einbettungen finden sich häufig in Anwendungen wie Worteinbettungen (z. B. Word2Vec, GloVe, FastText), Satzeinbettungen (z. B. Universal Sentence Encoder, InferSent, Sentence-BERT) und Bildeinbettungen, die von faltigen neuronalen Netzen abgeleitet sind (z. B. ResNet, VGG). Dichte Einbettungen sind sehr vorteilhaft bei der Erfassung semantischer Informationen. Sie eignen sich besonders für auf neuronalen Netzen basierende Modelle und Deep Learning, die für Klassifizierungs-, Clustering- und Ähnlichkeitssuchaufgaben auf solch detaillierte Darstellungen angewiesen sind.
Sparse Embeddings (Sparse Vectors)
Sparse Embeddings oder Sparse Vectors hingegen sind Vektoren, bei denen die meisten Elemente Null sind, was oft zu hochdimensionalen Darstellungen führt, die das Vorhandensein oder Fehlen bestimmter Merkmale hervorheben. Diese Einbettungen werden im Text Mining und Information Retrieval durch Methoden wie TF-IDF (Term Frequency-Inverse Document Frequency) und Bag-of-Words verwendet. Sparse Embeddings sind einfach zu verstehen und zu implementieren, was sie für traditionelle Machine-Learning-Algorithmen und lineare Modelle effektiv macht.
Binäre Einbettungen (binäre Vektoren)
Binäre Einbettungen oder binäre Vektoren sind Vektoren, bei denen jedes Element entweder 0 oder 1 ist, so dass kompakte Darstellungen entstehen, die sehr effizient für die Speicherung und den Abruf sind. Diese Einbettungen werden häufig in Anwendungen verwendet, die eine hohe Effizienz erfordern, wie z. B. das ortsabhängige Hashing (LSH) für die approximate nearest neighbor-Suche (ANN) in hochdimensionalen Räumen, binäre neuronale Netze, bei denen Gewichte und Aktivierungen binär sind, und das Feature-Hashing (der Hashing-Trick) zur Umwandlung großer kategorischer Merkmale in binäre Vektoren fester Größe. Binäre Vektoreinbettungen helfen bei der effizienten Speicherung und Berechnung, was sie ideal für die Verarbeitung großer Datenmengen und Echtzeitanwendungen macht. Aufgrund ihrer Kompaktheit sind sie besonders nützlich für Ähnlichkeitssuche und Retrievalaufgaben.
A Simple Guide to Creating Vector Embeddings
Hier ist ein Beispiel für die Verwendung eines vortrainierten [Einbettungsmodells] (https://zilliz.com/learn/training-your-own-text-embedding-model), um Einbettungen für unsere eigenen Wörter zu erzeugen. Um diesem Beispiel zu folgen, müssen Sie Python installieren und die Milvus Vektordatenbank für die Speicherung und den Abruf von Vektoren einrichten.
Installieren Sie zunächst die Abhängigkeiten: milvus, pymilvus, und gensim. Pymilvus ist ein Python-SDK für Milvus, und gensim ist eine Python-Bibliothek für natural language processing (NLP).
Gensim ist eine quelloffene Python-Bibliothek zur Themenmodellierung und Ähnlichkeitsanalyse von Dokumenten unter Verwendung verschiedener unüberwachter Algorithmen. Sie ist auf die Verarbeitung großer Textkorpora spezialisiert und wird häufig für Aufgaben der Verarbeitung natürlicher Sprache (NLP) eingesetzt. Gensim unterstützt das Training und die Verwendung von Worteinbettungen durch maschinelle Lernmodelle wie Word2Vec, FastText und Doc2Vec. Diese Einbettungen erfassen semantische Beziehungen zwischen Wörtern und können für verschiedene NLP-Aufgaben verwendet werden.
pip install milvus, pymilvus, gensim
Importieren Sie die Bibliotheken.
import gensim.downloader as api
von pymilvus importieren (
Verbindungen,
FieldSchema,
CollectionSchema,
DataType,
Collection)
Erstellen Sie eine Verbindung zum Milvus-Server.
connections.connect(
alias="default",
user='benutzername',
passwort='passwort',
host='localhost',
port='19530'
)
Erstellen Sie eine Sammlung.
#Erzeugt eine Sammlung:
fields = [
FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),
FieldSchema(name="words", dtype=DataType.VARCHAR, max_length=50),
FieldSchema(name="einbettungen", dtype=DataType.FLOAT_VECTOR, dim=50)
]
schema = CollectionSchema(fields, "Demo zum Speichern und Abrufen von Einbettungen")
demo_milvus = Sammlung("milvus_demo", schema)
Laden Sie das zuvor trainierte Modell aus Gensim.
model = api.load("glove-wiki-gigaword-50")
Generieren Sie die Texteinbettungen für die Beispielwörter.
ice = model['ice']
Wasser = model['Wasser']
kalt = model['kalt']
Baum = model['Baum']
Mann = model['Mann']
Frau = model['Frau']
Kind = model['Kind']
weiblich = model['weiblich']
Hier ist ein Beispiel für die Vektoreinbettung des Wortes "weiblich".
array([-0.31575 , 0.74461 , -0.11566 , -0.30607 , 1.524 , 1.9137 ,
-0.392 , -0.67556 , -0.1051 , -0.17457 , 1.0692 , -0.68617 ,
1.2178 , 1.0286 , 0.35633 , -0.40842 , -0.34413 , 0.67533 ,
-0.5443 , -0.21132 , -0.61226 , 0.95619 , 0.43981 , 0.59639 ,
0.02958 , -1.1064 , -0.48996 , -0.82416 , -0.97248 , -0.059594,
2.396 , 0.74269 , -0.16044 , -0.69316 , 0.55892 , 0.22892 ,
0.013605, -0.44858 , -0.52965 , -0.96282 , -0.54444 , 0.18284 ,
0.16551 , 0.33446 , 0.53432 , -1.4824 , -0.34574 , -0.82834 ,
0.10107 , 0.024414], dtype=float32)
Einfügen der erzeugten Einbettungsvektoren in die Sammlung
#Daten in die Sammlung einfügen
data = [
[1,2,3,4,5,6,7,8], # Feld pk
['Eis','Wasser','Kälte','Baum','Mann','Frau','Kind','Frau'], # Feld Wörter
[ice, water, cold, tree, man, woman, child, female], # field embeddings
]
insert_result = demo_milvus.insert(data)
# Nachdem die letzte Entität eingefügt wurde, ist es am besten, flush aufzurufen, um keine wachsenden Segmente im Speicher zu haben
demo_milvus.flush()
Erstellen Sie Indizes für die Entitäten.
index = {
"index_type": "IVF_FLAT",
"metric_type": "L2",
"params": {"nlist": 128},
}
demo_milvus.create_index("Einbettungen", index)
Laden Sie die Sammlung in den Speicher, um das erfolgreiche Hochladen zu bestätigen und eine Vektorähnlichkeitssuche durchzuführen.
demo_milvus.load()
# führt eine Vektor-Ähnlichkeitssuche durch:
data = [cold]
search_params = {
"metric_type": "L2",
"params": {"nprobe": 10},
}
result = demo_milvus.search(data, "embeddings", search_params, limit=4, output_fields=["words"])
Schleife durch die Ergebnisse und Ausgabe der Wörter.
for i in range(0,4):
hit = result[0][i]
print(hit.entity.get('words'))
Und hier ist die erwartete Ausgabe.
kalt
Eis
Wasser
Mann
Wie funktionieren Einbettungen?
Durch die Umwandlung von Daten wie Bildern, Texten und Audiodaten in numerische Darstellungen ermöglichen Einbettungen es Maschinen, die zugrunde liegende semantische Bedeutung und die Beziehungen in den Rohdaten zu verstehen. Dies öffnet die Türen zu innovativen Anwendungen in den verschiedensten Bereichen.
Suche nach ähnlichen Bildern, Videos oder Audiodateien
Stellen Sie sich vor, Sie suchen nach ähnlichen Fotos oder Videos auf der Grundlage ihres Inhalts, nicht nur anhand von Schlüsselwörtern. Zum Beispiel eine Bildsuche nach Ton (Vögel sind leichter zu hören als zu sehen) oder eine Videosuche nach Bild. Vektoreinbettungen machen diese Art der Suche möglich. Durch die Extraktion von Einbettungen aus Bildern, Videoframes oder Audiosegmenten mittels Techniken wie [Convolutional Neural Networks (CNNs)] (https://zilliz.com/glossary/convolutional-neural-network) können wir diese Einbettungen in Vektordatenbanken wie Milvus oder Zilliz Cloud speichern. Wenn ein Benutzer eine Bild-, Video- oder Audiosuche durchführt, findet das System ähnliche Elemente, indem es sequenzielle Daten mit ihren eingebetteten Vektordarstellungen vergleicht.
Beschleunigung der Medikamentenentdeckung
Die Entdeckung von Arzneimitteln ist ein komplexer und langwieriger Prozess. Vektoreinbettungen können diesen Prozess beschleunigen, indem sie Wissenschaftlern helfen, vielversprechende Arzneimittelkandidaten zu identifizieren. Durch die Kodierung der chemischen Strukturen von Wirkstoffen in die oben generierten Vektoreinbettungen können wir ihre Ähnlichkeit mit Zielproteinen messen. Auf diese Weise können sich die Forscher auf die vielversprechendsten Spuren konzentrieren, was zu einer schnelleren Entdeckung und Entwicklung von Medikamenten führt.
Steigerung der Suchrelevanz mit semantischer Suche
Herkömmliche Suchmaschinen haben oft Schwierigkeiten, die wahre Absicht hinter den Suchanfragen der Nutzer zu verstehen, was zu irrelevanten Ergebnissen führt. Angenommen, ein Unternehmen bettet seine internen Dokumente in Vektoren ein und speichert sie in einer Vektordatenbank. Nun können die Mitarbeiter diese Dokumente mit normalem menschlichem Chat durchsuchen. Die Dateneinbettungen, die der Einbettung der Chatfrage des Mitarbeiters am nächsten kommen, könnten von der Vektordatenbank abgerufen und an ChatGPT als Teil einer Eingabeaufforderung gesendet werden, um eine menschenähnliche Textantwort auf die Frage des Mitarbeiters zu erzeugen. Die Antwort wäre die nächstliegende Antwort auf der Grundlage der Daten des Unternehmens. Dieser Gesamtprozess wird [RAG (Retrieval Augmented Generation)] (https://zilliz.com/use-cases/llm-retrieval-augmented-generation) genannt. Die Hinzufügung eines semantischen Verständnisses der Dokumente eines Unternehmens kann die interne Suchrelevanz für dieses Unternehmen erheblich verbessern und [KI-Halluzinationen] vermeiden (https://zilliz.com/glossary/ai-hallucination).
Empfehlungssysteme
Empfehlungssysteme sind für Online-Plattformen von entscheidender Bedeutung, doch allgemeine Empfehlungen können enttäuschend sein. Vektoreinbettungen bieten eine Lösung, indem sie es uns ermöglichen, sowohl Benutzer als auch Artikel als Einbettungen darzustellen. Durch die Messung der Ähnlichkeit zwischen dem Benutzer und dem Artikel zur Erzeugung von Vektoreinbettungen können wir personalisierte Empfehlungen aussprechen, die auf die individuellen Vorlieben jedes Benutzers zugeschnitten sind. Dies führt zu effektiveren Empfehlungssystemen und hoffentlich zu einer höheren Nutzeraktivität.
Anomalie-Erkennung
Die Erkennung ungewöhnlicher Muster in Daten ist für verschiedene Anwendungen wie Betrugserkennung, Netzwerksicherheit und Überwachung von Industrieanlagen von entscheidender Bedeutung. Vektoreinbettungen bieten ein leistungsfähiges Werkzeug für die Erkennung von Anomalien. Indem wir Datenpunkte als Einbettungen darstellen, können wir Abstände oder Unähnlichkeiten zwischen Datenpunkten berechnen. Erhebliche Abstände können auf potenzielle Anomalien hinweisen, die untersucht werden müssen. Auf diese Weise lassen sich Probleme proaktiv erkennen und Anomalien frühzeitig erkennen und verhindern.
Verschiedene Arten von Vektoreinbettungen auf der Grundlage der Art der darzustellenden Daten
Je nach Anwendung und Art der darzustellenden Daten lassen sich Vektoreinbettungen auch in Worteinbettungen, Bildeinbettungen, Grapheneinbettungen, multimodale Einbettungen usw. unterteilen. Hier sind einige der gängigsten Arten von Vektoreinbettungen.
Worteinbettungen: Worteinbettungen stellen Wörter als numerische Vektoren in einem kontinuierlichen Vektorraum dar. Sie werden auf großen Textkorpora wie Wikipedia mit verschiedenen Modellen wie Word2Vec, GloVe oder fastText trainiert. Diese Modelle verwenden unterschiedliche Mechanismen, um jedes Wort als Zahlenvektor darzustellen. Word2Vec erzeugt Worteinbettungen durch Vorhersage eines Wortes in einem riesigen Textkorpus. Es definiert linguistische Beziehungen zwischen Wörtern. So kann es beispielsweise "König" und "Königin" als Vektoren darstellen, die im Raum nahe beieinander liegen und ihre [semantische Ähnlichkeit] anzeigen (https://zilliz.com/glossary/semantic-similarity). GloVe hingegen stützt sich bei der Konstruktion von Vektoren auf die Daten zum gemeinsamen Auftreten von Wörtern. GloVe könnte die Wörter "Eis" und "Wasser" als Vektoren darstellen, die nahe beieinander liegen, weil sie oft zusammen im Text vorkommen und eine gemeinsame semantische Beziehung haben. fastText führt die Worteinbettung auf eine Unterwortebene, so dass man mit Wörtern, die nicht im Wortschatz enthalten sind (OOV), oder Variationen umgehen kann.
Satz- und Dokumenteinbettungen: Satz- und Dokumenteneinbettungen stellen ganze Sätze oder Dokumente als numerische Vektoren dar und verwenden Modelle wie Doc2Vec und BERT. Doc2Vec baut auf dem Word2Vec-Paradigma auf, um Einbettungen auf Dokumentenebene zu erzeugen, die die Kodierung ganzer Dokumente oder Passagen ermöglichen. BERT (Bidirectional Encoder Representations from Transformers) berücksichtigt den Kontext jedes Begriffs in einem Satz, was zu hochgradig kontextbewussten Vektoren von Einbettungen führt.
Bildeinbettungen: CNNs können Bildeinbettungen durch Merkmalsextraktion auf verschiedenen Netzwerkschichten erzeugen. Sie bieten einen wertvollen Ansatz für die Bildklassifizierung und -suche. Zum Beispiel könnte ein Foto einer Katze einen Bildeinbettungsvektor mit Merkmalen haben, die Ohren, Fell und Schwanz darstellen. Andere Modelle wie Inception und ResNet verfügen ebenfalls über Schichten, die Merkmale aus Bildern extrahieren können. Ein Inception-Modell kann eine Einbettung erzeugen, die die visuellen Attribute eines Bildes, wie Objekte oder Muster, darstellt.
Zeitreiheneinbettungen: Sie können Zeitreihendaten mit Hilfe von neuronalen Netzen mit langem Kurzzeitgedächtnis (LSTM) und gated recurrent unit (GRU) einbetten, die zeitliche Abhängigkeiten erfassen können. LSTM- oder GRU-basierte Einbettungen können zeitliche Abhängigkeiten für Zeitreihendaten wie Aktienkurse erfassen. Diese Vektoreinbettungen können zum Beispiel Muster in Aktienkursbewegungen darstellen.
Audio-Embeddings: In der Audioverarbeitung stellen MFCC-Einbettungen (Mel-Frequency Cepstral Coefficients) Audiodaten für Audioklassifizierungsaufgaben dar. Bei der Spracherkennung erfassen MFCC-Einbettungen die akustischen Merkmale von Audiosignalen. Sie können beispielsweise den spektralen Inhalt von gesprochenen Wörtern darstellen.
Grapheneinbettung: Betrachten Sie einen Graphen eines sozialen Netzwerks. Node2Vec kann Knoteneinbettungen erzeugen, bei denen ähnliche Nutzer (Knoten) engere Vektoren haben. Zum Beispiel könnten Benutzer mit ähnlichen Interessen ähnliche Vektoreinbettungen haben. Sie können auch Graph Neural Networks (GNNs) verwenden, um Einbettungen für Knoten zu erzeugen und komplexe Beziehungen in Graphen zu erfassen. GNNs können Benutzer und Elemente in einem Empfehlungssystem darstellen und Benutzer-Element-Interaktionen vorhersagen.
Anwendungen von Vektoreinbettungen
Hier sehen Sie, wie Sie Vektoreinbettungen in verschiedenen Bereichen anwenden können.
- Bild-, Video- und Audio-Vektorähnlichkeitssuche: Sie können Einbettungen aus Bildern, Videoframes oder Audiosegmenten extrahieren, indem Sie Techniken wie CNNs zur Bild- oder Merkmalsextraktion verwenden. Speichern Sie diese Einbettungen in einer Vektordatenbank. Wenn ein Benutzer ein Bild, einen Videoframe oder einen Audioclip abfragt, können Sie ähnliche Elemente abrufen, indem Sie die Ähnlichkeit zwischen ihren Einbettungen messen.
AI-Arzneimittelentdeckung: Durch Kodierung der chemischen Strukturen von Verbindungen in Einbettungen können Sie diese Einbettungen verwenden, um die Ähnlichkeit zwischen Arzneimittelverbindungen zu messen und die potenziellen Zielproteine für Arzneimittelverbindungen vorherzusagen.
- [Semantische Suchmaschine] (https://zilliz.com/glossary/semantic-search): Vektoreinbettungen verbessern die Leistungsfähigkeit von Suchmaschinen, indem sie die Bedeutung von Abfragen mit relevanten Dokumenten abgleichen und so die Suchrelevanz verbessern.
Recommender-System: Sie können Benutzer und Objekte als Einbettungen darstellen. Messen Sie die Ähnlichkeit zwischen Nutzern und Objekten, um personalisierte Empfehlungen auszusprechen. Maßgeschneiderte Empfehlungen verbessern das Nutzererlebnis.
Anomalie-Erkennung: Indem Sie Datenpunkte als Einbettungen darstellen, können Sie ungewöhnliche Muster in Daten erkennen. Dies wird durch die Berechnung des Abstands oder der Unähnlichkeit zwischen Datenpunkten erreicht. Datenpunkte mit großen Abständen sind potenzielle Anomalien. Dies kann bei der Erkennung von Betrug, Netzwerksicherheit, Industrieanlagen oder der Prozessüberwachung hilfreich sein.
Weitere Informationen zur Vektoreinbettung und zu [Anwendungsfällen für Vektordatenbanken] (https://zilliz.com/use-cases).
Warum Vektoreinbettungen verwenden
- Mustererkennung: Vektoreinbettungen erfassen Muster, Ähnlichkeiten und Unähnlichkeiten in Daten. Modelle des maschinellen Lernens profitieren von Einbettungen, die aussagekräftige Muster darstellen, und verbessern so die Leistung bei Aufgaben wie Klassifizierung und Clustering.
Dimensionalitätsreduktion: Einbettungen reduzieren die Dimensionalität von Daten. Sie wandeln hochdimensionale Daten in niederdimensionale Vektoren um, was Rechenaufgaben vereinfacht und oft die Effizienz verbessert.
- Semantisches Verständnis: Vektoreinbettungen kodieren semantische Beziehungen zwischen Datenpunkten und erleichtern es Maschinen, komplexe Informationen zu verstehen und zu interpretieren.
- Effiziente Verarbeitung: Numerische Vektoren sind rechnerisch effizient. Algorithmen für maschinelles Lernen können numerische Daten schneller und mit weniger Rechenaufwand verarbeiten.
- Transfer-Lernen: Vortrainierte Einbettungen, wie z. B. Worteinbettungen in [NLP] (https://zilliz.com/learn/A-Beginner-Guide-to-Natural-Language-Processing) oder Bildeinbettungen in der Computer Vision, können für bestimmte Aufgaben fein abgestimmt werden. Dies reduziert den Bedarf an riesigen Mengen markierter Daten, beschleunigt die Modellkonvergenz und verbessert die Modellleistung.
FAQs zur Vektoreinbettung
Wo speichern Sie Vektoreinbettungen?
Sie können Vektoreinbettungen in einer Vektor-Datenbank wie Milvus, einer In-Memory-Datenbank wie Redis, Datenbanken wie PostgreSQL oder in Ihrem Dateisystem speichern. Die Wahl des Speicherortes für Vektoreinbettungen hängt von Faktoren wie Datenvolumen, Zugriffsmustern und den spezifischen Anforderungen der Anwendung ab.
Was ist der Unterschied zwischen Vektordatenbanken und Vektoreinbettungen?
Vektordatenbanken sind spezialisierte Datenbanken, die Vektordaten indizieren, speichern und abrufen. Im Gegensatz dazu sind Vektoreinbettungen numerische Darstellungen von Datenpunkten (wie Sätzen, Bildern oder anderen Objekten) in einem kontinuierlichen Vektorraum. Die Einbettungen erfassen sinnvolle Beziehungen und Muster innerhalb der Daten, während Datenbanken die Vektoren speichern und die Ähnlichkeitssuche auf der Grundlage von Vektor-[Ähnlichkeitsmetriken] optimieren (https://docs.zilliz.com/docs/search-metrics-explained).
Was sind Vektoren?
Vektoren stellen unstrukturierte Daten in Form mehrdimensionaler Zahlenreihen dar. Beispiele sind Audio-Vektoren, Bild-Vektoren, Video oder Text. Sie ermöglichen Operationen wie Vektorsuche. Suchalgorithmen wie KNN, ANNS oder HNSW organisieren Daten so, dass der Abstand zwischen Vektoren schnell berechnet werden kann. Der Abstand zwischen den Vektoren bestimmt die Ähnlichkeit, und die nächstgelegenen Vektoren werden bei der Suche zurückgegeben. Dies ist nützlich für die Clusterbildung, die Erkennung von Anomalien, die umgekehrte Bildsuche, die Beantwortung von Chat-Fragen oder die Erstellung von Empfehlungen. Die Erstellung der Datenstruktur für eine effiziente Vektorsuche wird als [Vektorindex] (https://zilliz.com/learn/vector-index) bezeichnet.
Unterscheiden sich Einbettungen von Vektoren?
Einbettungen vs. Vektoren: Technisch gesehen ist ein Vektor ein grundlegendes mathematisches Objekt, das durch eine mehrdimensionale Anordnung von Zahlen dargestellt wird, während Einbettungen eine Technik zur Umwandlung unstrukturierter Daten in Vektordarstellungen unter Verwendung mathematischer Operationen sind, die semantische Beziehungen zwischen Datenpunkten erfassen. In den meisten Fällen, insbesondere im Kontext des maschinellen Lernens, können "Vektoren" und "Einbettungen" jedoch austauschbar verwendet werden.
Was ist ein Vektorindex?
Ein [Vektorindex] (https://zilliz.com/learn/choosing-right-vector-index-for-your-project), auch bekannt als Vektordatenbankindex oder Ähnlichkeitsindex, ist eine Datenstruktur, die in Vektordatenbanken verwendet wird, um die Abfrage von Vektordaten auf der Grundlage von [Ähnlichkeitsmetriken] (https://docs.zilliz.com/docs/search-metrics-explained) zu organisieren und zu optimieren. Beispiele für Indizes sind FLAT, IVF_FLAT, IVF_PQ, IVF_SQ8, HNSW, und SCANN für CPU-basierte ANN-Suchen und GPU_IVF_FLAT und GPU_IVF_PQ für GPU-basierte ANN-Suchen.
Was ist der Unterschied zwischen vortrainierten Einbettungen und benutzerdefinierten Einbettungen?
Pre-trained Embeddings stammen von vortrainierten Deep-Learning-Modellen, die Checkpoints genannt werden. Bei diesen Checkpoints handelt es sich in der Regel um quelloffene [Transformer-Modelle] (https://zilliz.com/glossary/transformer-models), die mit öffentlichen Daten trainiert wurden. Benutzerdefinierte Einbettungen stammen von Ihren eigenen Deep-Learning-Modellen, die auch auf Ihren eigenen, domänenspezifischen Trainingsdaten trainiert wurden.
Erzeugt die Zilliz-Vektordatenbank Vektoreinbettungen?
Ja. Zilliz Cloud ist ein vollständig verwalteter Vektordatenbankdienst von Milvus, der Milliarden von Vektoreinbettungen erstellen, speichern und abrufen kann.
Zilliz Cloud verfügt über eine leistungsstarke Pipelines-Funktion, mit der Sie unstrukturierte Daten in hochwertige, durchsuchbare Vektoreinbettungen umwandeln können. Diese Funktion rationalisiert den Vektorisierungs-Workflow für Entwickler und deckt die Erstellung, den Abruf und die Löschung von Vektoren für schnelle und effiziente Abläufe ab. Außerdem werden die Wartungskosten für Entwickler und Unternehmen minimiert, da sie keine zusätzlichen Technologien wie Einbettungsmodelle zur Erstellung ihrer Anwendungen benötigen.
Beste Vektordatenbanken für Vektoreinbettungen
Es gibt keine allgemeingültige "beste" Vektordatenbank; die Wahl hängt von Ihren Bedürfnissen ab. Daher ist es wichtig, die Skalierbarkeit, Funktionalität, Leistung und Kompatibilität einer Vektordatenbank mit Ihren speziellen Anwendungsfällen zu bewerten.
Moderne Datenbanken zur Vektoreinbettung sollten in der Lage sein, Vektoren effizient zu durchsuchen, anhand von Metadaten zu filtern und sowohl eine semantische Suche als auch eine Stichwortsuche durchzuführen. Sie sollten außerdem skalierbar, konfigurierbar und leistungsfähig sein, um Arbeitslasten auf Unternehmensebene zu bewältigen.
Ein anerkanntes Open-Source-Benchmarking-Tool, das bei der Bewertung hilft, ist [ANN-Benchmark] (https://github.com/erikbern/ann-benchmarks/). ANN-Benchmark ermöglicht die grafische Darstellung der Ergebnisse von Testaufrufen/Abfragen pro Sekunde verschiedener Algorithmen auf der Grundlage einer Reihe von vorberechneten Datensätzen. Auf der x-Achse wird die Recall-Rate gegen die QPS auf der y-Achse aufgetragen, um die Leistung der einzelnen Algorithmen bei unterschiedlichen Genauigkeitsgraden zu veranschaulichen.
Neben der Verwendung von Benchmarking-Tools können Sie auch diese [Vergleichstabellen] (https://zilliz.com/comparison) von gängigen Open-Source-Vektordatenbanken und [vollständig verwalteten Vektordatenbankdiensten] (https://zilliz.com/comparison/pinecone-vs-zilliz-vs-milvus) zu ihrer Architektur, Skalierbarkeit, Leistung, Anwendungsfällen, Kosten und Funktionssätzen heranziehen.
- Was sind Vektoreinbettungen?
- Wie werden Vektoreinbettungen erstellt?
- Sparse, Dense, Binary Vector Embeddings
- A Simple Guide to Creating Vector Embeddings
- Wie funktionieren Einbettungen?
- Verschiedene Arten von Vektoreinbettungen auf der Grundlage der Art der darzustellenden Daten
- Anwendungen von Vektoreinbettungen
- Warum Vektoreinbettungen verwenden
- FAQs zur Vektoreinbettung
Inhalte
Kostenlos starten, einfach skalieren
Testen Sie die vollständig verwaltete Vektordatenbank, die für Ihre GenAI-Anwendungen entwickelt wurde.
Zilliz Cloud kostenlos ausprobieren