Auto Prompt Tuning ⚙️
GraphRAG bietet die Möglichkeit, domänenangepasste Prompts für die Generierung des Wissensgraphen zu erstellen. Dieser Schritt ist optional, wird aber dringend empfohlen, da er zu besseren Ergebnissen bei der Ausführung eines Index-Runs führt.
Diese werden generiert, indem die Eingaben geladen, in Chunks (Texteinheiten) aufgeteilt und dann eine Reihe von LLM-Aufrufen und Vorlagensubstitutionen ausgeführt werden, um die endgültigen Prompts zu generieren. Wir empfehlen die Verwendung der vom Skript bereitgestellten Standardwerte, aber auf dieser Seite finden Sie die Details zu jeder einzelnen, falls Sie den Prompt-Tuning-Algorithmus weiter untersuchen und optimieren möchten.
Abbildung 1: Konzeptionelles Diagramm des Auto Tunings.
Voraussetzungen
Stellen Sie vor dem Ausführen von Auto Tuning sicher, dass Sie Ihren Arbeitsbereich bereits mit dem Befehl graphrag init initialisiert haben. Dies erstellt die notwendigen Konfigurationsdateien und die Standard-Prompts. Weitere Informationen zum Initialisierungsprozess finden Sie in der Init-Dokumentation.
Verwendung
Sie können das Hauptskript von der Befehlszeile mit verschiedenen Optionen ausführen
graphrag prompt-tune [--root ROOT] [--config CONFIG] [--domain DOMAIN] [--selection-method METHOD] [--limit LIMIT] [--language LANGUAGE] \
[--max-tokens MAX_TOKENS] [--chunk-size CHUNK_SIZE] [--n-subset-max N_SUBSET_MAX] [--k K] \
[--min-examples-required MIN_EXAMPLES_REQUIRED] [--discover-entity-types] [--output OUTPUT]
Befehlszeilenoptionen
-
--config(erforderlich): Der Pfad zur Konfigurationsdatei. Dies ist erforderlich, um die Daten- und Modelleinstellungen zu laden. -
--root(optional): Das Root-Verzeichnis des Datenprojekts, einschließlich der Konfigurationsdateien (YML, JSON oder .env). Standardmäßig das aktuelle Verzeichnis. -
--domain(optional): Die Domäne, die sich auf Ihre Eingabedaten bezieht, z. B. 'Weltraumwissenschaft', 'Mikrobiologie' oder 'Umweltnachrichten'. Wenn leer gelassen, wird die Domäne aus den Eingabedaten abgeleitet. -
--selection-method(optional): Die Methode zur Auswahl von Dokumenten. Optionen sind all, random, auto oder top. Standard ist random. -
--limit(optional): Das Limit für zu ladende Texteinheiten bei Verwendung der zufälligen oder Top-Auswahl. Standard ist 15. -
--language(optional): Die Sprache, die für die Eingabeverarbeitung verwendet werden soll. Wenn sie sich von der Sprache der Eingaben unterscheidet, wird das LLM übersetzen. Standard ist "" bedeutet, dass sie automatisch aus den Eingaben erkannt wird. -
--max-tokens(optional): Maximale Token-Anzahl für die Prompt-Generierung. Standard ist 2000. -
--chunk-size(optional): Die Größe in Tokens, die für die Generierung von Texteinheiten aus Eingabedokumenten verwendet werden soll. Standard ist 200. -
--n-subset-max(optional): Die Anzahl der zu einbettenden Text-Chunks bei Verwendung der Auto-Auswahlmethode. Standard ist 300. -
--k(optional): Die Anzahl der auszuwählenden Dokumente bei Verwendung der Auto-Auswahlmethode. Standard ist 15. -
--min-examples-required(optional): Die minimale Anzahl von Beispielen, die für Prompts zur Entitätsextraktion erforderlich sind. Standard ist 2. -
--discover-entity-types(optional): Ermöglicht dem LLM, Entitäten automatisch zu entdecken und zu extrahieren. Wir empfehlen die Verwendung dieser Option, wenn Ihre Daten viele Themen abdecken oder stark randomisiert sind. -
--output(optional): Der Ordner zum Speichern der generierten Prompts. Standard ist "prompts".
Beispielhafte Verwendung
python -m graphrag prompt-tune --root /path/to/project --config /path/to/settings.yaml --domain "environmental news" \
--selection-method random --limit 10 --language English --max-tokens 2048 --chunk-size 256 --min-examples-required 3 \
--no-discover-entity-types --output /path/to/output
oder mit minimaler Konfiguration (empfohlen)
python -m graphrag prompt-tune --root /path/to/project --config /path/to/settings.yaml --no-discover-entity-types
Methoden zur Dokumentenauswahl
Die Auto-Tuning-Funktion nimmt die Eingabedaten auf und teilt sie dann in Texteinheiten der Größe des Chunk-Size-Parameters auf. Anschließend verwendet sie eine der folgenden Auswahlmethoden, um eine Stichprobe für die Prompt-Generierung auszuwählen
random: Wählt Texteinheiten zufällig aus. Dies ist die Standard- und empfohlene Option.top: Wählt die ersten n Texteinheiten aus.all: Verwendet alle Texteinheiten für die Generierung. Nur bei kleinen Datensätzen verwenden; diese Option wird normalerweise nicht empfohlen.auto: Bettet Texteinheiten in einen niedrigdimensionalen Raum ein und wählt die k nächsten Nachbarn zum Zentroiden aus. Dies ist nützlich, wenn Sie einen großen Datensatz haben und eine repräsentative Stichprobe auswählen möchten.
Umgebungsvariablen ändern
Nachdem Sie Auto Tuning ausgeführt haben, sollten Sie die folgenden Konfigurationsvariablen ändern, um die neuen Prompts in Ihrem Index-Run zu verwenden. Hinweis: Stellen Sie sicher, dass Sie den korrekten Pfad zu den generierten Prompts aktualisieren. In diesem Beispiel verwenden wir den Standardpfad "prompts".