Dies ist ein Projekt, an dem ich gerade arbeite. Ich versuche, eine Liste mit Fragen und Antworten für Interviews zur generativen KI zusammenzustellen.
Ich verwende diese Referenz als Grundlage. Ich danke ihnen für die Zusammenstellung. Allerdings nehme ich mir bei der Bearbeitung der Fragen und Antworten viele Freiheiten, sie sind vollständig meine eigenen.
Hinweis: Ich versuche, die Antworten, die ich selbst schreibe, auf ein Minimum zu beschränken, da ich in keiner Weise eine maßgebliche Quelle zu diesem Thema bin oder bilde. Ich werde im Rahmen meiner Möglichkeiten Referenzen bereitstellen. Aus Gründen der Lesbarkeit und um den Wartungsaufwand auf ein Minimum zu beschränken, habe ich auf jegliche visuelle Hilfe verzichtet. Die von mir zitierten Ressourcen und Referenzen enthalten eine Fülle von Informationen, meist mit Bildern.
Ich habe vor, dies auf die generative KI im Allgemeinen auszudehnen, nicht nur auf die Sprache, und alles von Diffusionsmodellen bis hin zu Vision-Sprachmodellen abzudecken. Sobald ich die Grundstruktur erstellt habe und mit den vorläufigen Ergebnissen zufrieden bin, werde ich daran arbeiten, eine effiziente Methodik für Beiträge zu diesem Repository zu etablieren, und dann werde ich es für Beiträge öffnen, aber vorerst möchte ich es behalten einfach und fokussiert.
Wichtig:
Ich denke, es muss möglicherweise klargestellt werden, dass die Antworten, die ich gebe, unabhängig davon, ob es sich um meine eigenen Beiträge handelt oder ob ich eine Quelle zitiere, in keiner Weise oder Form endgültig sind. Ich versuche, Ihnen den Einstieg zu erleichtern Um auf dem richtigen Weg zu sein und Ihnen eine allgemeine Vorstellung davon zu geben, was Sie erwartet, sollten Sie auf jeden Fall alle von mir bereitgestellten Ressourcen und noch mehr lesen. Wenn Sie möchten, dass dies Ihre letzte Station ist, sind Sie hier falsch. Hier fängt es an.
Auch wenn Sie gerade erst anfangen, ist mein einziger Rat:
Machen Sie es sich bequem, Zeitungen zu lesen, denn sie enden nie .
Artikel zum Lesen eines Artikels: Wie man einen Artikel liest
1. LLM- und Prompting-Grundlagen
2. Retrieval Augmented Generation (RAG)
3. Chunking-Strategien
4. Einbetten von Modellen zum Abrufen
5. Vektorabfrage, Datenbanken und Indizes
6. Erweiterte Suchalgorithmen
7. Interne Funktionsweise des Sprachmodells
Betrachten wir einen Datensatz, bei dem jeder Datenpunkt eine Katze darstellt. Lassen Sie uns es auf jeden Modelltyp übertragen und sehen, wie sie sich unterscheiden:
Lassen Sie uns die Definition eines Large Language Model (LLM) von Grund auf erstellen:
Weiterführende Literatur: Common Crawl
Große Sprachmodelle werden oft in mehreren Phasen trainiert. Diese Phasen werden oft als Vortraining, Feinabstimmung und Ausrichtung bezeichnet.
Der Zweck dieser Phase besteht darin, das Modell unbeaufsichtigt der gesamten Sprache auszusetzen. Dies ist oft der teuerste Teil des Trainings und erfordert viel Rechenaufwand. Das Vortraining wird oft für etwas wie den Common Crawl-Datensatz durchgeführt, verarbeitete Versionen des Datensatzes wie FineWeb und RedPajama werden oft für das Vortraining verwendet. Um diese umfassende Art des Lernens zu erleichtern, gibt es mehrere Trainingsaufgaben, die wir verwenden können, wie z. B. Masked Language Modeling (MLM), Next Sentence Prediction (NSP) und mehr.
Die Mask Language Modeling basiert auf dem Cloze-Test, bei dem wir ein Wort in einem Satz ausblenden und das Modell bitten, es vorherzusagen. Ähnlich wie beim Ausfüllen des Blindtests. Es unterscheidet sich von der Aufforderung an das Modell, das nächste Wort in einem Satz vorherzusagen, da das Modell den Kontext des Satzes und nicht nur die Wortfolge verstehen muss.
Die Vorhersage des nächsten Satzes ist eine Aufgabe, bei der dem Modell zwei Sätze vorgegeben werden und es vorhersagen muss, ob der zweite Satz auf den ersten folgt. So einfach es auch klingt, es erfordert, dass das Modell den Kontext des ersten Satzes und die Beziehung zwischen den beiden Sätzen versteht.
Eine ausgezeichnete Quelle, um mehr über diese Aufgaben zu erfahren, ist das BERT-Papier.
Diese Phase ist viel einfacher als das Vortraining, da das Modell bereits viel über Sprache gelernt hat und wir ihm jetzt nur noch eine bestimmte Aufgabe beibringen müssen. Alles, was wir für diese Phase benötigen, sind die Eingabedaten (Eingabeaufforderungen) und die Beschriftungen (Antworten).
Diese Phase ist oft die wichtigste und komplexeste Phase. Sie erfordert die Verwendung separater Belohnungsmodelle, die Verwendung verschiedener Lernparadigmen wie Reinforcement Learning und mehr.
In dieser Phase geht es vor allem darum, die Vorhersagen des Modells an den Vorlieben des Menschen auszurichten. Diese Phase ist oft mit der Feinabstimmungsphase verknüpft. Eine unverzichtbare Lektüre für diese Phase ist das InstructGPT-Papier. In diesem Dokument wurde das Konzept des Reinforcement Learning from Human Feedback (RLHF) vorgestellt, das Proximal Policy Optimization nutzt.
Zu den weiteren Methoden, die Vorhersagen des Modells an menschlichen Vorlieben auszurichten, gehören:
Token sind die kleinste Texteinheit, die das Modell verstehen kann. Sie können Wörter, Unterwörter oder Zeichen sein.
Tokenizer sind für die Umwandlung von Text in Token verantwortlich. Sie können so einfach sein wie das Aufteilen des Textes durch Leerzeichen oder so komplex wie die Verwendung von Unterwort-Tokenisierung. Die Wahl des Tokenizers kann einen erheblichen Einfluss auf die Leistung des Modells haben, da sie sich auf die Fähigkeit des Modells auswirken kann, den Kontext des Textes zu verstehen.
Einige gängige Tokenizer sind:
Empfohlene Lektüre (und Anschauen):
Dies ist eine sehr komplexe Frage, aber hier sind einige Ressourcen, um dieses Thema weiter zu untersuchen:
Zu den Parametern gehören:
Jeder dieser Parameter kann angepasst werden, um die Leistung des Modells und die Qualität des generierten Texts zu verbessern.
Empfohlene Lektüre:
Um das nächste Token in der Sequenz auszuwählen, werden Decodierungsstrategien verwendet. Sie können von einfacher gieriger Decodierung bis hin zu komplexeren Sampling-Strategien reichen.
Zu den gängigen Dekodierungsstrategien gehören:
Zu den neueren Dekodierungsstrategien gehört die spekulative Dekodierung (unterstützte Dekodierung), ein wildes Konzept, bei dem Kandidaten-Tokens aus einem kleineren (und damit schnelleren) Modell verwendet werden, um sehr schnell eine Antwort von einem größeren Modell zu generieren.
Empfohlene Lektüre:
Beim Dekodierungsprozess generieren LLMs autoregressiv Text, jeweils einen Token. Es gibt mehrere Stoppkriterien, anhand derer bestimmt werden kann, wann die Texterstellung beendet werden soll. Zu den üblichen Abbruchkriterien gehören:
A prompt contains any of the following elements:
Instruction - a specific task or instruction you want the model to perform
Context - external information or additional context that can steer the model to better responses
Input Data - the input or question that we are interested to find a response for
Output Indicator - the type or format of the output.
Referenz: Prompt Engineering Guide
Empfohlene Lektüre:
Referenz: Prompt Engineering Guide
Empfohlene Lektüre:
Das Lernen im Kontext ist ein sehr intuitives und leicht verständliches Lernparadigma in der Verarbeitung natürlicher Sprache. Es umfasst Konzepte wie das Wenig-Schuss-Lernen. Es kann so einfach sein, ein paar Beispiele für die Aufgabe bereitzustellen, die das Modell ausführen soll, und das Modell lernt aus diesen Beispielen und generiert entsprechende Antworten.
Empfohlene Lektüre:
Es hat sich gezeigt, dass In-Context-Lernen nur möglich ist, wenn die Modelle auf eine bestimmte Größe skaliert werden und wenn die Modelle für verschiedene Aufgaben trainiert werden. Das Lernen im Kontext kann fehlschlagen, wenn das Modell nicht in der Lage ist, komplexe Argumentationsaufgaben auszuführen.
Empfohlene Lektüre:
Dies ist eine sehr weit gefasste Frage, aber das Folgende wird Ihnen dabei helfen, ein grundlegendes Verständnis dafür zu entwickeln, wie Sie Eingabeaufforderungen für eine bestimmte Aufgabe entwerfen:
Alternativ untersuchen neuere Forschungsrichtungen die Verwendung einer algorithmischen Methode zur Optimierung der Eingabeaufforderungen. Dies wurde ausführlich im DSPy-Paket untersucht, das die Mittel dafür bereitstellt. Ihre Arbeit wird ebenfalls in diesem Artikel veröffentlicht.
Auf diese Frage gibt es keine Antwort. Ich verwende sie als Vorwand, um diesen Verweis zu verlinken:
Es gibt mehrere Methoden, um LLMs dazu zu bringen, strukturierte Ausgaben zu generieren, die jedes Mal analysiert werden können. Die gängigen Methoden hängen vom Konzept des Funktionsaufrufs in LLMs ab.
Empfohlene Lektüre und Ansehen:
The term describes when LLMs produce text that is incorrect, makes no sense, or is unrelated to reality
Referenz: LLM-Halluzination – Typen, Ursachen und Lösung von Nexla
Empfohlene Lektüre:
Es ist bekannt, dass das Konzept des Chain-of-Thought Prompting die Denkfähigkeit in LLMs verbessert. Bei dieser Technik wird eine komplexe Aufgabe in eine Reihe einfacherer Aufgaben zerlegt und dem Modell die Zwischenausgaben jeder Aufgabe bereitgestellt, um es zur endgültigen Ausgabe zu führen.
Empfohlene Lektüre:
Retrieval Augmented Generation (RAG) ist ein gängiges Entwurfsmuster, um LLM-Antworten in Fakten zu verankern. Bei dieser Technik werden relevante Informationen aus einer Wissensdatenbank abgerufen und als Leitfaden für die Textgenerierung durch das LLM verwendet.
Empfohlene Lektüre:
Retrieval Augmented Generation (RAG) besteht aus zwei Hauptkomponenten:
Die Intuition hinter RAG ist, dass wir durch die Kombination der Stärken abrufbasierter und generationsbasierter Modelle ein System schaffen können, das in der Lage ist, faktenbasierten Text zu generieren und so Halluzinationen einzudämmen.
RAG ist oft die bevorzugte Technik zur Beantwortung komplexer Fragen auf der Grundlage einer Wissensdatenbank, da sie es dem Modell ermöglicht, externe Informationen zu nutzen, um genauere und informativere Antworten zu liefern. Es ist nicht immer möglich, ein Modell anhand proprietärer Daten zu optimieren, und RAG bietet eine Möglichkeit, externes Wissen einzubeziehen, ohne dass eine Feinabstimmung erforderlich ist.
Eine vollständige Lösung, die RAG nutzt, um eine komplexe Frage auf der Grundlage einer Wissensdatenbank zu beantworten, würde die folgenden Schritte umfassen:
Dies ist eine sehr komplexe Frage, aber hier sind einige Ressourcen, um dieses Thema weiter zu untersuchen:
Beim Chunking von Text wird ein großer Textabschnitt in kleinere, besser handhabbare Abschnitte zerlegt. Im Kontext von RAG-Systemen ist Chunking wichtig, da es der Retriever-Komponente ermöglicht, relevante Informationen effizient aus der Wissensdatenbank abzurufen. Durch die Aufteilung der Abfrage in kleinere Abschnitte kann sich der Abrufer auf das Abrufen der für jeden Abschnitt relevanten Informationen konzentrieren, was die Genauigkeit und Effizienz des Abrufprozesses verbessern kann.
Beim Training von Einbettungsmodellen, die häufig als Retriever verwendet werden, werden positive und negative Textpaare verwendet, um anzugeben, welche Textteile einander entsprechen. Beispiele hierfür sind die Titel, Kopf- und Unterüberschriften einer Wikipedia-Seite sowie die entsprechenden Absätze , Reddit-Beiträge und ihre am häufigsten bewerteten Kommentare usw.
Oft wird eine Benutzerabfrage eingebettet und ein Index abgefragt. Wenn der Index ganze Dokumente enthält, die nach Top-K-Treffern abgefragt werden sollen, wäre ein Retriever nicht in der Lage, die relevantesten Informationen wie die abzufragenden Dokumente zurückzugeben wäre zu umfangreich, um es zu verstehen.
Zusammenfassend lässt sich sagen, dass wir Text aufteilen, weil:
Angenommen, wir haben ein Buch mit 24 Kapiteln und insgesamt 240 Seiten. Das würde bedeuten, dass jedes Kapitel 10 Seiten und jede Seite 3 Absätze enthält. Nehmen wir an, jeder Absatz enthält 5 Sätze und jeder Satz enthält 10 Wörter. Insgesamt haben wir: 10 * 5 * 3 * 10 = 1500 Wörter pro Kapitel. Wir haben auch 1500 * 24 = 36000 Wörter im gesamten Buch. Der Einfachheit halber ist unser Tokenizer ein Leerraum-Tokenizer und jedes Wort ist ein Token.
Wir wissen, dass wir höchstens ein Einbettungsmodell haben, das 8192 Token einbetten kann:
All dies soll verdeutlichen, dass es keine feste Möglichkeit gibt, Text aufzuteilen. Die beste Möglichkeit, Text aufzuteilen, besteht darin, zu experimentieren und herauszufinden, was für Ihren Anwendungsfall am besten funktioniert.
Eine maßgebliche Quelle zu diesem Thema ist das hervorragende Notizbuch und das dazugehörige Video von Greg Kamradt, in dem die verschiedenen Ebenen der Textaufteilung erläutert werden.
Das Notizbuch geht außerdem auf Möglichkeiten ein, die verschiedenen Ebenen der Textaufteilung auszuwerten und zu visualisieren und wie man sie in einem Retrieval-System verwendet.
Empfohlene Besichtigung:
Bei Vektoreinbettungen handelt es sich um die Abbildung der Textsemantik in einen N-dimensionalen Raum, in dem Vektoren Text darstellen. Innerhalb des Vektorraums wird ähnlicher Text durch ähnliche Vektoren dargestellt.
Empfohlene Lektüre:
Einbettungsmodelle sind Sprachmodelle, die zum Zweck der Vektorisierung von Text trainiert werden. Sie sind häufig BERT-Derivate und werden auf einem großen Textkorpus trainiert, um die Semantik des Textes zu erlernen. Aktuelle Trends zeigen jedoch auch, dass es möglich ist, viel größere Sprachmodelle zu verwenden zu diesem Zweck wie Mistral oder Llama.
Empfohlene Lektüre und Ansehen:
Einbettungsmodelle werden häufig als Retriever verwendet. Um ihre Retrievalfähigkeiten zu nutzen, wird semantische Textähnlichkeit verwendet, wobei die Ähnlichkeit der von den Modellen erzeugten Vektoren mithilfe von Metriken wie Skalarprodukt, Kosinusähnlichkeit usw. gemessen wird.
Empfohlene Lektüre:
Einbettungsmodelle werden mit Kontrastverlust trainiert, der vom einfachen Kontrastverlust bis hin zu komplexeren Verlustfunktionen wie InfoNCE und Multiple Negative Ranking Loss reicht. Auch beim Training kommt ein Prozess zum Einsatz, der als Hard Negative Mining bekannt ist.
Empfohlene Lektüre:
Kontrastives Lernen ist eine Technik zum Trainieren von Einbettungsmodellen. Dabei wird gelernt, zwischen positiven und negativen Textpaaren zu unterscheiden. Das Modell ist darauf trainiert, die Ähnlichkeit zwischen positiven Paaren zu maximieren und die Ähnlichkeit zwischen negativen Paaren zu minimieren.
Empfohlene Lektüre:
Cross-Encoder und Bi-Encoder sind zwei Arten von Modellen, die für Textabrufaufgaben verwendet werden. Der Hauptunterschied zwischen den beiden besteht darin, wie sie die Abfrage und das Dokument kodieren.
Reranker sind in der Regel Kreuzkodierer, sie kodieren die Abfrage und das Dokument zusammen und berechnen die Ähnlichkeit zwischen beiden. Dadurch können sie die Interaktion zwischen der Abfrage und dem Dokument erfassen und bessere Ergebnisse als Bi-Encoder erzielen, allerdings auf Kosten einer viel höheren Rechenkomplexität.
Texteinbettungsmodelle sind in der Regel Bi-Encoder, sie kodieren die Abfrage und das Dokument getrennt und berechnen die Ähnlichkeit zwischen den beiden Einbettungen. Dadurch sind sie recheneffizienter als Cross-Encoder, aber sie sind nicht in der Lage, die explizite Interaktion zwischen der Abfrage und dem Dokument zu erfassen.
Dichte Einzelvektordarstellungen sind häufig die Norm in Texteinbettungsmodellen. Sie werden normalerweise durch Zusammenfassen der kontextualisierten Einbettungen nach einem Vorwärtsdurchlauf des Modells erstellt. Zu den Poolingtechniken gehören Mean Pooling, Max Pooling und CLS-Token-Pooling. Die Intuition hinter dichten Einzelvektordarstellungen besteht darin, dass sie einfach zu implementieren sind, für eine Vielzahl von Aufgaben verwendet werden können und sich leicht indizieren und abrufen lassen. Dichte Darstellungen können auch die Semantik des Textes erfassen und werden häufig im Ranking der zweiten Stufe verwendet.
Es hat sich gezeigt, dass dichte Darstellungen mit mehreren Vektoren bessere Ergebnisse liefern als dichte Darstellungen mit einzelnen Vektoren. Sie werden durch Überspringen des Pooling-Schritts und unter Verwendung der kontextualisierten Einbettungen in Form einer Matrix erstellt. Die Abfrage- und Dokumenteinbettungen werden dann verwendet, um die Ähnlichkeit zwischen den zu berechnen Zweitens haben Modelle wie ColBERT gezeigt, dass sie bessere Ergebnisse liefern als dichte Einzelvektordarstellungen. Ein Operator wie MaxSim wird verwendet, um die Ähnlichkeit zwischen der Abfrage und den Dokumenteinbettungen zu berechnen. Die Intuition hinter dichten Darstellungen mit mehreren Vektoren besteht darin, dass sie mehr Informationen über den Text erfassen und bessere Ergebnisse liefern können als dichte Darstellungen mit einzelnen Vektoren. Modelle wie ColBERT bieten auch die Möglichkeit, Dokumenteinbettungen vorab zu berechnen, was einen sehr effizienten Abruf ermöglicht. Dichte Darstellungen können auch die Semantik des Textes erfassen und werden häufig im Ranking der zweiten Stufe verwendet.
Empfohlene Lektüre:
Sparse-Textdarstellungen sind die älteste Form von Vektorraummodellen beim Informationsabruf. Sie basieren normalerweise auf TF-IDF-Derivaten und Algorithmen wie BM25 und bleiben eine Grundlage für Textabrufsysteme. Ihre Spärlichkeit ergibt sich aus der Tatsache, dass die Dimension der Einbettungen häufig der Größe des Vokabulars entspricht. Die Intuition hinter spärlichen Darstellungen ist, dass sie erklärbar, recheneffizient, einfach zu implementieren und äußerst effizient für die Indizierung und den Abruf sind. Sparse-Repräsentationen konzentrieren sich auch auf lexikalische Ähnlichkeit und werden häufig in der Rangfolge der ersten Stufe verwendet.
Empfohlene Lektüre:
Sparse-Texteinbettungen ermöglichen die Verwendung invertierter Indizes beim Abruf.
Empfohlene Lektüre:
Zu den Metriken zum Benchmarking der Leistung eines Einbettungsmodells gehören:
Empfohlene Lektüre und Ansehen:
Die Auswahl eines Einbettungsmodells kann ein entscheidender Faktor für die Leistung Ihres Abrufsystems sein und sollte bei der Auswahl sorgfältig überlegt werden. Es handelt sich um einen umfassenden Prozess, der Experimente erfordert, und die folgenden Ressourcen helfen Ihnen, eine fundierte Entscheidung zu treffen:
Empfohlene Besichtigung:
Eine Vektordatenbank ist eine Datenbank, die für die Speicherung und Abfrage von Vektordaten optimiert ist. Es ermöglicht das effiziente Speichern und Abrufen von Vektoreinbettungen und wird häufig in Anwendungen verwendet, die eine semantische Ähnlichkeitssuche erfordern. Vektordatenbanken sind ein neues Paradigma, das als Teil des Technologie-Stacks entstanden ist, der erforderlich ist, um mit den Anforderungen von GenAI-Anwendungen Schritt zu halten.
Empfohlene Besichtigung:
Herkömmliche Datenbanken sind für die Speicherung und Abfrage strukturierter Daten wie Text, Zahlen und Datumsangaben optimiert. Sie sind nicht für den effizienten Umgang mit Vektordaten ausgelegt. Vektordatenbanken hingegen sind speziell für die Speicherung und Abfrage von Vektordaten konzipiert. Sie verwenden spezielle Indizierungstechniken und Algorithmen, um eine schnelle und genaue Ähnlichkeitssuche wie Quantisierung und Clustering von Vektoren zu ermöglichen.
Eine Vektordatenbank enthält normalerweise Indizes von Vektoren. Diese Indizes enthalten Matrizen von Vektoreinbettungen. Oft wird auch eine Diagrammdatenstruktur verwendet, die so geordnet ist, dass sie effizient abgefragt werden können. Wenn eine Abfrage durchgeführt wird, wird entweder Text oder eine Vektoreinbettung als Eingabe bereitgestellt. Im Fall von Text wird dieser eingebettet, und die Vektordatenbank fragt den entsprechenden Index ab, um die ähnlichsten Vektoren basierend auf Distanzmetriken abzurufen. Normalerweise werden die Vektoren anhand von Metriken wie Kosinusähnlichkeit, Skalarprodukt oder euklidischem Abstand verglichen. Vektoren beziehen sich auch auf ein Wörterbuch mit Metadaten, das Informationen wie die Dokument-ID, den Dokumenttitel, den entsprechenden Text und mehr enthalten kann.
Zu den Suchstrategien in Vektordatenbanken gehören:
Empfohlene Lektüre:
Sobald die Vektoren indiziert sind, werden sie oft geclustert, um den Suchraum zu verkleinern. Dies geschieht, um die Anzahl der Vektoren zu reduzieren, die während des Suchvorgangs verglichen werden müssen. Das Clustering erfolgt durch die Gruppierung ähnlicher Vektoren und die anschließende Indizierung der Cluster. Bei einer Abfrage erfolgt die Suche zunächst auf Clusterebene und dann auf Vektorebene innerhalb des Clusters. Für das Clustering werden häufig Algorithmen wie K-Means verwendet.
Empfohlene Lektüre:
Dies ist offensichtlich eine sehr komplexe Frage, aber hier sind einige Ressourcen, um dieses Thema weiter zu untersuchen:
Vector quantization, also called "block quantization" or "pattern matching quantization" is often used in lossy data compression. It works by encoding values from a multidimensional vector space into a finite set of values from a discrete subspace of lower dimension.
Referenz: Vektorquantisierung
One general approach to LSH is to “hash” items several times, in such a way that similar items are more likely to be hashed to the same bucket than dissimilar items are.
Referenz: Mining of Massive Datasets, 3. Auflage, Kapitel 3, Abschnitt 3.4.1
Empfohlene Lektüre:
In short, PQ is the process of:
- Taking a big, high-dimensional vector,
- Splitting it into equally sized chunks — our subvectors,
- Assigning each of these subvectors to its nearest centroid (also called reproduction/reconstruction values),
- Replacing these centroid values with unique IDs — each ID represents a centroid
Referenz: Produktquantisierung
Empfohlene Lektüre:
The Inverted File Index (IVF) index consists of search scope reduction through clustering.
Referenz: Umgekehrter Dateiindex
Empfohlene Lektüre:
Hierarchical Navigable Small Worlds (HNSW) wird häufig als hochmoderne im Vektorabruf angesehen. Es handelt sich um einen graphbasierten Algorithmus, der ein Diagramm der Vektoren erstellt und es verwendet, um die ungefähre Suche nach der nächsten Nachbarn durchzuführen.
Empfohlene Lektüre:
Abstands- und Ähnlichkeitsmetriken, die bei der Vektorabnahme verwendet werden, umfassen:
Empfohlene Anzeige:
Dies ist ein sehr aktives Forschungsthema, und es gibt keine maßgebliche Quelle, aber hier sind einige Ressourcen, um dieses Thema weiter zu untersuchen:
Es ist auch erwähnenswert, dass Suche, Abruf- und Umleitungssysteme auf etablierten Mustern und Architekturen in den Bereichen Informationsabruf, Empfehlungssysteme und Suchmaschinen basieren.
Einige Systemarchitekturen, die Sie möglicherweise erkunden möchten, umfassen:
Die gute Suche in groß angelegten Systemen beinhaltet eine Kombination aus effizienten Indexierung, Abruf und Ranking-Techniken. Einige Strategien, um eine gute Suche in großen Systemen zu erreichen, umfassen:
Möglicherweise bemerken Sie, dass der gesamte Prozess in Phasen mit zunehmender Komplexität durchgeführt wird. Dies wird als Phased Ranking oder mehrstufiges Abruf bezeichnet.
Empfohlene Lektüre:
Der wichtigste Aspekt bei der Erreichung einer guten Suche in großen Systemen besteht jedoch darin, Ihre Abruf- und Ranking-Strategien zu experimentieren und die Leistung Ihres Systems kontinuierlich zu überwachen und zu bewerten.
Empfohlene Lektüre:
Empfohlene Gespräche über die Verbesserung der Suche, das Abrufen und die Lappensysteme:
Durch das Erreichen einer schnellen Suche wird der Indexierungs- und Abrufprozess optimiert, der nicht triviale technische Anstrengungen unternimmt. Folgende Beispiele für die aktuelle Landschaft im Bereich der Such- und Abrufoptimierung:
Der aktuelle Stand der Technik beim Abrufen von Vektor zeigt, dass Multi-Vektor-Einbettungen (späte Interaktion) eine bessere Leistung als einzelne Vektor-Einbettungen abgeben. Die Optimierung ihrer Abrufs ist jedoch eine bedeutende technische Herausforderung. Im Folgenden werden Multi-Vektor-Einbettungen und ihr Abruf eingehalten.
BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document, regardless of their proximity within the document.
Referenz: BM25
Neuländermodelle sind Sequenzklassifizierungsmodelle, die für Abfragen und Dokumente geschult sind und Roh -Ähnlichkeitsbewertungen ausgeben.
Empfohlenes Lesen, Betrachten und Beobachten:
Die Bewertung von Lappensystemen erfordert das Experimentieren und Bewertung der einzelnen Komponenten des Systems, wie z. B. Retriever, Generator und Reranker.
Empfohlene Lektüre:
HINWEIS: Von nun an werde ich so viel wie möglich beantworten, und nur Link Papers und Referenzen. Dieser Teil ist wohl einer der komplexeren Teile, sodass es viel Lesen und Verständnis erfordert.
Um die Aufmerksamkeit zu verstehen, müssen Sie mit der Transformatorarchitektur und ihren Vorgängerarchitekturen vertraut sein. Hier sind einige Ressourcen, um Ihnen den Einstieg zu erleichtern:
Der Haupttgpass der Selbstbekämpfung ist die quadratische Komplexität in Bezug auf die Sequenzlänge. Um die Nachteile der Selbstbekämpfung zu verstehen, müssen Sie sich mit Aufmerksamkeitsalternativen vertraut machen. Folgendes hilft Ihnen, loszulegen:
Es gibt mehrere Möglichkeiten, Positionsinformationen in LLMs zu codieren. Am häufigsten besteht die Verwendung von Sinus -Positionscodierungen, die als absolute Positionscodierungen bezeichnet werden. Andere Methoden umfassen relative Positionscodierungen und neuere Methoden wie Rotationspositionseinbettungen. Hier sind einige Ressourcen, um Ihnen den Einstieg zu erleichtern:
Um KV Cache zu verstehen, müssen Sie mit der Transformator -Architektur und ihrer Grenzen vertraut sein.
Empfohlene Lektüre:
Die Mischung von Experten ist eine Art von Architektur in LLMs, um zu verstehen, wie es funktioniert. Sie sollten die folgenden Ressourcen durchlaufen, die die bekanntesten MOE -Modelle abdecken: