Die erste Phase der Entwicklung und Experimentieren der Retrieval-Augmented Generation (RAG) ist die Vorbereitungsphase. In dieser Phase definieren Sie die Geschäftsdomäne für Ihre Lösung. Nachdem Sie die Domäne definiert haben, sammeln Sie Dokumente, führen Eine Dokumentanalyse durch und sammeln Beispielfragen, die für die Domäne relevant sind. Sie führen diese Schritte parallel aus, da sie miteinander verknüpft sind. So können Sie beispielsweise anhand der Dokumentanalyse ermitteln, welche Testdokumente und Testabfragen Sie sammeln sollten. Die Fragen, die Sie stellen, müssen von Inhalten in den Dokumenten beantwortet werden, und die Dokumente müssen die relevanten Fragen beantworten.
Dieser Artikel ist Teil einer Serie. Die Einführung finden Sie hier.
Ermitteln der Lösungsdomäne
Der erste Schritt in diesem Prozess besteht darin, die Geschäftsanforderungen für die Lösung oder den Anwendungsfall klar zu definieren. Anhand dieser Anforderungen können Sie ermitteln, welche Art von Fragen die Lösung beantworten soll und welche Quelldaten oder Dokumente diese Fragen beantworten sollen. In späteren Phasen hilft die Lösungsdomäne, Ihre Einbettungsmodellstrategie zu informieren.
Dokumentanalyse
Das Ziel der Dokumentanalyse besteht darin, genügend Informationen zu Ihrer Dokumentsammlung zu sammeln, um Ihnen zu helfen, Folgendes zu verstehen:
Die verschiedenen Klassifizierungen von Dokumenten. Sie können z. B. Produktspezifikationen, Quartalsberichte, Autoversicherungsverträge oder Krankenversicherungsverträge haben.
Die verschiedenen Arten von Dokumenten. Sie können z. B. PDF-Dateien, Markdown-Dateien, HTML-Dateien oder DOCX-Dateien haben.
Die Sicherheitseinschränkungen. Sie können z. B. Authentifizierung und Autorisierung für den Zugriff auf die Dokumente benötigen, je nachdem, ob sie öffentlich zugänglich sind.
Die Struktur der Dokumente. Beispielsweise kann die Länge der Dokumente variieren. Oder sie haben Themenunterbrechungen, kontextbezogene relevante Bilder oder tabellarische Daten.
In den folgenden Abschnitten wird beschrieben, wie Sie anhand dieser Informationen Ihre Lade- und Blockierungsstrategien auswählen können.
Klassifizierung von Textdokumenten
Sie müssen die verschiedenen Klassifizierungen von Dokumenten verstehen, um die Anzahl der benötigten Testdokumente zu ermitteln. Dieser Teil der Analyse sollte Sie über die allgemeinen Klassifizierungen wie Versicherungen oder Finanzen informieren. Außerdem sollten Sie über Unterklassifizierungen wie Krankenversicherungsdokumente oder Autoversicherungsdokumente informiert werden. Sie möchten auch wissen, ob die Unterklassen unterschiedliche Strukturen oder Inhalte aufweisen.
Ziel ist es, alle unterschiedlichen Dokumentvarianten zu verstehen, die Sie haben. Anschließend können Sie die Anzahl und Aufschlüsselung der benötigten Testdokumente ermitteln. Sie möchten keine bestimmte Dokumentklassifizierung in Ihrem Experiment darstellen.
Dokumenttypen
Wenn Sie die verschiedenen Dateiformate in Ihrer Sammlung verstehen, können Sie die Anzahl und Aufschlüsselung von Testdokumenten ermitteln. Wenn Sie z. B. über PDF- und Open XML-Dokumenttypen für Quartalsberichte verfügen, benötigen Sie Testdokumente für jeden dieser Dokumenttypen. Wenn Sie Ihre Dokumenttypen verstehen, können Sie auch Ihre technischen Anforderungen zum Laden und Abheften Ihrer Dokumente verstehen. Diese technischen Anforderungen umfassen spezifische Bibliotheken, die diese Dateiformate verarbeiten können.
Sicherheitseinschränkungen
Das Verständnis von Sicherheitseinschränkungen ist entscheidend für die Ermittlung ihrer Lade- und Chunking-Strategien. Sie müssen beispielsweise ermitteln, ob einige oder alle Ihre Dokumente Authentifizierung, Autorisierung oder Netzwerksichtbarkeit erfordern. Wenn sich die Dokumente in einem sicheren Umkreis befinden, stellen Sie sicher, dass Ihr Code darauf zugreifen oder einen Prozess implementieren kann, um die Dokumente sicher an einen barrierefreien Speicherort für Den Verarbeitungscode zu replizieren.
Dokumente verweisen manchmal auf Multimedia wie Bilder oder Audioelemente, die für den Kontext des Dokuments wichtig sind. Diese Medien können auch ähnlichen Zugriffskontrollen unterliegen wie das Dokument selbst. Wenn für diese Medien eine Authentifizierung oder netzwerkweite Sicht erforderlich ist, müssen Sie sicherstellen, dass Ihr Code auf die Medien zugreifen kann oder dass Sie über einen Prozess verfügen, der Zugriff hat und den Inhalt replizieren kann.
Wenn Ihre Workload erfordert, dass unterschiedliche Benutzer nur Zugriff auf unterschiedliche Dokumente oder Dokumentsegmente haben, stellen Sie sicher, dass Sie verstehen, wie Sie diese Zugriffsberechtigungen in Ihrer Blockierungslösung beibehalten.
Struktur des Dokuments
Sie müssen die Struktur des Dokuments verstehen, einschließlich des Layouts und der Inhaltstypen im Dokument. Wenn Sie die Struktur und den Inhalt Ihrer Dokumente verstehen, können Sie die folgenden Entscheidungen treffen:
Gibt an, ob für das Dokument eine Vorverarbeitung erforderlich ist, um Rauschen zu bereinigen, Medien zu extrahieren, Inhalte neu zu formatieren oder Elemente zu kommentieren, die ignoriert werden sollen.
Ob Sie Inhalte im Dokument ignorieren oder ausschließen möchten
Welche Teile des Dokuments, die Sie erfassen möchten
Wie Sie das Dokument in Blöcke unterteilen möchten
So behandeln Sie Bilder, Tabellen, Diagramme und andere eingebettete Medien
In den folgenden Abschnitten werden kategorisierte Fragen aufgeführt, die Sie verwenden können, um einige dieser Ermittlungen zu treffen.
Bestimmen der Elemente, die Sie ignorieren können
Einige Strukturelemente fügen dem Dokument möglicherweise keine Bedeutung hinzu und können beim Segmentieren sicher ignoriert werden. In einigen Fällen können diese Elemente wertvollen Kontext hinzufügen und die Relevanz von Abfragen zu Ihrem Index verbessern, aber nicht alle. Stellen Sie die folgenden Fragen zu allgemeinen Dokumentfeatures, um festzustellen, ob sie Relevanz hinzufügen oder ignoriert werden sollen.
Enthält das Dokument ein Inhaltsverzeichnis?
Gibt es Kopf- oder Fußzeilen?
Gibt es Urheberrechte oder Haftungsausschlüsse?
Gibt es Fuß- oder Endnoten?
Gibt es Wasserzeichen?
Gibt es Anmerkungen oder Kommentare?
Ermitteln einer Vorverarbeitungs- und Blockierungsstrategie
Die folgenden Fragen zur Struktur des Dokuments können Ihnen helfen, zu entscheiden, ob Sie das Dokument vorab verarbeiten müssen, um die Verarbeitung zu vereinfachen. Sie helfen Ihnen auch bei der Auswahl einer Blockierungsstrategie.
Gibt es mehrspaltige Daten oder mehrspaltige Absätze? Sie möchten mehrspaltige Inhalte nicht auf die gleiche Weise wie Einspaltige Inhalte analysieren.
Wie ist das Dokument strukturiert? HTML-Dateien verwenden z. B. manchmal Tabellen, die von eingebetteten tabellarischen Daten unterschieden werden müssen.
Wie viele Absätze gibt es? Wie lang sind die Absätze? Sind die Absätze in der Länge ähnlich?
Welche Sprachen, Sprachvarianten oder Dialekte befinden sich in den Dokumenten?
Enthält das Dokument Unicode-Zeichen?
Wie werden Zahlen formatiert? Enthalten sie Kommas oder Dezimalstellen? Sind sie konsistent?
Welche Teile des Dokuments sind einheitlich und welche Teile sind nicht einheitlich?
Gibt es eine Kopfzeilenstruktur, aus der die semantische Bedeutung extrahiert werden kann?
Gibt es Aufzählungszeichen oder sinnvolle Einrückungen?
Ermitteln der Anforderungen an die Bildverarbeitung
Wenn Sie die Bilder in Ihrem Dokument verstehen, können Sie eine Bildverarbeitungsstrategie auswählen. Sie müssen wissen, welche Art von Bildern Sie haben, ob sie über ausreichende Auflösung zum Verarbeiten verfügen und ob das Bild alle erforderlichen Informationen enthält. Die folgenden Fragen helfen Ihnen, Ihre Anforderungen an die Bildverarbeitung zu verstehen.
Enthält das Dokument Bilder?
Welche Auflösung haben die Bilder?
Ist Text in die Bilder eingebettet?
Gibt es abstrakte Bilder, die keinen Wert hinzufügen? Symbole können z. B. keinen semantischen Wert hinzufügen. Das Hinzufügen einer Beschreibung für Symbole wirkt sich möglicherweise negativ auf Ihre Lösung aus, da das Symbol normalerweise nicht für den Inhalt des Dokuments relevant ist.
Was ist die Beziehung zwischen den Bildern und dem umgebenden Text? Bestimmen Sie, ob die Bilder eigenständigen Inhalt haben oder ob es Kontext um das Bild gibt, das Sie verwenden sollten, wenn Sie es an ein Sprachmodell übergeben. Beschriftungen sind ein Beispiel für umgebenden Text, der möglicherweise wertvollen Kontext aufweist, der nicht im Bild enthalten ist.
Gibt es umfangreiche Textdarstellungen, z. B. Beschreibungen der Barrierefreiheit der Bilder?
Ermitteln der Anforderungen an die Tabellen-, Diagramm- und anderen Medienverarbeitungsanforderungen
Wenn Sie wissen, welche Informationen in Tabellen, Diagrammen und anderen Medien gekapselt sind, können Sie entscheiden, wie Sie sie verarbeiten möchten. Die folgenden Fragen helfen Ihnen, Ihre Tabelle, Ihr Diagramm und andere Anforderungen an die Medienverarbeitung zu verstehen.
Enthält das Dokument Diagramme, die Zahlen enthalten?
Enthält das Dokument Tabellen?
Sind die Tabellen komplex, z. B. geschachtelte Tabellen oder nichtkomplex?
Gibt es Untertitel für die Tabellen?
Wie lange sind die Tabellen? Lange Tabellen erfordern möglicherweise wiederholte Kopfzeilen in Blöcken.
Gibt es andere Arten von eingebetteten Medien, z. B. Videos oder Audio?
Gibt es mathematische Formeln oder wissenschaftliche Notationen im Dokument?
Sammeln repräsentativer Testdokumente
Sammeln Sie in diesem Schritt Dokumente, die die Dokumente am besten darstellen, die Sie in Ihrer Lösung verwenden. Die Dokumente müssen den definierten Anwendungsfall adressiert und die Fragen beantworten, die Sie in der parallelen Phase zum Sammeln von Fragen gesammelt haben.
Überlegungen
Berücksichtigen Sie die folgenden Bereiche, wenn Sie potenzielle repräsentative Testdokumente auswerten:
Pertinence: Die Dokumente müssen die geschäftlichen Anforderungen der Unterhaltungsanwendung erfüllen. Wenn Sie beispielsweise einen Chat-Bot erstellen, der Kunden bei der Durchführung von Bankgeschäften hilft, müssen die Dokumente diese Anforderung erfüllen. Beispielsweise sollten die Dokumente zeigen, wie ein Bankkonto geöffnet oder geschlossen wird. Die Dokumente müssen in der Lage sein, die Testfragen zu beantworten, die Sie im parallelen Schritt sammeln. Wenn die Dokumente keine Informationen haben, die für die Fragen relevant sind, kann Ihre Lösung keine gültige Antwort liefern.
Darstellung: Die Dokumente sollten die verschiedenen Dokumenttypen darstellen, die Ihre Lösung verwendet. Beispielsweise enthält ein Autoversicherungsdokument unterschiedliche Informationen als ein Kranken- oder Lebensversicherungsdokument. Angenommen, der Anwendungsfall erfordert die Lösung, um alle drei dieser Versicherungstypen zu unterstützen, aber Sie haben nur Autoversicherungsdokumente. Ihre Lösung kann schlecht für Kranken- und Lebensversicherungsvorgänge ausgeführt werden. Sie sollten mindestens zwei Dokumente für jede Variation haben.
Physische Dokumentqualität: Die Dokumente müssen in verwendbarer Form sein. Gescannte Bilder können z. B. keine verwendbaren Informationen extrahieren.
Dokumentinhaltsqualität: Die Dokumente müssen qualitativ hochwertige Inhalte enthalten. Sie sollten keine Rechtschreibfehler oder Grammatikfehler enthalten. Sprachmodelle funktionieren nicht gut, wenn Sie ihnen qualitativ schlechte Inhalte bereitstellen.
Um Testdokumente erfolgreich zu sammeln, sollten Sie qualitativ sicher sein,, dass die Testdokumente vollständig und korrekt Ihre spezifische Domäne darstellen.
Testdokumentleitfaden
Wählen Sie echte Dokumente über synthetische Dokumente aus. Echte Dokumente müssen einen Reinigungsprozess durchlaufen, um personenbezogene Daten zu entfernen.
Erwägen Sie, Ihre Dokumente selektiv mit synthetischen Daten zu erweitern. Mit diesem Prozess können Sie sicherstellen, dass Ihre Dokumente alle Arten von Szenarien abdecken, einschließlich vorhergesagter Zukünftiger Szenarien. Wenn Sie synthetische Daten verwenden müssen, sollten Sie dies am besten tun, damit sie echten Daten so weit wie möglich ähnelt.
Stellen Sie sicher, dass die Dokumente die von Ihnen gesammelten Fragen beantworten können.
Verfügen Sie über mindestens zwei Dokumente für jede Dokumentvariante.
Verwenden Sie Sprachmodelle oder andere Tools, um die Qualität der Dokumente zu bewerten.
Sammeln von Testabfragen
In diesem Schritt sammeln Sie Testabfragen, mit denen Sie Ihre Blöcke, Ihre Suchlösung und Ihr Prompt Engineering auswerten. Führen Sie diesen Schritt aus, während Sie die repräsentativen Dokumente sammeln. Sie sollten die Abfragen sammeln und bestimmen, wie die repräsentativen Dokumente diese Abfragen gleichzeitig adressieren. Wenn Sie sowohl die Beispielabfragen als auch die Teile der Beispieldokumente haben, die diese Abfragen adressieren, können Sie jede Phase der RAG-Lösung auswerten, während Sie mit verschiedenen Strategien und Ansätzen experimentieren.
Sammeln der Testabfrageausgabe
Die Ausgabe dieser Phase umfasst Inhalte aus der Sammeln repräsentativer Testabfragen Schritt und die Sammeln repräsentativer Testdokumente Schritt. Die Ausgabe ist eine Sammlung, die die folgenden Daten enthält:
Abfrage: Die Frage, die die potenzielle Aufforderung eines berechtigten Benutzers darstellt.
Kontext: Eine Auflistung aller tatsächlichen Texte in den Dokumenten, die die Abfrage adressierung. Für jedes Bit des Kontexts sollten Sie die Seite und den tatsächlichen Text einschließen.
Antwort: Eine gültige Antwort auf die Abfrage. Die Antwort kann Inhalte sein, die direkt aus den Dokumenten stammen oder aus einem oder mehreren Kontextabschnitten neu formuliert werden.
Erstellen synthetischer Abfragen
Für die Fachexperten (SMEs) eines bestimmten Bereichs ist es oft schwierig, eine umfassende Liste von Fragen für den Anwendungsfall zusammenzustellen. Eine Lösung für diese Herausforderung besteht darin, synthetische Fragen aus den repräsentativen Testdokumenten zu generieren, die Sie sammeln. Die folgenden Schritte beschreiben einen realen Ansatz zum Generieren synthetischer Fragen aus repräsentativen Dokumenten:
Blöcken Sie die Dokumente. Unterteilen Sie die Dokumente in Blöcke. Verwenden Sie die Blockierungsstrategie nicht für Ihre Gesamtlösung. Verwenden Sie diesen einmaligen Schritt, den Sie zum Generieren synthetischer Abfragen verwenden. Sie können den Abschnitt manuell ausführen, wenn die Anzahl der Dokumente angemessen ist.
Generieren Sie Abfragen für jeden Block. Generieren Sie für jeden Block Abfragen entweder manuell oder mithilfe eines Sprachmodells. Wenn Sie ein Sprachmodell verwenden, erstellen Sie in der Regel zwei Abfragen für jeden Block. Sie können auch das Sprachmodell verwenden, um die Antwort zu erstellen. Das folgende Beispiel zeigt einen Prompt, der Fragen und Antworten für einen Block generiert.
Please read the following CONTEXT and generate two question and answer JSON objects in an array based on the CONTEXT provided. The questions should require deep reading comprehension, logical inference, deduction, and connecting ideas across the text. Avoid simplistic retrieval or pattern-matching questions. Instead, focus on questions that test the ability to reason about the text in complex ways, draw subtle conclusions, and combine multiple pieces of information to arrive at an answer. Ensure that the questions are relevant, specific, and cover the key points of the CONTEXT. Provide concise answers to each question, and directly quote the text from the provided context. Provide the array output in strict JSON format as shown in the output format. Ensure that the generated JSON is completely structurally correct, including proper nesting, comma placement, and quotation marks. There shouldn't be a comma after the last element in the array. Output format: [ { "question": "Question 1", "answer": "Answer 1" }, { "question": "Question 2", "answer": "Answer 2" } ] CONTEXT:
Überprüfen Sie die Ausgabe. Stellen Sie sicher, dass die Fragen für den Anwendungsfall relevant sind und dass die Antworten auf die Frage eingehen. Ein KMU sollte diese Überprüfung durchführen.
Nicht adressierte Abfragen
Es ist wichtig, Abfragen zu sammeln, die die Dokumente nicht adressieren, und die Abfragen, die sie adressieren. Wenn Sie Ihre Lösung testen und insbesondere beim Testen des Sprachmodells, müssen Sie bestimmen, wie die Lösung auf Abfragen reagieren soll, die nicht über ausreichenden Kontext für die Beantwortung verfügen. Um auf Abfragen zu reagieren, auf die die Lösung nicht adressieren kann, kann die Lösung:
Geben Sie an, dass sie die Antwort nicht kennt.
Geben Sie an, dass sie die Antwort nicht kennt und einen Link bereitstellt, über den der Benutzer möglicherweise weitere Informationen finden kann.
Sammeln von Testabfragen für eingebettete Medien
Wie bei Text sollten Sie eine Vielzahl von Fragen sammeln, die sich auf die Verwendung der eingebetteten Medien beziehen, um hoch relevante Antworten zu generieren. Wenn Sie Bilder mit Diagrammen, Tabellen oder Screenshots haben, stellen Sie sicher, dass Sie Fragen haben, die alle Anwendungsfälle abdecken. Wenn Sie im Bildabschnitt des Dokumentanalyseschritts feststellen,, dass der Text vor oder nach dem Bild erforderlich ist, um einige Fragen zu beantworten, stellen Sie sicher, dass Sie diese Fragen in Ihren Testabfragen haben.
Leitfaden zum Sammeln von Testabfragen
Ermitteln Sie, ob ein System vorhanden ist, das echte verwendbare Kundenfragen enthält. Wenn Sie beispielsweise einen Chat-Bot erstellen, um Kundenfragen zu beantworten, können Sie möglicherweise Kundenfragen von Ihrem Helpdesk, faQs oder Ticketingsystem verwenden.
Der Kunde oder die KMU für den Anwendungsfall sollten als Qualitätsgater fungieren, um zu bestimmen, ob die gesammelten Dokumente, die zugehörigen Testabfragen und die Antworten auf die Abfragen aus den Dokumenten umfassend, repräsentativ und korrekt sind.
Überprüfen Sie den Text der Fragen und Antworten regelmäßig, um sicherzustellen, dass sie die Quelldokumente weiterhin genau wiedergeben.