Bearbeiten

Freigeben über


Vorbereitung

Azure KI Services
Azure KI Search
Azure OpenAI Service
Azure Machine Learning

Die erste Phase der Entwicklung und Experimentieren der Retrieval-Augmented Generation (RAG) ist die Vorbereitungsphase. In dieser Phase definieren Sie zunächst die Geschäftsdomäne für Ihre Lösung. Nach dem Definieren der Domäne beginnen Sie mit dem parallelen Prozess zum Sammeln von Dokumenten und Beispielfragen, die für die Domäne relevant sind. Die Schritte werden parallel ausgeführt, da sie miteinander verknüpft sind. Mithilfe der Dokumentanalyse können Sie ermitteln, welche Testdokumente und Testabfragen Sie sammeln sollten. Die Fragen müssen durch den Inhalt der Dokumente beantwortet werden können, und die Dokumente müssen relevante Fragen beantworten.

Dieser Artikel ist Teil einer Serie. Die Einführung finden Sie hier.

Lösungsdomäne ermitteln

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 bestimmen, welche Art von Fragen die Lösung adressiert und welche Quelldaten oder Dokumente diese Fragen beantworten sollen. In späteren Phasen hilft die Lösungsdomäne dabei, Ihre Einbettungsmodellstrategie zu informieren.

Dokumentanalyse

Das Ziel der Dokumentanalyse besteht darin, genügend Informationen zu Ihrem Korpus mit Dokumenten zu sammeln, um Folgendes zu ermitteln:

  • Die verschiedenen Klassifikationen von Dokumenten: Sind es z. B. Produktspezifikationen, Quartalsberichte, Autoversicherungsverträge, Krankenversicherungsverträge usw.
  • Die verschiedenen Dokumenttypen: Handelt es sich um z. B. PDFs, Markdown-Dateien, HTML-Dateien, DOCX-Dateien usw.
  • Die Sicherheitseinschränkungen: Sind die Dokumente öffentlich zugänglich sind oder nicht, erfordern eine Authentifizierung und Autorisierung für den Zugriff
  • Die Struktur der Dokumente: z. B. die Länge von Dokumenten, Themenumbrüche und ob sie kontextbezogene Bilder oder tabellarische Daten enthalten

In den folgenden Abschnitten wird erläutert, wie diese Informationen Ihnen bei der Festlegung Ihrer Lade- und Chunking-Strategien helfen können.

Klassifizierung von Textdokumenten

Sie müssen die verschiedenen Klassifizierungen von Dokumenten verstehen, damit Sie die Anzahl der benötigten Testdokumente ermitteln können. Dieser Teil der Analyse sollte Ihnen nicht nur die allgemeinen Klassifikationen wie Versicherungen oder Finanzen, sondern auch Unterklassen wie Krankenversicherung im Vergleich zu den Autoversicherungsdokumenten liefern. Sie möchten auch verstehen, ob die Unterklassen unterschiedliche Strukturen oder Inhalte aufweisen.

Ziel ist es, die verschiedenen Dokumentvarianten zu verstehen, die Ihnen vorliegen. Dieses Verständnis hilft Ihnen dabei, die Anzahl und Aufschlüsselung der benötigten Testdokumente zu ermitteln. Sie möchten in Ihrem Experiment keine bestimmte Dokumentklassifizierung über- oder unterrepräsentieren.

Dokumenttypen

Wenn Sie die verschiedenen Dateiformate in Ihrem Korpus verstehen, können Sie die Anzahl und Aufschlüsselung der Testdokumente ermitteln. Wenn Sie beispielsweise über PDF- und Office Open XML-Dokumenttypen für Quartalsberichte verfügen, benötigen Sie Testdokumente für jeden Dokumenttyp. Wenn Sie einen Überblick über Ihre Dokumenttypen haben, verstehen Sie auch die technischen Anforderungen für das Laden und Segmentieren Ihrer Dokumente, z. B. bestimmte Bibliotheken, die für die Verarbeitung dieser Dateiformate geeignet sind.

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 kann, oder implementieren Sie einen Prozess, um die Dokumente sicher an einen barrierefreien Speicherort für Ihren Verarbeitungscode zu replizieren.

