Erstellen eines eigenen RAG
Beim Aufbau Ihres eigenen Retrieval Augmented Generation (RAG)-Systems können Sie ein Retrieversystem und ein Generatorsystem nutzen. Der Retriever kann ein Einbettungsmodell sein, das die relevanten Blöcke aus der Vektordatenbank anhand von Ähnlichkeitswerten identifiziert. Der Generator kann ein großes Sprachmodell (LLM) sein, das die Fähigkeit des Modells nutzt, Fragen auf der Grundlage der abgerufenen Ergebnisse zu beantworten (auch bekannt als Chunks). In den folgenden Abschnitten geben wir zusätzliche Tipps zur Optimierung der Prompts für Ihr RAG-System.
Den System-Prompt nutzen
Wie bei anderen Funktionen kann es von Vorteil sein, den System-Prompt zu verbessern. Sie können die Beschreibung des RAG-Systems im System-Prompt definieren und dabei die gewünschte Persona und das gewünschte Verhalten für das Modell skizzieren.
Modellanweisungen nutzen
Sie können im System-Prompt einen eigenen "Model
Instructions:"-Abschnitt hinzufügen, in dem Sie spezifische Richtlinien angeben können, an die sich das Modell halten muss. Sie können beispielsweise Anweisungen auflisten wie:
In this example session, the model has access to search results and a user's question, its job is to answer the user's question using only information from the search results.
Model Instructions: - You should provide concise answer to simple questions when the answer is directly contained in search results, but when comes to yes/no question, provide some details. - In case the question requires multi-hop reasoning, you should find relevant information from search results and summarize the answer based on relevant information with logical reasoning. - If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question, and if search results are completely irrelevant, say that you could not find an exact answer, then summarize search results. - Remember to add citations to your response using markers like %[1]%, %[2]%, %[3]%, etc for the corresponding passage supports the response.
Vermeiden Sie Halluzinationen, indem Sie die Anweisungen einschränken
Schärfen Sie den Fokus der Anweisungen, indem Sie klar und deutlich erwähnen: „VERWENDE KEINE INFORMATIONEN, DIE NICHT IN DEN SUCHERGEBNISSEN ENTHALTEN SIND!“ als Modellanweisung, sodass die Antworten im angegebenen Kontext begründet sind.
- DO NOT USE INFORMATION THAT IS NOT IN SEARCH RESULTS!
Geben Sie eine Eingabeabfrage gefolgt von Suchergebnissen ein
Geben Sie eine Eingabeabfrage ein, gefolgt von den Retriever-Suchergebnissen oder kontextbezogenen Chunks. Das Modell funktioniert am besten, wenn die Chunk-Ergebnisse nach den Resource: Search Results: bereitgestellt werden
{query} Resource: Search Results: {rag_chunks_retreiver_results}
Zitate
Zitate dienen als hilfreiche Verweise auf den Kontext, der zur Beantwortung der Frage bereitgestellt wurde. Zitate werden im Allgemeinen hauptsächlich zur Begründung der LLM-Antworten verwendet. Zitate werden als Bewertungsinstrument verwendet, sodass Benutzer anhand des Kontextes auf die zitierten Quellen zurückgreifen können, um zu beurteilen, ob die Antworten den bereitgestellten Informationen entsprechen.
Dies ist eine Beispielaufforderung, die zu den „Modellanweisungen“ in Ihrem System-Prompt hinzugefügt werden sollte, damit sich das Modell darauf konzentrieren kann, Zitate in der Antwort zu erzeugen:
- Make sure to always add citations to your response using markers like %[1]%, %[2]%, %[3]%, and for the corresponding passage that supports the response.
Sie können alle vorherigen Empfehlungen mit der folgenden Prompt-Vorlage kombinieren. Diese Vorlage wird nur auf der Grundlage von abgerufenen Chunks generiert.
| Role | Prompt |
|---|---|
System (System) |
In dieser Sitzung hat das Modell Zugriff auf Suchergebnisse und die Frage eines Benutzers. Ihre Aufgabe besteht darin, die Frage des Benutzers nur anhand von Informationen aus den Suchergebnissen zu beantworten. Modellanweisungen:
|
Benutzer |
Abfrage Ressource: Suchergebnisse: {search_results} |
Multimodale RAG
Wenn Sie eine multimodale RAG erstellen, sollten Sie einige zusätzliche bewährte Methoden beachten.
-
Verwenden Sie Bilder direkt, wenn sie nicht textlastig sind (d. h. natürliche Szenen, Folien mit wenig Text, Infografiken usw.). Amazon Nova wurde für die Verarbeitung nicht textlastiger Bilder optimiert. Es ist nicht erforderlich, eine zusätzliche Textzusammenfassung für diese Bilder in der fundierten Generierung zu übermitteln.
-
Verbessern Sie textlastige Bilder mit Textzusammenfassungen (z. B. PDF-Berichte, Artikel). Bei textlastigen PDFs ist es am besten, sowohl Bilder (PDFs) als auch entsprechende Textzusammenfassungen abzurufen. Die Textzusammenfassungen können dem Modell helfen, relevante Informationen aus riesigen Textmengen im Originalbild zu identifizieren.
-
Teilen Sie dem Modell mit, dass Sie Bilder weitergeben. In der Anleitung können Sie einen Satz wie „
You will be provided with images and texts from search results“ hinzufügen.