Was sind Einbettungen?
Einbettungen sind Darstellungen von Werten oder Objekten wie Text, Bilder und Audio, die für maschinelle Lernmodelle und semantische Suchalgorithmen bestimmt sind. Sie übersetzen solche Objekte in eine mathematische Form, die den Faktoren oder Merkmalen entspricht, die sie haben oder nicht haben, sowie den Kategorien, zu denen sie gehören.
Im Wesentlichen ermöglichen Einbettungen den maschinellen Lernmodellen das Auffinden ähnlicher Objekte. Bei einem Foto oder einem Dokument könnte ein maschinelles Lernmodell, das Einbettungen verwendet, ein ähnliches Foto oder Dokument finden. Da Einbettungen es Computern ermöglichen, die Beziehungen zwischen Wörtern und anderen Objekten zu verstehen, sind sie grundlegend für die künstliche Intelligenz (KI).
Die Dokumente oben rechts in diesem zweidimensionalen Raum können zum Beispiel miteinander in Beziehung stehen:
Technisch gesehen sind Einbettungen Vektoren, die von maschinellen Lernmodellen erstellt werden, um aussagekräftige Daten über jedes Objekt zu erfassen.
Was ist ein Vektor beim maschinellen Lernen?
In der Mathematik ist ein Vektor eine Reihe von Zahlen, die einen Punkt in einem dimensionalen Raum definieren. Praktischer ausgedrückt, ist ein Vektor eine Liste von Zahlen – wie {{1989, 22, 9, 180}}. Jede Zahl gibt an, wo sich das Objekt entlang einer bestimmten Dimension befindet.
Beim maschinellen Lernen ermöglichen die Vektoren die Suche nach ähnlichen Objekten. Ein Vektorsuchalgorithmus muss einfach nur zwei Vektoren finden, die in einer Vektorendatenbank nahe beieinander liegen.
Zum besseren Verständnis nehmen Sie Breiten- und Längengrad als Beispiel. Diese beiden Dimensionen – Nord-Süd bzw. Ost-West – können die Lage eines beliebigen Ortes auf der Erde angeben Die Stadt Vancouver in der kanadischen Provinz British Columbia kann durch die Breiten- und Längengradkoordinaten {{49°15’40 „N, 123°06’50 „W}} dargestellt werden. Diese Liste von zwei Werten ist ein einfacher Vektor.
Angenommen Sie versuchen, eine Stadt zu finden, die ganz in der Nähe von Vancouver liegt. Ein Mensch würde einfach auf eine Karte schauen, während ein maschinelles Lernmodell stattdessen den Breiten- und Längengrad (oder Vektor) betrachten und einen Ort mit einem ähnlichen Breiten- und Längengrad finden könnte. Die Stadt Burnaby liegt bei {{49°16’N, 122°58’W}} – sehr nahe an {{49°15’40’N, 123°06’50’W}}. Daher kann das Modell korrekt schlussfolgern, dass Burnaby in der Nähe von Vancouver liegt.
Mehr Dimensionen zu Vektoren hinzufügen
Stellen Sie sich nun vor, dass Sie eine Stadt suchen, die nicht nur in der Nähe von Vancouver liegt, sondern auch eine ähnliche Größe hat. Fügen wir diesem Modell der Standorte eine dritte „Dimension“ zum Breiten- und Längengrad hinzu: die Bevölkerungszahl. Die Bevölkerungszahl kann zum Vektor jeder Stadt hinzugefügt werden, und kann wie eine Z-Achse behandelt werden, wobei der Breiten- und Längengrad die Y- und X-Achsen darstellen.
Der Vektor für Vancouver lautet nun {{49°15’40 „N, 123°06’50 „W, 662.248*}. Mit dieser dritten Dimension liegt Burnaby nicht mehr besonders nahe an Vancouver, da seine Einwohnerzahl nur 249.125* beträgt. Das Modell könnte stattdessen die Stadt Seattle im US-Bundesstaat Washington, finden, die einen Vektor von {{47°36’35"N 122°19’59"W, 749,256**} hat.
*Stand 2021.
**Stand 2022.
Dies ist ein recht einfaches Beispiel dafür, wie Vektoren und Ähnlichkeitssuche funktionieren. Aber um von Nutzen zu sein, müssen Modelle für maschinelles Lernen möglicherweise mehr als drei Dimensionen erzeugen, wodurch sehr viel komplexere Vektoren entstehen.
Vektoren mit noch mehr Dimensionen
Wie kann ein Modell zum Beispiel erkennen, welche TV-Serien einander ähnlich sind und daher wahrscheinlich von denselben Zuschauern gesehen werden? Es gibt eine Vielzahl von Faktoren, die berücksichtigt werden müssen: Länge der Folgen, Anzahl der Folgen, Genreklassifizierung, Anzahl der gemeinsamen Zuschauer, Schauspieler in jeder Serie, Jahr der Erstausstrahlung und so weiter. All dies können „Dimensionen“ sein, und jede Sendung kann als Punkt entlang jeder dieser Dimensionen dargestellt werden.
Mithilfe mehrdimensionaler Vektoren können wir feststellen, ob die Sitcom Seinfeld der Horrorserie Wednesday ähnlich ist. Seinfeld wurde 1989 zum ersten Mal ausgestrahlt, Wednesday im Jahr 2022. Die beiden Shows haben unterschiedliche Folgenlängen – Seinfeld 22–24 Minuten und Wednesday 46–57 Minuten – und so weiter. Wenn wir uns ihre Vektoren ansehen, können wir erkennen, dass diese Sendungen wahrscheinlich sehr unterschiedliche Punkte in einer dimensionalen Darstellung von TV-Sendungen einnehmen.
| TV-Serie | Genre | Jahr der Erstausstrahlung | Länge der Folgen | Staffeln (bis 2023) | Folgen (bis 2023) |
|---|---|---|---|---|---|
| Seinfeld | Sitcom | 1989 | 22–24 | 9 | 180 |
| Mittwoch | Horror | 2022 | 46–57 | 1 | 8 |
Wir können sie als Vektoren ausdrücken, so wie wir es mit den Breiten- und Längengraden getan haben, aber diesmal mit mehr Werten:
Seinfeld-Vektor: {[Sitcom], 1989, 22-24, 9, 180}
Wednesday-Vektor: {[Horror], 2022, 46-57, 1, 8}
Ein maschinelles Lernmodell könnte die Sitcom Cheers als wesentlich ähnlicher zu Seinfeld identifizieren. Sie gehört zum gleichen Genre, wurde 1982 erstmals ausgestrahlt, hat eine Folgenlänge von 21–25 Minuten, 11 Staffeln und 275 Folgen.
Seinfeld-Vektor: {[Sitcom], 1989, 22-24, 9, 180}
Cheers-Vektor: {[Sitcom], 1982, 21-25, 11, 275}
In unseren obigen Beispielen war eine Stadt ein Punkt entlang der beiden Dimensionen Breitengrad und Längengrad; wir fügten dann eine dritte Dimension hinzu: die Bevölkerungszahl. Wir haben auch die Position dieser TV-Serien entlang von fünf Dimensionen analysiert.
Anstelle von zwei, drei oder fünf Dimensionen ist eine TV-Serie in einem Modell für maschinelles Lernen ein Punkt entlang von vielleicht hundert oder tausend Dimensionen – je nachdem, wie viele das Modell berücksichtigen möchte.
Wie funktioniert die Einbettung?
Einbettung ist der Prozess der Erstellung von Vektoren mithilfe von Deep Learning. Eine „Einbettung“ ist der Output dieses Prozesses – mit anderen Worten, der Vektor, der von einem Deep Learning-Modell zum Zweck der Ähnlichkeitssuche durch dieses Modell erstellt wird.
Einbettungen, die nahe beieinander liegen – so wie Seattle und Vancouver nahe beieinander liegende Breiten- und Längengrade und vergleichbare Bevölkerungszahlen haben - können als ähnlich angesehen werden. Mithilfe von Einbettungen kann ein Algorithmus eine relevante TV-Serie vorschlagen, ähnliche Orte finden oder erkennen, welche Wörter wahrscheinlich zusammen oder ähnlich verwendet werden, wie es bei Sprachmodellen der Fall ist.
Wie neuronale Netzwerke Einbettungen erstellen
Neuronale Netzwerke sind Deep-Learning-Modelle, die die Architektur des menschlichen Gehirns nachahmen. So wie das Gehirn aus Neuronen besteht, die elektrische Impulse aneinander abgeben, bestehen neuronale Netzwerke aus virtuellen Knoten, die miteinander kommunizieren, wenn ihre Eingaben einen bestimmten Schwellenwert überschreiten.
Neuronale Netzwerke bestehen aus mehreren Schichten: einer Inputschicht, einer Outputschicht und einer beliebigen Anzahl von „verborgenen“ Schichten dazwischen. Die verborgenen Schichten können Inputs auf verschiedene Weise transformieren, je nach Definition des Modells.
Die Erstellung von Einbettungen ist eine verborgene Schicht. Sie findet in der Regel statt, bevor weitere Schichten die Inputs verarbeiten. So müsste ein Mensch zum Beispiel nicht definieren, wo jede TV-Serie entlang hundert verschiedener Dimensionen einzuordnen ist. Stattdessen würde eine verborgene Schicht im neuronalen Netzwerk dies automatisch erledigen. Die TV-Serie könnte dann von den anderen verborgenen Schichten anhand dieser Einbettung weiter analysiert werden, um ähnliche Serien zu finden. Schließlich kann die Outputschicht andere Serien vorschlagen, die der Zuschauer vielleicht sehen möchte.
Die Erstellung dieser Einbettungsschicht erfordert zunächst einen gewissen manuellen Aufwand. Ein Programmierer kann das neuronale Netzwerk mit Beispielen füttern, wie eine Einbettung zu erstellen ist, welche Dimensionen einbezogen werden sollen und so weiter. Schließlich kann die Einbettungsschicht selbstständig arbeiten – auch wenn der Programmierer das Modell weiter verfeinern kann, um bessere Empfehlungen zu erhalten.
Wie werden Einbettungen in großen Sprachmodellen (LLMs) verwendet?
Bei großen Sprachmodellen (LLMs), wie sie für KI-Tools wie ChatGPT verwendet werden, geht die Einbettung noch einen Schritt weiter. Neben dem Wort selbst wird auch der Kontext jedes Wortes eingebettet. Die Bedeutung ganzer Sätze, Absätze und Artikel kann durchsucht und analysiert werden. Obwohl dies eine Menge Rechenleistung erfordert, kann der Kontext als Einbettung für Abfragen gespeichert werden, was Zeit und Rechenleistung für zukünftige Abfragen spart.
Wie erleichtert Cloudflare die Verwendung von Einbettungen?
Für Entwickler, die KI-gestützte Anwendungen mit Cloudflare Workers bauen möchten, bietet Cloudflare Workers AI an. In Verbindung damit bietet Cloudflare auch Vectorize an, eine weltweit verteilte Vektorendatenbank. Zusammen machen diese Dienste die Erstellung und Abfrage von Einbettungen schneller, einfacher und kostengünstiger. So können Entwickler KI-Anwendungen erstellen, ohne eine Backend-Infrastruktur aufbauen zu müssen. Erfahren Sie mehr über Vectorize und Workers AI.
FAQs
Was ist eine Einbettung im Zusammenhang mit maschinellem Lernen?
Eine Einbettung ist eine numerische Darstellung oder ein Vektor eines realen Objekts wie Text, Bild oder Dokument. Modelle für maschinelles Lernen erstellen diese Einbettungen, um Objekte in eine mathematische Form zu übersetzen. Dies ermöglicht es ihnen, Beziehungen zu verstehen und ähnliche Elemente zu finden.
Wie ermöglichen Einbettungen die Suche nach Ähnlichkeiten?
Einbettungen übersetzen die Eigenschaften eines Objekts in eine Liste von Zahlen, einen sogenannten Vektor, der einen Punkt in einem mehrdimensionalen Raum definiert. Um ähnliche Objekte zu finden, muss ein Algorithmus lediglich zwei Vektoren finden, die in diesem Raum nahe beieinander liegen.
Was ist ein Vektor beim maschinellen Lernen?
Ein Vektor ist eine Reihe von Zahlen, die die Position eines Objekts über mehrere Dimensionen oder Merkmale hinweg darstellt. Eine TV-Serie könnte beispielsweise durch einen Vektor dargestellt werden, der ihr Genre, ihr Erscheinungsjahr und die Anzahl der Episoden enthält. Durch den Vergleich dieser Vektoren kann ein Modell bestimmen, wie ähnlich zwei Serien sind.
Wie werden Einbettungen erstellt?
Einbettungen werden in der Regel mit einem Deep-Learning-Modell erstellt, das als neuronales Netzwerk bezeichnet wird. Eine „verborgene” Schicht innerhalb des neuronalen Netzwerks verarbeitet automatisch eine Eingabe (z. B. den Namen einer TV-Serie) und wandelt sie anhand ihrer verschiedenen Attribute in einen mehrdimensionalen Vektor um.
Wie werden Einbettungen in großen Sprachmodellen (LLMs) verwendet?
In LLMs werden Einbettungen verwendet, um nicht nur einzelne Wörter, sondern auch deren Kontext darzustellen. Dadurch können die Modelle die Bedeutung ganzer Sätze, Absätze und Artikel verstehen, was für die Suche, Analyse und Generierung menschenähnlicher Texte von entscheidender Bedeutung ist.