Beachten Sie, dass Dokumente manchmal auf Multimediaelemente wie Bilder oder Audio verweisen, die für den Kontext des Dokuments wichtig sind. Diese Medien können auch ähnlichen Zugriffskontrollen unterliegen wie das Dokument selbst. Wenn dieses Medium eine Authentifizierung oder eine Netzwerkverbindung mit Sichtverbindung erfordert, müssen Sie erneut sicherstellen, dass Ihr Code auf das Medium zugreifen kann oder dass Sie über einen vorherigen Prozess verfügen, der Zugriff hat und diesen Inhalt replizieren kann.

Wenn Ihre Arbeitsbelastung es erfordert, dass verschiedene Benutzer nur Zugriff auf bestimmte Dokumente oder Dokumentsegmente haben, stellen Sie sicher, dass Sie verstehen, wie Sie diese Zugriffsberechtigungen in Ihrer Chunking-Lösung beibehalten.

Struktur des Dokuments

Sie müssen die Struktur des Dokuments verstehen, einschließlich der Darstellung 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, neu zu formatieren oder Elemente zu kommentieren, die ignoriert werden sollen.
  • Was im Dokument Sie ignorieren oder ausschließen möchten
  • Welche Dokumentelemente sollen erfasst werden
  • Wie Sie das Dokument in Blöcke unterteilen möchten
  • So behandeln Sie Bilder, Tabellen, Diagramme und andere eingebettete Medien

Im Folgenden finden Sie einige kategorisierte Fragen, die Sie verwenden können, um einige dieser Ermittlungen zu treffen.

Fragen zu allgemeinen Elementen, 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 manchen Situationen können diese Elemente ihrem Index wertvollen Kontext und Unterstützung bei relevanten Abfragen hinzufügen, aber nicht alle. Im Folgenden finden Sie einige Fragen zu allgemeinen Dokumentfeatures, die Sie auswerten müssen, um festzustellen, ob sie Relevanz hinzufügen oder ignoriert werden sollten.

  • Enthält das Dokument ein Inhaltsverzeichnis?
  • Gibt es Kopf- und Fußzeilen?
  • Gibt es Urheberrechte oder Haftungsausschlüsse?
  • Gibt es Fuß- oder Endnoten?
  • Gibt es Wasserzeichen?
  • Gibt es Anmerkungen oder Kommentare?

Fragen, mit denen Sie die Vorverarbeitungs- und Chunking-Strategie informieren können

Die folgenden Fragen zur Struktur des Dokuments geben Ihnen Aufschluss darüber, ob Sie das Dokument vorverarbeiten müssen, um die Verarbeitung zu erleichtern, und helfen Ihnen bei der Festlegung Ihrer Chunking-Strategie.

  • Gibt es mehrspaltige Daten oder mehrspaltige Absätze? Sie möchten nicht, dass mehrspaltige Inhalte wie ein einspaltiger Inhalt analysiert werden.
  • Wie ist das Dokument strukturiert? HTML-Dateien verwenden z. B. manchmal Tabellen für ihr Layout, 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 ungefähr gleich lang?
  • Welche Sprachen, Sprachvarianten oder Dialekte befinden sich in den Dokumenten?
  • Enthält das Dokument Unicode-Zeichen?
  • Wie werden Zahlen formatiert? Werden Kommas oder Dezimalstellen verwendet? Sind sie konsistent?
  • Was im Dokument ist einheitlich und was ist nicht einheitlich?
  • Gibt es eine Kopfzeilenstruktur, aus der die semantische Bedeutung extrahiert werden kann?
  • Gibt es Aufzählungszeichen oder sinnvolle Einrückungen?

Fragen zu Bildern

Wenn Sie die Bilder in Ihrem Dokument verstehen, können Sie Ihre Bildverarbeitungsstrategie ermitteln. Sie müssen folgende Informationen ermitteln können: die Art von Bildern, die Sie haben, ob sie über eine 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 Bilder kann tatsächlich nachteilig sein, da das visuelle Symbol im Allgemeinen wenig mit dem Dokumentinhalt zu tun hat.
  • Was ist die Beziehung zwischen Bild und umgebendem Text? Stellen Sie fest, ob die Bilder eigenständige Inhalte haben oder ob es einen Kontext um das Bild herum gibt, den Sie verwenden sollten, wenn Sie es an ein großes Sprachmodell weitergeben, um die Textdarstellung zu erhalten. Beschriftungen sind ein Beispiel für umgebenden Text, der möglicherweise einen wertvollen Kontext aufweist, der nicht im Bild enthalten ist.
  • Gibt es eine umfassende Textdarstellung der Bilder, z. B. Beschreibungen der Barrierefreiheit?

Fragen zu Tabellen, Diagrammen und anderen umfangreichen Inhalten

Wenn Sie verstehen, welche Informationen in Tabellen, Diagrammen und anderen Medien gekapselt sind, können Sie verstehen, was und wie Sie sie verarbeiten möchten. Die folgenden Fragen helfen Ihnen, Ihre Tabellen, Diagramme und andere Anforderungen an die Verarbeitung der Medien zu verstehen.

  • Enthält das Dokument Diagramme mit Zahlen?
  • Enthält das Dokument Tabellen?
    • Sind die Tabellen komplex (geschachtelte Tabellen) oder nicht komplex?
    • Gibt es Untertitel für die Tabellen?
    • Was sind die Längen der Tabellen? Bei langen Tabellen müssen die Überschriften möglicherweise in Blöcken wiederholt werden.
  • Gibt es andere Arten eingebetteter Medien wie Videos oder Audio?
  • Gibt es mathematische Formeln/wissenschaftliche Notationen im Dokument?

Sammeln repräsentativer Testdokumente

In diesem Schritt sammeln Sie Dokumente, die am besten die Dokumente repräsentieren, die Sie in Ihrer Produktionslösung verwenden. Die Dokumente müssen den definierten Anwendungsfall adressieren und die in der Parallelphase der Fragesammlung gesammelten Fragen beantworten können.

Überlegungen

Berücksichtigen Sie diese Bereiche beim Auswerten potenzieller repräsentativer Testdokumente:

  • Beständigkeit – Die Dokumente müssen die geschäftlichen Anforderungen der Unterhaltungsanwendung erfüllen. Wenn Sie beispielsweise einen Chat-Bot erstellen, der Kunden beim Ausführen von Bankgeschäften hilft, sollten die Dokumente dieser Anforderung entsprechen, z. B. Dokumente, die zeigen, wie ein Bankkonto geöffnet oder geschlossen werden soll. Die Dokumente müssen die im parallelen Schritt gesammelten Testfragen beantworten können. Wenn die Dokumente nicht die für die Fragen relevanten Informationen enthalten, können sie keine gültige Antwort liefern.
  • Repräsentativ – Die Dokumente sollten repräsentativ für die verschiedenen Arten von Dokumenten sein, die Ihre Lösung verwendet. Beispielsweise unterscheidet sich ein Autoversicherungsdokument von einem Krankenversicherungs- oder Lebensversicherungsdokument. Angenommen, der Anwendungsfall erfordert, dass die Lösung alle drei Typen unterstützt, und Sie haben nur zwei Kfz-Versicherungsdokumente. Ihre Lösung würde sowohl für die Kranken- als auch die Lebensversicherung schlecht funktionieren. Sie sollten mindestens zwei Dokumente für jede Variation haben.
  • Physische Dokumentqualität – Die Dokumente müssen eine verwendbare Form haben. Aus gescannten Bildern können beispielsweise keine verwendbaren Informationen extrahiert werden.
  • Dokumentinhaltsqualität – Die Dokumente müssen eine hohe Inhaltsqualität aufweisen. Es sollten keine Rechtschreibfehler oder Grammatikfehler vorhanden sein. Große Sprachmodelle funktionieren nicht gut, wenn Sie ihnen schlechte Inhalte bereitstellen.

Der Erfolgsfaktor in diesem Schritt ist die qualitative Gewissheit, dass Sie eine gute Darstellung der Testdokumente für Ihren speziellen Bereich haben.

Testdokumentleitfaden

  • Ziehen Sie echte Dokumente synthetischen vor. Echte Dokumente müssen einen Bereinigungsprozess durchlaufen, um personenbezogene Informationen (PII) zu entfernen.
  • Um sicherzustellen, dass Sie alle Arten von Szenarien, einschließlich prognostizierter Zukunftsszenarien, bewältigen können, sollten Sie in Erwägung ziehen, Ihre Dokumente selektiv mit synthetischen Daten zu ergänzen.
    • Wenn Sie synthetische Daten verwenden müssen, bemühen Sie sich, die Daten so realistisch wie möglich zu gestalten.
  • Stellen Sie sicher, dass die Dokumente die gesammelten Fragen beantworten können.
  • Sie sollten mindestens zwei Dokumente für jede Dokumentvariante haben.
  • Sie können große Sprachmodelle oder andere Tools verwenden, um die Dokumentqualität auszuwerten.

Sammeln von Testabfragen

In diesem Schritt sammeln Sie Testabfragen, die Sie verwenden, um Ihre Blöcke, die Suchlösung und das Prompt Engineering auszuwerten. Dies geschieht im Lockstepmodus beim Sammeln der repräsentativen Dokumente, da Sie nicht nur die Abfragen sammeln, Sie sammeln auch, wie die repräsentativen Dokumente die Abfragen adressieren. Mit beiden Beispielabfragen können Sie in Kombination mit den Teilen der Beispieldokumente, die diese Abfragen adressieren, 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 den Schritten Repräsentative Testabfragen sammeln und Repräsentative Testdokumente sammeln. Die Ausgabe ist eine Sammlung mit den folgenden Daten:

  • Abfrage – Die Frage, die den potenziellen Prompt eines legitimen Benutzers darstellt.
  • Kontext – Eine Sammlung aller tatsächlichen Texte in den Dokumenten, die die Abfrage adressieren. 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 direkt aus den Dokumenten stammen oder aus einem oder mehreren Teilen des Kontextes umformuliert 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 gesammelt wurden. Es folgt ein praxisnaher Ansatz zum Generieren synthetischer Fragen aus repräsentativen Dokumenten:

  1. Segmentieren der Dokumente – Unterteilen Sie die Dokumente in Blöcke. Dieser Chunking-Schritt verwendet nicht die Chunking-Strategie für Ihre Gesamtlösung. Es handelt sich um einen einmaligen Schritt, in dem Sie synthetische Abfragen generieren. Das Chunking kann manuell durchgeführt werden, wenn die Anzahl der Dokumente angemessen ist.

  2. Generieren von Abfragen pro Block – Generieren Sie für jeden Block Abfragen entweder manuell oder mithilfe eines großen Sprachmodells. Bei Verwendung eines großen Sprachmodells beginnen wir im Allgemeinen mit dem Generieren von zwei Abfragen pro Block. Das große Sprachmodell kann auch verwendet werden, 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, directly quoting the text from provided context. Provide the array output in strict JSON format as shown in output format. Ensure that the generated JSON is 100 percent structurally correct, with proper nesting, comma placement, and quotation marks. There should not be any comma after last element in the array.
    
    Output format:
    [
      {
        "question": "Question 1",
        "answer": "Answer 1"
      },
      {
        "question": "Question 2",
        "answer": "Answer 2"
      }
    ]
    
    CONTEXT:
    
  3. Überprüfen der Ausgabe – Stellen Sie sicher, dass die Fragen für den Anwendungsfall relevant sind und die Antworten auf die Frage eingehen. Diese Überprüfung sollte von einem KMU durchgeführt werden.

Nicht adressierte Abfragen

Es ist wichtig, sowohl Abfragen zu sammeln, die in den Dokumenten nicht behandelt werden, als auch Abfragen, die behandelt werden. Wenn Sie Ihre Lösung testen, insbesondere beim Testen des großen Sprachmodells, müssen Sie bestimmen, wie die Lösung auf Abfragen reagieren soll, die nicht über ausreichenden Kontext für die Antwort verfügen. Ansätze zum Beantworten von Abfragen, die Sie nicht adressieren können, umfassen:

  • Sie antworten, dass Sie es nicht wissen
  • Sie antworten, dass Sie es nicht wissen, und geben einen Link an, unter dem der Nutzer 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, Screenshots haben, stellen Sie sicher, dass Sie Fragen haben, die alle Anwendungsfälle abdecken. Wenn Sie im Bildbereich des Dokumentanalyseabschnitts festgestellt haben, 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 aus Ihrem Helpdesk, den häufig gestellten Fragen oder dem Ticketingsystem verwenden.
  • Der Kunde oder die KMU für den Anwendungsfall sollte als Quality Gate fungieren, um sicherzustellen, dass die gesammelten Dokumente, die zugehörigen Testabfragen und die Antworten auf die Abfragen aus den Dokumenten vollständig, repräsentativ und korrekt sind.
  • Die Überprüfung des Textkörpers aus Fragen und Antworten sollte regelmäßig durchgeführt werden, um sicherzustellen, dass sie die Quelldokumente weiterhin genau wiedergeben.

Nächste Schritte